私は自分の新しいプロジェクトのためにElasticSearchで遊んでいます。ngramtokenfilterを使用するようにデフォルトのアナライザーを設定しました。これは私のelasticsearch.ymlファイルです:
index:
analysis:
analyzer:
default_index:
tokenizer: standard
filter: [standard, stop, mynGram]
default_search:
tokenizer: standard
filter: [standard, stop]
filter:
mynGram:
type: nGram
min_gram: 1
max_gram: 10
新しいインデックスを作成し、それに次のドキュメントを追加しました。
$ curl -XPUT http://localhost:9200/test/newtype/3 -d '{"text": "one two three four five six"}'
{"ok":true,"_index":"test","_type":"newtype","_id":"3"}
ただし、クエリtext:hree
やtext:ive
その他の部分的な用語を使用して検索すると、ElasticSearchはこのドキュメントを返しません。正確な用語(のように)を検索した場合にのみドキュメントが返されますtext:two
。
また、default_searchもngramトークンフィルターを使用するように構成ファイルを変更しようとしましたが、結果は同じでした。ここで何が間違っているので、どうすれば修正できますか?