相关度分数的计算使用的是TF/IDF算法(Term Frequency&Inverse Document Frequency)。
-
Term Frequency:我们查询的文本中的词条在document中出现了多少次,出现次数越多,相关度越高。
搜索内容:hello world
Hello, I love china.
Hello world,how are you! -
Inverse Document Frequency:我们查询的文本中的词条在索引的所有文档中出现了多少次,出现的次数越多,相关度越低
所搜内容:hello world
hello, what are you doing?
I like the world.
hello 在索引的所有文档中出现了500次,world出现了100次 -
Field-length(字段长度归约)norm:field越长,相关度越低
搜索内容:hello world
{“title”:“hello,what’s your name?”,“content”:{“owieurowieuolsdjflk”}}
{“title”:“hi,good morning?”,“content”:{“Ikjkljkj…world”}}
查看分数是如何计算的:
GET /lib3/user/_search?explain=true
{
"query": {
"match": {
"interests": "duanlian,changge"
}
}
}
查看一个文档能否匹配上某个查询:
GET /lib3/user/2/_explain
{
"query": {
"match": {
"interests": "duanlian,changge"
}
}
}