Improved search/indexing to search also renamed tags.

This commit is contained in:
Martin Edenhofer 2016-06-14 13:27:15 +02:00
parent 78cceb4685
commit 13ff0054b6
2 changed files with 74 additions and 3 deletions

View file

@ -30,6 +30,7 @@ class ApplicationModel < ActiveRecord::Base
after_create :search_index_update after_create :search_index_update
after_update :search_index_update after_update :search_index_update
after_touch :search_index_update
after_destroy :search_index_destroy after_destroy :search_index_destroy
before_destroy :recent_view_destroy before_destroy :recent_view_destroy

View file

@ -162,7 +162,12 @@ class ElasticsearchTest < ActiveSupport::TestCase
preferences: {}, preferences: {},
created_by_id: 1, created_by_id: 1,
) )
Tag.tag_add(
object: 'Ticket',
o_id: ticket1.id,
item: 'someTagA',
created_by_id: 1,
)
sleep 1 sleep 1
ticket2 = Ticket.create( ticket2 = Ticket.create(
@ -188,7 +193,12 @@ class ElasticsearchTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Tag.tag_add(
object: 'Ticket',
o_id: ticket2.id,
item: 'someTagB',
created_by_id: 1,
)
sleep 1 sleep 1
ticket3 = Ticket.create( ticket3 = Ticket.create(
@ -217,7 +227,7 @@ class ElasticsearchTest < ActiveSupport::TestCase
# execute background jobs # execute background jobs
Scheduler.worker(true) Scheduler.worker(true)
sleep 6 sleep 4
# search as agent # search as agent
@ -325,6 +335,66 @@ class ElasticsearchTest < ActiveSupport::TestCase
assert(result[0], 'record 1') assert(result[0], 'record 1')
assert(!result[1], 'record 2') assert(!result[1], 'record 2')
assert_equal(result[0].id, ticket3.id) assert_equal(result[0].id, ticket3.id)
# search for tags
result = Ticket.search(
current_user: agent,
query: 'tag:someTagA',
limit: 15,
)
assert(result[0], 'record 1')
assert(!result[1], 'record 1')
assert_equal(result[0].id, ticket1.id)
result = Ticket.search(
current_user: agent,
query: 'tag:someTagB',
limit: 15,
)
assert(result[0], 'record 2')
assert(!result[1], 'record 2')
assert_equal(result[0].id, ticket2.id)
# rename tag (e. g. via admin interface)
tag_item = Tag::Item.lookup(name: 'someTagA')
Tag::Item.rename(
id: tag_item.id,
name: 'someTagC',
updated_by_id: 1,
)
# execute background jobs
Scheduler.worker(true)
sleep 4
# search for tags
result = Ticket.search(
current_user: agent,
query: 'tag:someTagA',
limit: 15,
)
assert(!result[0], 'record 1')
assert(!result[1], 'record 1')
result = Ticket.search(
current_user: agent,
query: 'tag:someTagB',
limit: 15,
)
assert(result[0], 'record 2')
assert(!result[1], 'record 2')
assert_equal(result[0].id, ticket2.id)
result = Ticket.search(
current_user: agent,
query: 'tag:someTagC',
limit: 15,
)
assert(result[0], 'record 1')
assert(!result[1], 'record 1')
assert_equal(result[0].id, ticket1.id)
end end
# check users and search it # check users and search it