エラスティック検索は初めてなので、データに最適なクエリを見つけるのに少し苦労しています。
次の単語「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」で最後まで到達すると、あいまいさがタイプミスをキャッチするため、再びリストされますが、単語全体を入力した場合のみです。
phrase_prefix と fuzziness を同時に行うことは何とか可能ですか? 上記の場合、途中でタイプミスした場合でも、単語がリストされますか?
したがって、この場合、「Handle」を検索しても、「Handelsstandens Boldklub」という単語に一致します。
または、上記の経験を達成するために他にどのような回避策がありますか? 私は、ずさんなマッチングもサポートしているので、phrase_prefix マッチングが好きです (したがって、「Boldklub han」を検索すると、結果が一覧表示されます)。
または、補完サジェスターを使用して上記を達成できますか?