0

次のマッピングを使用して、配置されているオートコンプリート機能を使用しようとしています

analysis : filter : placename_ngram : max_gram=15, min_gram = 2, type = edge_ngram アナライザー :index: filter : 小文字, placename_ngram, tokenizer : キーワード placename_search : filter: 小文字: tokenizer キーワード

これは先行入力にはうまく機能しますが、「contains in」のような値を見つけようとすると、レコードが返されません。

「湖」でテキストクエリを実行している場合など。

貰うだけ

レイク...レイクウッド、

しかし、Smithtown Lake は取得できません

フィールドをマルチフィールドとして設定しており、ワイルドカードを使用して値を見つけることができますが、これが効率的かどうかはわかりません。

私は NGRAM を使用できると信じていますが、空白 (または単語) によるインデックス用語しか必要としないことを考えると、それはかなりのオーバーヘッドのようです。すべての浸透ではありません。

何かご意見は?

両方のトークナイザーを「標準」に変更すると....これらのレコードが見つかります...しかし、オートコンプリートが台無しになり、Lakを入力するとSmithtown Lakeが返されます.....(この場合、私はしたくない)。

ご協力いただきありがとうございます

4

2 に答える 2