在Elasticsearch中提升结果

时间:2019-03-06 14:41:23

标签: elasticsearch

我在文档中搜索了一种方法,如果特定字段具有一定的价值,那么它可以促进ElasticSearch结果,但是我没有找到任何好的做法,例如,如果某个用户搜索了某个用户,则该用户居住在巴黎一个查询,我希望与巴黎相关的文档出现在第一个或即将被提升。

1 个答案:

答案 0 :(得分:0)

这有很多,但是您想研究“增强”。可以在mapping levelquery level处完成。

映射示例:

{
  "mappings": {
    "_doc": {
      "properties": {
        "location": {
          "type": "keyword",
          "boost": 2 <--- 2x boost to the final score
        }
      }
    }
  }
}

查询示例:

GET /_search
{
    "query": {
        "bool": {
            "must": {
                "match": {  
                    "content": {
                        "query":    "full text search",
                        "operator": "and"
                    }
                }
            },
            "should": [
                { "term": {
                    "location": {
                        "value": "xxx",
                        "boost": 3 <--- 3x boost if the location matches
                    }
                }}
            ]
        }
    }
}