ElasticSearch模糊搜索所有字段,提升精确匹配,并提升其他各种匹配条件

时间:2014-03-11 19:32:56

标签: c# elasticsearch nest

鉴于以下查询,我如何将每个should子句的排名高于另一个。

我正按照他们列出的顺序来提升它们。

{
    "size": 20,
    "query": {
        "bool": {
            "should": [
                {
                    "match_phrase": {
                       "fullName": "Michael Douglas"
                    }
                },
                {
                    "match_phrase_prefix": {
                       "fullName": "Michael Douglas"
                    }
                },
               {
                   "match": {
                      "lastName": "Michael Douglas"
                   }
               },
               {
                   "match": {
                      "firstName": "Michael Douglas"
                   }
               },
               {
                   "fuzzy_like_this": {
                       "like_text": "Michael Douglas"
                   }
               }
            ]
        }
    }
}

如何在should数组中增加每个子句?这是我无法解决的问题。

1 个答案:

答案 0 :(得分:0)

如果您有非常具体的提升需求,可以在function_score次查询中包装每个查询:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

在Plasticsearch 1.0之前

custom_boost_factor

http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/query-dsl-custom-boost-factor-query.html