【发布时间】:2018-08-13 14:12:48
【问题描述】:
我的索引中有两个文档。一个包含字段:
name: foo bar
还有一个
name: foo xyz bar xyz foo xyz bar xyz foo xyz bar xyz foo xyz bar
我正在使用这样的 ngrams 分析器:
"analysis": {
"analyzer": {
"ngram_analyzer": {
"tokenizer": "ngram_tokenizer"
}
},
"tokenizer": {
"ngram_tokenizer": {
"type": "ngram",
"min_gram": 3,
"max_gram": 3,
"token_chars": [
"letter",
"digit",
"whitespace"
]
}
}
}
当我搜索foo bar 时,第一个文档的得分高于第二个。这就是我想要的,但任何人都可以解释这个评分是如何工作的吗?据我所知,ngram 将它们拆分为 3 个字符长度的术语,它如何发现 foo 和 bar 在第一个文档中按顺序排列并为其分配更高的分数?
【问题讨论】:
标签: elasticsearch