Ngramトークナイザを使用していて、min_lengthを3、max_lengthを5と指定しました。ただし、5より大きい単語を検索しようとしても、 ESと同じくらい奇妙なことに、長さ6の組み合わせは索引付けされませんが、私はまだレコードを取り出すことができます。ここには何か理論がありますか?そうでない場合、実際にNGramのmax_lengthにはどんな意味がありますか?私は "のためにこれを試してみましたNGram Tokenizerを使用しているときにElasticSearchが最大NGram長を無視します
GET ngramtest/MyEntity/_search
{
"query": {
"match": {
"testField": "000681"
}
}
}
ため
PUT ngramtest/MyEntity/123
{
"testField":"Z/16/000681"
}
AND、このクエリ不気味yeilds結果:私が試したマッピングは...
PUT ngramtest
{
"mappings": {
"MyEntity":{
"properties": {
"testField":{
"type": "text",
"analyzer": "my_analyzer"
}
}
}
},
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "ngram",
"min_gram": 3,
"max_gram": 5
}
}
}
}
}
は、テストエンティティをインデックス化され、次の文字列を分析する:
POST ngramtest/_analyze
{
"analyzer": "my_analyzer",
"text": "Z/16/000681."
}
私は間違っている場合誰かが私を修正してくださいできますか?
JSON、BIGで索引付けして検索すると完璧に動作しました:)しかし、私はまだ私のアプリケーションで使用されている.NET(NEST)APIを使用してこれをテストしています。 ;) –
素晴らしい、嬉しい助けて! – Val