Elasticsearch 突出显示布尔值而不是搜索短语
Elasticsearch highlighting boolean values instead of search phrase
我 运行 遇到了 elasticsearch 突出显示的问题。我正在使用 elasticsearch-web plugin from Rivetlogic 将 Elasticsearch 集成到 Liferay 门户中。它工作得很好,但是当我在某些文档上使用荧光笔时,突出显示的单词是错误的。这些问题似乎与 Rivetlogic 插件本身无关,我也可以通过带有普通 elasticsearch 查询的 Sense 插件来模拟它。
示例查询:
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"、"TRUE" 和“0”都突出显示。查询的词"zkouska"也高亮显示
查询有问题吗?
欢迎提供任何帮助。
将 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
.
我 运行 遇到了 elasticsearch 突出显示的问题。我正在使用 elasticsearch-web plugin from Rivetlogic 将 Elasticsearch 集成到 Liferay 门户中。它工作得很好,但是当我在某些文档上使用荧光笔时,突出显示的单词是错误的。这些问题似乎与 Rivetlogic 插件本身无关,我也可以通过带有普通 elasticsearch 查询的 Sense 插件来模拟它。
示例查询:
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"、"TRUE" 和“0”都突出显示。查询的词"zkouska"也高亮显示
查询有问题吗?
欢迎提供任何帮助。
将 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
.