0

有没有办法对 OR 条件过滤器中的查询进行不同的提升???我希望查看与第一个查询匹配的结果,而不是与第二个查询匹配的结果。

这是我的查询的一部分:

 {
               "or": [
                            {
                                "query": {
                                    "query_string": {
                                        "query": "(field_state:ALL OR field_state:'WA') AND type:incentive"
                                    }
                                }
                            },
                            {
                                "query": {
                                    "query_string": {
                                        "query": "* AND NOT (type:adcampaign OR type:incentive OR type:page_simple OR type:page OR type:glossary_item OR type:product OR type:lighting_option)"
                                    }
                                }
                            }
                        ]
                    }
4

1 回答 1

0

根据这里的 ES 文档(http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query/),是的,你可以。boostquery_string查询类型的列出选项。

虽然未经测试,但我想这样的事情会奏效:

{
    "or": [
        {
            "query": {
                "query_string": {
                    "query": "(field_state:ALL OR field_state:'WA') AND type:incentive",
                    "boost": 10.5
                }
            }
        },
        {
            "query": {
                "query_string": {
                    "query": "* AND NOT (type:adcampaign OR type:incentive OR type:page_simple OR type:page OR type:glossary_item OR type:product OR type:lighting_option)"
                }
            }
        }
    ]
}
于 2013-08-09T17:42:14.810 回答