2017-02-24 5 views
0

15 pound chocolate cakeなどのフレーズで適切なトークンを生成するのに問題があります。弾性検索で数値トークンが生成されない

pou poun pound cho choc choco chocol chocola chocolat chocolate cak cake

が、私はそこにすべての数値が表示されない:実行すると、そのフィールドにfielddata_fieldクエリと、それは結果に沿って何かを生成します。私は、アナライザーオプションのいくつかの異なる組み合わせを無駄にしようとしました。以下は私のマッピングです:またword_delimiter"generate_number_parts": "true""generate_word_parts": true助けていない設定

"nGram_filter": { "type": "edge_ngram", "min_gram": 3, "max_gram": 20, "token_chars": [ "letter", "digit", "punctuation", "symbol" ] }

{ "settings" : { "index" : { "analysis": { "filter": { "nGram_filter": { "type": "edge_ngram", "min_gram": 3, "max_gram": 20 }, "my_word": { "type":"word_delimiter", "preserve_original": "true" } }, "analyzer": { "nGram_analyzer": { "type": "custom", "tokenizer": "standard", "filter": [ "standard", "lowercase", "asciifolding", "my_word", "nGram_filter" ] }, "whitespace_analyzer": { "type": "custom", "tokenizer": "whitespace", "filter": [ "lowercase", "asciifolding" ] } } }} }, "mappings": { "categories": { "properties": { "id": {"type": "text"}, "sort": {"type": "long"}, "search_term":{"type":"text","analyzer": "nGram_analyzer","search_analyzer": "whitespace_analyzer", "fielddata":true} } } } }

私のようなnGramフィルタを試してみました。

EDIT 3グラムのサイズを維持するだけでなく、として数字を維持する方法があるかどうか、私は疑問に思って、私はそれが2にmin_gramサイズを変更することにより、作業ましたが、私は3でそれを維持するために期待していましたありますか?

答えて

0

動作は期待通りです。数字のトークンではなく、長さという用語で問題になります。 1文字または2文字の文字列があったとしても、フィルタリングされてしまいます。

min_gram:1グラム単位の最小文字数。 1

デフォルト分グラムより少ない文字の数を有する任意のトークンが故に

を除外すると、15は、この場合濾別なってきています。

+0

あなたが知りたいことを達成するための選択肢がありますか? – Yamaha32088

+0

min_gramのサイズを2に変更しない具体的な理由はありますか? – Rahul