在elasticsearch中有没有一种方法来提升文档中出现的确切短语的重要性?
例如,如果我搜索短语"web developer“,如果"web developer”这两个词出现在一起,与文档中单独出现的"web“和"developer”相比,它们会增加5。因此,任何包含"web developer“的文档都将首先出现在结果中。
发布于 2013-08-28 19:24:18
您可以使用bool query将不同的查询组合在一起,也可以对它们进行不同的提升。假设您对这两个术语都有一个常规的match query,而不管它们的位置如何,然后是一个具有更高boost的短语查询。
类似于以下内容:
{
"query": {
"bool": {
"should": [
{
"match": {
"field": "web developer"
}
},
{
"match_phrase": {
"field": "web developer",
"boost": 5
}
}
],
"minimum_number_should_match": 1
}
}
}
发布于 2015-02-07 02:29:22
您可以尝试使用rescore在初始结果上运行精确的短语匹配。从文档中:
重新搜索有助于提高精度,方法是使用辅助(通常成本较高)算法对查询和post_filter阶段返回的前几个(例如100 - 500)文档进行重新排序,而不是将成本较高的算法应用于索引中的所有文档。
https://www.elastic.co/guide/en/elasticsearch/reference/current/filter-search-results.html#rescore
发布于 2014-05-29 00:01:19
我在我的案例中使用了下面的示例查询,它是有效的。它带来了精确的+模糊的结果,但是精确的结果被提升了!
{ "query": {
"bool": {
"should": [
{
"match": {
"name": "pala"
}
},
{
"fuzzy": {
"name": "pala"
}
}
]
}}}
https://stackoverflow.com/questions/18481600
复制相似问题