1

エラスティック サーバーにテキストのインデックスがあります。次のような ngram トークナイザーを実装しました。

"analysis": {
      "analyzer": {
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "ngram_tokenizer"
        }
      },
      "tokenizer": {
        "ngram_tokenizer": {
          "type": "ngram",
          "min_gram": "3",
          "max_gram": "7"
        }
      }
    },

私のデータが

「こんにちは美しい世界エル」

クエリ一致「Hell」を配置すると、最初の単語 (Hello) のみが検索され、ell という単語は検索されないため、基本的に、データ内で検索パターンを検索するためだけに検索パターンを「破る」ことは望ましくありません。は(4文字で、以下ではありません)

ありがとうございました

4

1 に答える 1

1

解決策は、アナライザーのトークナイザーを変更することです。

たとえば、次のようにすることができます

"some_analyzer": {
    "type": "custom",
    "tokenizer": "whitespace",
    "filter": [ "lowercase" ]
  }

重要なのは、検索アナライザーに nGram トークナイザーがないことです。

于 2016-12-06T14:05:22.430 に答える