弹性搜索:多个查询和提升

时间:2012-10-31 09:51:32

标签: elasticsearch

我想进行包含许多具有不同提升的搜索的搜索,并通过得分返回结果。我尝试进行如下搜索,我认为它运行得很好,直到我意识到只有第一个查询正在运行。

我应该如何改写这个以获得运行所有查询的结果,以及按分数排序的结果,如果结果显示多个查询,则将分数加在一起?

[{
    "query": {
        "fuzzy": {
            "title": {
                "value": "lord",
                "boost": 20,
                "min_similarity": 0.8
            }
        }
    }
}, {
    "query": {
        "fuzzy": {
            "location": {
                "value": "london",
                "boost": 1000,
                "min_similarity": 0.8
            }
        }
    }
}, {
    "query": {
        "fuzzy": {
            "haircolour": {
                "value": "dark",
                "boost": 500,
                "min_similarity": 0.8
            }
        }
    }
}, {
    "query": {
        "fuzzy": {
            "description": {
                "value": "senior",
                "boost": 100,
                "min_similarity": 0.7
            }
        }
    }
}, {
    "query": {
        "fuzzy": {
            "description": {
                "value": "manager",
                "boost": 100,
                "min_similarity": 0.7
            }
        }
    }
}]

干杯

的Nik

1 个答案:

答案 0 :(得分:-1)

为什么不为每个查询创建一个bool查询,主查询作为must子句,其他查询作为should子句?

有帮助吗?