2017-06-16 53 views
0

實例文檔時:秩序elasticsearch在多值字段搜索單個值

{"id": 1, "categories" : ["A", "C","E"]} 
{"id": 2, "categories" : ["A", "C"]} 
{"id": 3, "categories" : ["A"]} 
{"id": 4, "categories" : ["A"]} 

當有人搜索在categories字段中的一個值「A」,我怎麼能確保文件3和4將總是比文件1和2更高,因爲它們更接近單個值「A」?

我曾嘗試此查詢:

{ 
    "query": { 
     "bool": { 
     "filter": { 
      "bool": { 
      "must": [ 
       { 
       "term": { 
        "categories": "A" 
       } 
       } 
      ] 
      } 
     } 
     } 
    } 
    } 

但文件3和4不是頂部順序。

回答

1

當您嘗試處理數組內的單元格時,無法控制相關性或tf/idf。 elasticsearch會將所有單元格及其內容視爲一個串聯的字符串。