我是弹性搜索的新手,所以我很难找到我们数据的最佳查询。
想象一下,我想匹配以下单词“Handelsstandens Boldklub”。
目前,我正在使用以下查询:
{
query: {
bool: {
should: [
{
match: {
name: {
query: query, slop: 5, type: "phrase_prefix"
}
}
},
{
match: {
name: {
query: query,
fuzziness: "AUTO",
operator: "and"
}
}
}
]
}
}
}
如果我正在搜索“Hand”,它当前会列出该词,但如果我搜索“Handle”,则该词将不再列出,因为我打错了字。但是,如果我以“Handlesstandens”到达结尾,它将再次列出,因为模糊会捕捉到错字,但只有当我输入了整个单词时。
是否有可能同时进行短语前缀和模糊性?那么在上述情况下,如果我在途中打错字,它仍然会列出单词吗?
所以在这种情况下,如果我搜索“Handle”,它仍然会匹配“Handelsstandens Boldklub”这个词。
或者还有什么其他的变通方法可以实现上述体验?我喜欢短语前缀匹配,因为它也支持草率匹配(因此我可以搜索“Boldklub han”,它会列出结果)
还是可以通过使用完成建议器来实现上述目标?