【发布时间】:2017-11-20 19:51:07
【问题描述】:
我有以下情况:
简单的分析器处理文本“棕色和绿色的狐狸很快”并将单个小写术语添加到索引中。
我想对我的索引使用以下查询短语:“quick brown f”
我使用match_phrase_prefix 来运行此搜索:
{
"query": {
"match_phrase_prefix" : {
"message" : {
"query" : "quick brown f",
"max_expansions" : 10
}
}
}
}
很遗憾,由于术语的顺序与查询术语不匹配,因此没有返回任何结果。如果我使用 match 查询并且使用完整的术语,我会返回结果。似乎 match_phrase_prefix 正在检查顺序:
这个查询的工作原理是用 quick 和 brown 创建一个短语查询 (即“快速”一词必须存在并且必须在该词后跟 棕色)。
我的问题:
有没有一种方法可以运行查询来处理不完整的术语并返回结果,而不管源文档中术语的顺序如何?我目前能想到的唯一选择是为输入查询中的每个术语手动创建一个查询(例如:quick、brown、f),并使用 bool 查询将它们组合起来。
【问题讨论】:
标签: elasticsearch