[英]ElasticSearch basic query, why doesn't it work
我正在嘗試學習如何查詢ElasticSearch。 我的背景是數據庫開發,我一直在思考sql的實現方式。 我確實閱讀過有關不同類型查詢的ES文檔,但其中許多對我而言仍然沒有意義。 我有幾個問題,非常希望有人可以提供幫助。
為什么這樣的東西不起作用?
{
"fields":["app","cat","sub"],
"query":{
"field" : {
"app.raw": "AAA"
}
},
"from": 0,
"size": 10
}
謝謝
- _search和_search之間有區別嗎?search_type = count?
是的,后者不會返回實際的匹配。 如果只需要知道將匹配多少個文檔,或者只需要過濾器/聚合的結果,則后者適合您。
- 有沒有一種方法可以查詢映射,以便查看字段名稱和類型?
使用get映射端點: http:// localhost:9200 / index / type / _mapping?pretty
語法有多種形式,我使用type/_mapping
但您也可以將其稱為_mapping/type
- 我需要從app =“ AAA”的所有文檔中帶回app,cat和sub字段。
在不知道您的映射的情況下,很難猜測出真正出了什么問題。
由於您使用的是app.raw
我假設您可能使用了Core Types ,這是一個not_analyzed
字段,因此您可能應該使用與其最not_analyzed
的查詢,即Term Query :
{
"query":{
"term" : {
"app.raw": "AAA"
}
}
}
如果上述方法不能解決問題,請提供yourindex/yourtype/_mapping?pretty
的輸出。
掌握查詢DSL對於使一切有用非常重要。 我建議閱讀“ 查詢DSL參考” ,閱讀“按部搜索”指南,並且我也可以推薦最近的視頻Query DSL,不僅適用於Wizards ,還可以消除一些奇怪的部分的神秘感。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.