0
ElasticSearch中有沒有一種方法可以運行布爾過濾器,然後不進一步重新搜索搜索,根據multi_field查詢對結果進行排序/排序?然後按ElasticSearch中的查詢對結果進行排序
如:獲取與status_id = 1
(過濾器)的所有項目,然後通過使用關鍵字「紅車」(文檔,其name
和description
包含這些關鍵字第一,文檔,而在後的)命令的文檔。
ElasticSearch中有沒有一種方法可以運行布爾過濾器,然後不進一步重新搜索搜索,根據multi_field查詢對結果進行排序/排序?然後按ElasticSearch中的查詢對結果進行排序
如:獲取與status_id = 1
(過濾器)的所有項目,然後通過使用關鍵字「紅車」(文檔,其name
和description
包含這些關鍵字第一,文檔,而在後的)命令的文檔。
您可以使用布爾查詢 - 按條件應當的 -
子句(查詢)應該會出現匹配的文件內。在沒有must子句的布爾查詢中,一個或多個should子句必須與文檔匹配。可以使用minimum_should_match參數設置要匹配的最少的子句數。
在我們的案例中,因爲必須和它的數字匹配,所以不會計算得分值。但隨後應條件將被用於單獨計算得分 -
{
"query": {
"bool": {
"must": [
{
"match": {
"status_id": 1
}
}
],
"should": [
{
"multi_match": {
"query": "red car",
"fields": [
"subject",
"message"
]
}
}
]
}
}
}
實際上,我是這樣做的,減一兩件事,我是做了「必須」作爲過濾器,而不是查詢的一部分。結果,應該是本身,並正在減少結果集。 – Ian