我有一个弹性搜索索引(index1),其中我有一个类型(type1)。我将文档添加到type1并对其进行搜索:
POST /index1/type1/_search
{
"query": {
"match": {
"keyword": "quick brown fox"
}
}
}
我得到的结果集的分数通常介于.03和1之间。
然后我将另一个类型(type2)添加到index1并向其添加一些文档。当我再次运行完全相同的搜索时,我会得到相同的文档,但它们都有不同的分数,现在从2到5不等。理想情况下,即使将文档添加到type2,这些文档的分数也不会改变。
关于为什么会发生这种情况的任何想法?我在type1上运行搜索,但是向type2添加文档似乎会影响结果的评分。反正有没有阻止这种情况发生?
我正在使用elasticsearch的v1.1.2。我还要提一下,我正在处理一个非常小的数据集(少于1000个文档)。
答案 0 :(得分:1)
Elasticsearch评分详细here,但基本上你遇到的是你的某些术语的逆文档频率正在根据你索引到type2的内容而改变(它仍然在同一个INDEX中) TYPE1)。 IDF的更改会更改搜索字词的相关性。
唯一可以避免的方法是为type1和type2设置单独的索引(如果你需要搜索两者,你的搜索需要传入两个索引)。
分数确实没有深刻的含义,实际上只应该用作相关指示,表明某些结果比其他结果更好。