在elasticsearch中有没有办法提高文档中查询词彼此接近的文档的分数?它不仅仅是关于在一起的单词,因为这可以通过使用带状疱疹来解决,而是关于那些可能存在另一个不重要的单词的邻近单词。
示例:
文件1:
close words in documents detection
文件2:
close words in detection documents
查询:
close documents
所以我希望第一份文件得分更高,第二份文件得分更低。
如果这些单词紧挨着,我会使用带状疱疹和两三个单词代币。然而,这种方法并不能解释彼此接近的词语。
答案 0 :(得分:1)
以下查询是elastic docos中修改后的形式,应符合要求。它使用ElasticSearch中的邻近特征称为"匹配短语"。
POST /my_index/my_type/_search
{
"query": {
"match_phrase": {
"text": {
"query": "close documents",
"slop": 50
}
}
}
}
上面的slop参数控制了术语的接近程度,以使文档完全匹配。从技术上讲,这是必须完成的移动次数,因此在查询中使用更多单词会变得更复杂,但是使用两个术语可以简化距离。除此之外,他们应该更接近,这是我们想要的更接近。