2015-12-15 165 views
-1

我有以下查詢的結果是滿意的,但結果的順序不根據施加濾波器的階數。Elasticsearch如何通過過濾查詢

結果的順序應該是: a1.in a2.in a3.in

但結果不被過濾排序。

我的問題是,我可以按照應用過濾器的結果排序?

在此先感謝。

以下是我使用

post /mycity/_search?_source=meta_description,url,h1tag 
{ 
"query": { 
    "function_score":{ 
    "query":{ 
      "match_phrase_prefix": { 
     "meta_description.edgegrm": { 
     "query": "best restaurant", 
     "prefix_length": 1, 
     "max_expansions": 5, 
     "slop":10, 
     "minimum_should_match":"75%" 

     } 
    } 
    }, 
    "query":{ 
     "match_phrase_prefix": { 
     "content.edgegrm": { 
     "query": "best restaurant", 
     "prefix_length": 1, 
     "max_expansions": 5, 
     "slop":10, 
     "minimum_should_match":"75%" 

     } 
    } 
    }, 
    "functions":[ 
     { 
      "filter":{"term": { 
      "host": "www.a1.in/city" 
     }}, 
     "weight":100 

     }, 
     { 
      "filter":{ 
       "term": { 
       "host": "www.a2.in/city" 
       } 
      }, 
      "weight":50 
     }, 
       { 
      "filter":{ 
       "term": { 
       "host": "www.a3.in/city" 
       } 
      }, 
      "weight":25 
     } 


     ], 
     "score_mode": "sum" 


    } 

}, 

"from":0, 
"size":100 
} 

回答

1

嘗試設置boost_mode總結以及查詢。

+0

對於遲到的回覆感到抱歉。你的建議很完美。 – austin

+0

很高興提供幫助。 upvote,如果你喜歡。 –