![](/img/trans.png)
[英]Lucene - how to make multiple words within query AND instead of OR together
[英]Preference words close together in ElasticSearch / Lucene?
是否有其他方法可以使ElasticSearch在文档中搜索的单词看起来彼此更靠近的地方对较高的查询进行排名?
在某些情况下,我正在研究法律研究产品。 通常,有人会通过将这些词放入我们的搜索框中来搜索诸如“虚假声明法”之类的概念。 但是,这些词在我们的数据库中确实很常见,包括在关于完全无关的事物的文档中,因此结果令人失望。
如果我能告诉ElasticSearch在其评分算法结果中考虑到单词非常接近的话,那将是惊人的。
无论您现在有什么查询,都必须有可以计算分数的东西,否则您将不会对得分更高或更低感兴趣。
采取一切你现在也放到了一个bool
should
。 添加另一个should
应该使用一个语句match_phrase
与slop
小号或一个跨度查询 。
例如:
{
"query": {
"bool": {
"should": [
{
"query_string": {
"default_field": "some_text_field",
"query": "False Claims Act"
}
},
{
"match_phrase": {
"some_text_field": {
"query": "False Claims Act",
"slop": 0
}
}
}
]
}
}
}
每个人都应为文件的最终分数做出贡献。 上面的查询会通过考虑那些与“ False Claims Act
匹配的文档来更好地“提升”最终分数。
那里的slop
表示您希望这些字词“接近”多少。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.