12
我有一個數組字段一堆文件,像這樣:Elasticsearch條款過濾器不返回任何結果
{ "feed_uids": ["math.CO", "cs.IT"] }
我想找到包含這些值即的某個子集把他們當作標籤的所有文件。文檔使我相信一個條款過濾器應該工作:
{ "query": { "filtered": { "filter": { "terms": { "feed_uids": [ "cs.IT" ] } } } } }
但是,查詢不匹配任何內容。我究竟做錯了什麼?
如果你正在做一個條件過濾器,你要過濾的列應該被分析。是否要設置feeds_uids字段進行分析?如果是的話,它使用什麼分析儀?您可以測試將字符串cs.IT傳遞到分析器時返回哪些令牌。您可以通過執行以下操作來測試分析儀的返回數據:localhost:9200/{您的索引名稱}/_ analyze?analyzer = {您的分析儀名稱}&text = cs.IT。 –
我剛剛通過默認的雪球分析器運行您的文本,並獲得了以下令牌響應{「令牌」:「cs.it」,「start_offset」:0,「end_offset」:5,「type 「:」「,」position「:1}]}所以文本的標記似乎是正確的,所以我可以想象的唯一的其他事情是您的feed_uids字段未設置爲分析。 –