2016-07-22 97 views
0

我是新來的彈性。
彈性搜索 - 給予完美匹配的偏好

我使用彈性搜索來搜索存儲在數據庫中的文檔的標題字段。更多信息:"title" field - type "String"/indexed and "title.unanalyzed" field - type "String"/unindexed

我希望文檔的標題與查詢完美匹配發生在搜索結果的頂部,而對於其他所有其他搜索結果,我希望它們按排名順序排序。我想給分值爲1.1的文檔與完全匹配的標題將有助於分析字段的0到1之間的彈性分數。我當前的查詢:

query: { 
        term: { 
          "title.unanalyzed": "some_title" 
        }, 

        multi_match: { 
          query: "some_title", 
          type: "most_fields", 
          fields: ["title", "other"] 
        } 
     } 

給出了一個錯誤:failed to parse search source. expected field name but got [START_OBJECT]。需要幫助,謝謝!

回答

1

試試這個:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "term": { 
      "title.unanalyzed": "some_title" 
      } 
     }, 
     { 
      "multi_match": { 
      "query": "some_title", 
      "type": "most_fields", 
      "fields": [ 
       "title", 
       "other" 
      ] 
      } 
     } 
     ] 
    } 
    } 
}