【发布时间】:2016-03-09 12:45:36
【问题描述】:
我正在使用 elasticsearch 1.7,我需要一种方法来标记文档与它们匹配的 query_string 查询的哪个部分。
我一直在尝试突出显示,但发现在某些情况下它会变得有点混乱。我希望用匹配的搜索词标记文档。
这是我正在使用的查询:(注意这是一个 ruby 哈希,后来被编码为 JSON)
{
query: {
query_string: {
fields: ["title^10", "keywords^4", "content"],
query: query_string,
use_dis_max: false
}
},
size: 20,
from: 0,
sort: [
{ pub_date: { order: :desc }},
{ _score: { order: :desc }}
]
}
query_string 变量基于用户关注的主题,可能类似于:"(the AND walking AND dead) OR (iphone) OR (video AND games)"
我是否可以使用任何选项,以便返回的文档具有与 the walking dead 或 (the AND walking AND dead) 等搜索词匹配的属性
【问题讨论】:
-
您是否可以选择将顶级 OR 查询分成多个
bool/should子查询? -
我最初使用的是 bool 查询和 should 子查询。然而,有一些用户关注 50 多个主题,因此 JSON 查询变得非常大,并且正在减慢速度。特别是因为我每个术语需要 3 个查询(检查每个字段)。
-
如果我要切换到使用 bool/should(只是做了一些测试,看起来它仍然相对较快,有大量子查询)。这将如何完成?谢谢
标签: elasticsearch