2015-08-21 70 views
0

我遇到了彈性搜索突出顯示的問題。我正在使用elasticsearch-web plugin from Rivetlogic將Elasticsearch集成到Liferay門戶中。它工作得很好,但是當我在某些文檔上使用熒光筆時,突出顯示的單詞是錯誤的。這些問題似乎與Rivetlogic插件本身沒有關係,我可以通過使用普通彈性搜索查詢的Sense插件來模擬它。Elasticsearch突出顯示布爾值而不是搜索短語

示例查詢:

POST /liferay_company_20155/com_liferay_portlet_documentlibrary_model_DLFileEntry/_search 
{ 
    "query": { 
     "query_string": { 
     "query": "+(+(companyId:20155) +((+(entryClassName:com.liferay.portal.model.User) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFolder) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0) +(head:true)) (+(entryClassName:com.liferay.portlet.journal.model.JournalFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.messageboards.model.MBMessage) +(status:0) +(discussion:false)) (+(entryClassName:com.liferay.portlet.wiki.model.WikiPage) +(status:0)))) +(assetCategoryTitles:*zkouska* assetCategoryTitles_cs_CZ:*zkouska* assetTagNames:*zkouska* comments:zkouska content:zkouska description:zkouska properties:zkouska title:zkouska url:zkouska userName:*zkouska* -stagingGroup:true city:zkouska country:zkouska emailAddress:*zkouska* firstName:zkouska fullName:zkouska lastName:zkouska middleName:zkouska region:zkouska screenName:zkouska street:zkouska zip:zkouska ddmContent:zkouska extension:zkouska fileEntryTypeId:zkouska path:*zkouska* classPK:zkouska content_cs_CZ:zkouska description_cs_CZ:zkouska entryClassPK:zkouska title_cs_CZ:zkouska type:zkouska articleId:zkouska)" 
     } 
    }, 
     "highlight": { 
      "pre_tags" : ["<tag1>"], 
     "post_tags" : ["</tag1>"], 
     "fields": { 
      "content": {} 
     } 
     } 
} 

結果亮點如下:

"highlight": 
{ 
"content": [ 
    " logické\n1 nebo <tag1>0</tag1> (<tag1>true</tag1> nebo <tag1>false</tag1>).\n\nfunction ALTERNATIV(P:real): Boolean;\nvar X: real;\nbegin\n\nX", 
    " pouze na změnu <tag1>FALSE</tag1> na <tag1>TRUE</tag1>, případně na\npřekročení mezní hodnoty směrem nahoru). Protože C", 
    " (metoda Test), a to buď z hodnoty nula (<tag1>FALSE</tag1>) na\nhodnotu různou od nuly (<tag1>TRUE</tag1>), nebo obráceně", 
    "\n\ndetekci změny pouze z hodnoty <tag1>FALSE</tag1> na hodnotu <tag1>TRUE</tag1>, DetectDOWN detekuje opačnou\nzměnu. DetectALL", 
    " článek. Nechť X(ui) = x, Y (ui) = y, T =\n〈<tag1>0</tag1>,∞), I = O = R, I je vstupní abeceda, O je výstupní abeceda" 
] 
} 

注意,所有的值 「FALSE」, 「真」 和 「0」 被突出顯示。被查詢的單詞「zkouska」也被突出顯示。

查詢有問題嗎?

任何幫助appriciated。

回答

1

require_field_match設置爲true應該解決這個問題。

例子:

POST /liferay_company_20155/com_liferay_portlet_documentlibrary_model_DLFileEntry/_search 
{ 
    "query": { 
     "query_string": { 
     "query": "+(+(companyId:20155) +((+(entryClassName:com.liferay.portal.model.User) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFolder) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0) +(head:true)) (+(entryClassName:com.liferay.portlet.journal.model.JournalFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.messageboards.model.MBMessage) +(status:0) +(discussion:false)) (+(entryClassName:com.liferay.portlet.wiki.model.WikiPage) +(status:0)))) +(assetCategoryTitles:*zkouska* assetCategoryTitles_cs_CZ:*zkouska* assetTagNames:*zkouska* comments:zkouska content:zkouska description:zkouska properties:zkouska title:zkouska url:zkouska userName:*zkouska* -stagingGroup:true city:zkouska country:zkouska emailAddress:*zkouska* firstName:zkouska fullName:zkouska lastName:zkouska middleName:zkouska region:zkouska screenName:zkouska street:zkouska zip:zkouska ddmContent:zkouska extension:zkouska fileEntryTypeId:zkouska path:*zkouska* classPK:zkouska content_cs_CZ:zkouska description_cs_CZ:zkouska entryClassPK:zkouska title_cs_CZ:zkouska type:zkouska articleId:zkouska)" 
     } 
    }, 
     "highlight": { 
     "require_field_match" : true, 
      "pre_tags" : ["<tag1>"], 
     "post_tags" : ["</tag1>"], 
     "fields": { 
      "content": {} 
     } 
     } 
} 

同樣在一個不相關的音符看着它看起來像status映射響應,hidden領域似乎是string可能是你希望它是boolean

+0

@ shimon001好奇不工作? – keety

+0

它真的很有用,謝謝你的回覆。 – shimon001