ここでは、ユースケースの解決策を見つけるのが難しいです。 基本的には、それはかなりシンプルです:SQL like '%...%'
のような "contains"クエリを実行する必要があります。Ngram Tokenizer on field、問い合わせではありません
正規表現のクエリがありましたが、実際には完全に動作するようになっていましたが、ひどく規模が拡大しているように見えますが、私はnGramを試しています。さて、私は前に彼らと一緒に遊んできたし、 "彼らはどのように動作するか"知っていますが、その動作は私が期待するものではありません。
基本的には、アナライザをmingram = 2、maxgram = 20に設定しました。「Christophe」というユーザのインデックスを作成するとします。クリスは5グラムのクリストフだから、実際には「クリス」というクエリを照合したい。問題は、それがNgramsに分解され、最終的に "is"が "Christophe"の2グラムなので、 "Risotto"も同様に一致するので、それも同様に一致します。
私が必要とするのは、アナライザが、インデックス時にnGramsのインデックスフィールドを実際に分解し、FULLテキストクエリと比較することです。 RisottoはRisotto、XXXRisottoXXXなどと一致する必要がありますが、RisoloやnGramが一致するものとは一致しません。
解決策はありますか?
:http://stackoverflow.com/questions/41543223/elasticsearch-does-not-respect-max-ngram-length-while-using-ngram -tokenizer/41543664?noredirect = 1#comment70303094_41543664(検索時間に 'standard'アナライザを設定する必要があります) – Val
ありがとうございました! –