2014-03-04 37 views
0

是否有一種方法可以查詢多值字段中包含一個屬性值的所有文檔的彈性搜索;即:Elasticsearch查詢選擇包含一個字段值的所有文檔多值字段

我有屬性值的字段顏色列表:紅色,藍色,黑色,綠色 另一個屬性在字段優先單個值:紅

是有辦法選擇包含的所有文件在多值字段COLORS中的字段PREFERENCE中找到的值?

SQL相當於將這一類的東西:

SELECT * FROM index WHERE COLORS LIKE CONCAT('%', PREFERENCE, '%') 

回答

1

你可以使用腳本過濾器。像這樣的東西

GET /test/stack/_search 
{ 
    "query": { 
     "match_all": {} 
    }, 
    "filter": { 
     "script":{ 
      "script":"if(doc['colors'].values.indexOf(doc['preference'].value) > -1) true; else false;" , 
      "params": {} 

     },"lang":"js" 
    } 
} 
相關問題