在Elasticsearch中,我想用兩個不同的子句聚合來過濾我的結果,例如,回傳PropertyA=true OR PropertyB=true的檔案。
我一直在嘗試使用bool查詢來實作這一目的。我的基本查詢只是在must中進行文本搜索。如果我把這兩個子句放在filter發生型別中,它就用AND來聚合它們。如果我把這兩個子句放在should發生型別中,并把minimum_should_match設定為1,那么我就會得到正確的結果。但是,符合這兩個條件的檔案會得到更高的分數,因為 "should "在查詢背景關系中運行。
我如何過濾到只匹配兩個條件中的任何一個的檔案,而不增加匹配兩個條件的檔案的分數?
預先感謝
uj5u.com熱心網友回復:
你需要利用constant_score查詢,因此一切都在過濾器背景關系中運行:
{
"查詢"。{
"constant_score": {
"過濾器": {
"bool": {
"minimum_should_match": 1,
"應該": [
{
"術語": {
"屬性A": true
}
},
{
"術語": {
"屬性B": true
}
}
]
}
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/329578.html
標籤:
