Elasticsearchのあいまい検索の方法

Elasticsearchで、あいまい検索はファジーマッチを使用して実装できます。一般的に使用されるファジーマッチ手法には次のようなものがあります。

  1. 「エル」で曖昧検索を実行。
{
"query": {
"wildcard": {
"field_name": {
"value": "el*icse*ch"
}
}
}
}
  1. 正規表現クエリ:正規表現を利用したあいまい検索。例えば、「el[a-z]*h」を使用すると「elasticsearch」にマッチする。
{
"query": {
"regexp": {
"field_name": {
"value": "el[a-z]*h"
}
}
}
}
  1. 模糊查询(Fuzzy Query):使用编辑距离算法,根据相似度进行模糊匹配。例如,使用”elastiksearch~“可以匹配到”elasticsearch”。
{
"query": {
"fuzzy": {
"field_name": {
"value": "elastiksearch",
"fuzziness": "AUTO"
}
}
}
}
  1. ファジーマッチ:あいまいな一致で検索。例:「elasticsearch」で検索すると、「elasticsearch」にマッチ。
{
"query": {
"match": {
"field_name": {
"query": "elasticsearch",
"fuzziness": "AUTO"
}
}
}
}

「fuzziness」のパラメータは、あいまい一致の許容度を設定します。値は、0、1、2、「AUTO」のいずれかです。値が小さいほど、精度が高くなり、値が大きいほど、許容度が高くなります。

bannerAds