有没有办法在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)"
}
}
}
]
}
答案 0 :(得分:0)
基于此处的ES文档(http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query/),是的,您可以。 boost
是query_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)"
}
}
}
]
}