use*_*314 20 term query-string elasticsearch elastica
弹性搜索中是否有一种方法可以提高文档中出现的确切短语的重要性?
例如,如果我正在搜索短语"web开发人员",并且如果单词"web developer"一起出现,那么与在整个文档中单独出现的"web"和"developer"相比,它们将被提升5.因此,任何包含"web开发者"的文档将首先出现在结果中.
jav*_*nna 26
您可以使用bool查询将不同的查询组合在一起,您也可以对它们进行不同的提升.假设您对两个术语都有常规匹配查询,无论其位置如何,然后是具有更高提升的短语查询.
类似于以下内容:
{
"query": {
"bool": {
"should": [
{
"match": {
"field": "web developer"
}
},
{
"match_phrase": {
"field": "web developer",
"boost": 5
}
}
],
"minimum_number_should_match": 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
作为javanna回答的替代方法,您可以在查询中使用must和should子句执行类似的bool操作:
{
"query": {
"bool": {
"must": {
"match": {
"field": "web developer",
"operator": "and"
}
},
"should": {
"match_phrase": {
"field": "web developer"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
未经检验的,但我相信must在这里子句会匹配结果既 "网"和"开发商"和should条款将比分短语匹配"web开发"更高.
| 归档时间: |
|
| 查看次数: |
15638 次 |
| 最近记录: |