Added elasticsearch 2.4 support.
This commit is contained in:
parent
0fbb5f8ec6
commit
5fc8e6c510
4 changed files with 40 additions and 13 deletions
|
@ -111,18 +111,18 @@ returns
|
|||
group_condition.push group.id
|
||||
}
|
||||
access_condition = {
|
||||
'query_string' => { 'default_field' => 'Ticket.group_id', 'query' => "\"#{group_condition.join('" OR "')}\"" }
|
||||
'query_string' => { 'default_field' => 'group_id', 'query' => "\"#{group_condition.join('" OR "')}\"" }
|
||||
}
|
||||
else
|
||||
access_condition = if !current_user.organization || ( !current_user.organization.shared || current_user.organization.shared == false )
|
||||
{
|
||||
'query_string' => { 'default_field' => 'Ticket.customer_id', 'query' => current_user.id }
|
||||
'query_string' => { 'default_field' => 'customer_id', 'query' => current_user.id }
|
||||
}
|
||||
# customer_id: XXX
|
||||
# conditions = [ 'customer_id = ?', current_user.id ]
|
||||
else
|
||||
{
|
||||
'query_string' => { 'query' => "Ticket.customer_id:#{current_user.id} OR Ticket.organization_id:#{current_user.organization.id}" }
|
||||
'query_string' => { 'query' => "customer_id:#{current_user.id} OR organization_id:#{current_user.organization.id}" }
|
||||
}
|
||||
# customer_id: XXX OR organization_id: XXX
|
||||
# conditions = [ '( customer_id = ? OR organization_id = ? )', current_user.id, current_user.organization.id ]
|
||||
|
|
|
@ -33,7 +33,7 @@ returns
|
|||
|
||||
# collect article data
|
||||
articles = Ticket::Article.where(ticket_id: id)
|
||||
attributes['articles'] = []
|
||||
attributes['article'] = []
|
||||
articles.each { |article|
|
||||
article_attributes = article.attributes
|
||||
|
||||
|
@ -53,8 +53,8 @@ returns
|
|||
|
||||
# lookup attachments
|
||||
article.attachments.each { |attachment|
|
||||
if !article_attributes['attachments']
|
||||
article_attributes['attachments'] = []
|
||||
if !article_attributes['attachment']
|
||||
article_attributes['attachment'] = []
|
||||
end
|
||||
|
||||
# check file size
|
||||
|
@ -73,9 +73,9 @@ returns
|
|||
'_name' => attachment.filename,
|
||||
'_content' => Base64.encode64(attachment.content)
|
||||
}
|
||||
article_attributes['attachments'].push data
|
||||
article_attributes['attachment'].push data
|
||||
}
|
||||
attributes['articles'].push article_attributes
|
||||
attributes['article'].push article_attributes
|
||||
}
|
||||
|
||||
attributes
|
||||
|
|
|
@ -21,12 +21,13 @@ namespace :searchindex do
|
|||
data: {
|
||||
mappings: {
|
||||
Ticket: {
|
||||
_source: { excludes: [ 'articles.attachments' ] },
|
||||
_source: { excludes: [ 'article.attachment' ] },
|
||||
properties: {
|
||||
articles: {
|
||||
article: {
|
||||
type: 'nested',
|
||||
include_in_parent: true,
|
||||
properties: {
|
||||
attachments: {
|
||||
attachment: {
|
||||
type: 'attachment',
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,7 +148,6 @@ class ElasticsearchTest < ActiveSupport::TestCase
|
|||
)
|
||||
|
||||
attributes = ticket1.search_index_attribute_lookup
|
||||
|
||||
assert_equal('Users', attributes['group'])
|
||||
assert_equal('new', attributes['state'])
|
||||
assert_equal('2 normal', attributes['priority'])
|
||||
|
@ -472,7 +471,34 @@ class ElasticsearchTest < ActiveSupport::TestCase
|
|||
limit: 15,
|
||||
)
|
||||
assert(result[0], 'record 1')
|
||||
assert(!result[1], 'record 1')
|
||||
assert(!result[1], 'record 2')
|
||||
assert_equal(result[0].id, ticket1.id)
|
||||
|
||||
result = Ticket.search(
|
||||
current_user: agent,
|
||||
query: 'state:open',
|
||||
limit: 15,
|
||||
)
|
||||
assert(result[0], 'record 1')
|
||||
assert(!result[1], 'record 2')
|
||||
assert_equal(result[0].id, ticket2.id)
|
||||
|
||||
result = Ticket.search(
|
||||
current_user: agent,
|
||||
query: '"some_sender@example.com"',
|
||||
limit: 15,
|
||||
)
|
||||
assert(result[0], 'record 1')
|
||||
assert(!result[1], 'record 2')
|
||||
assert_equal(result[0].id, ticket1.id)
|
||||
|
||||
result = Ticket.search(
|
||||
current_user: agent,
|
||||
query: 'article.from:"some_sender@example.com"',
|
||||
limit: 15,
|
||||
)
|
||||
assert(result[0], 'record 1')
|
||||
assert(!result[1], 'record 2')
|
||||
assert_equal(result[0].id, ticket1.id)
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue