簡體   English   中英

ElasticSearch基本查詢,為什么不起作用

[英]ElasticSearch basic query, why doesn't it work

我正在嘗試學習如何查詢ElasticSearch。 我的背景是數據庫開發,我一直在思考sql的實現方式。 我確實閱讀過有關不同類型查詢的ES文檔,但其中許多對我而言仍然沒有意義。 我有幾個問題,非常希望有人可以提供幫助。

  1. _search和_search之間有區別嗎?search_type = count?
  2. 有沒有一種方法可以查詢映射,以便查看字段名稱和類型?
  3. 我需要從app =“ AAA”的所有文檔中帶回app,cat和sub字段。

為什么這樣的東西不起作用?

{
  "fields":["app","cat","sub"],
  "query":{
        "field" : {
            "app.raw": "AAA"
        }
    },
  "from": 0,
  "size": 10
}

謝謝

  1. _search和_search之間有區別嗎?search_type = count?

是的,后者不會返回實際的匹配。 如果只需要知道將匹配多少個文檔,或者只需要過濾器/聚合的結果,則后者適合您。

  1. 有沒有一種方法可以查詢映射,以便查看字段名稱和類型?

使用get映射端點: http:// localhost:9200 / index / type / _mapping?pretty

語法有多種形式,我使用type/_mapping但您也可以將其稱為_mapping/type

  1. 我需要從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM