2015-01-05 86 views
2

我的文檔具有以下映射屬性:Elasticsearch:如何查詢一個長字段完全匹配

"sid" : {"type" : "long", "store": "yes", "index": "no"}, 

這家酒店只有一個爲每個記錄值。我想查詢這個屬性。我嘗試了以下查詢:

{ 
    "query" : { 
     "term" : { 
      "sid" : 10 
     } 
    } 
} 

{ 
    "query" : { 
     "match" : { 
      "sid" : 10 
     } 
    } 
} 

但是,我沒有得到任何結果。我確實有一個sid爲10的文檔。我做的任何事情都是錯誤的?我想查詢這個屬性完全匹配。

感謝和問候。從the documentation

回答

2

引用:

index:設置爲用於analyzed領域使用的分析儀是 分解成令牌之後進行索引和搜索的。 not_analyzed意味着它的 仍可搜索,但不會經歷任何分解過程或分解爲令牌的 。 no表示根本不可搜索 (作爲單獨的字段;它可能仍包含在_all中)。設置爲 no禁用include_in_all。默認爲analyzed

因此,通過將index設置爲no,您無法單獨按該字段進行搜索。所以,你要麼需要從index刪除no和其他選擇的東西,或者你可以使用"include_in_all":"yes"並使用不同類型的查詢:

"query": { 
    "match": { 
     "_all": 10 
    } 
    } 
+0

我改變了「指數:無」到「指數:not_analyzed」和它的工作原理。謝謝!!! – curious1

相關問題