1

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

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

[{
    "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
            }
        }
    }
}]

干杯

尼克

4

1 回答 1

-1

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

它有帮助吗?

于 2012-10-31T10:21:56.683 回答