【发布时间】:2019-10-26 18:02:18
【问题描述】:
我都试过了,当我测试分析仪时,它们似乎产生了相同的结果
settings: {
analysis: {
filter: {
ngram_filter: {
type: "ngram",
min_gram: 2,
max_gram: 20
}
},
tokenizer: {
ngram_tokenizer: {
type: "ngram",
min_gram: 2,
max_gram: 20
}
},
analyzer: {
index_ngram: {
type: "custom",
tokenizer: "keyword",
filter: [ "ngram_filter", "lowercase" ]
},
index_ngram2: {
type: "custom",
tokenizer: "ngram_tokenizer",
filter: [ "lowercase" ]
},
},
}
}
我得到了同样的结果:
curl -X GET "localhost:9200/my_index/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "index_ngram",
"text": "P&G 40-Bh"
}
'
和
curl -X GET "localhost:9200/my_index/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "index_ngram2",
"text": "P&G 40-Bh"
}
'
我应该使用哪一个?有性能差异吗?看起来他们只是以不同的顺序执行操作,但我不确定哪个性能更高,或者哪个约定更好。
【问题讨论】:
-
是的,我看到了这个问题,它是关于
edge_ngram与ngram的不同之处,edge是关键区别。我的更多是关于ngram与tokenizer与filter的不同之处。
标签: elasticsearch