elasticsearch基本查詢語法筆記


基礎使用

1. 啟動狀態

# 查看es是否正常啟動
curl 'http://localhost:9200/?pretty'

2. 數據總量

使用_cout獲取總數量 GET /_count

# 查看總數量
GET /_count?pretty
{
  "query": {
    "match_all": {}
  }
}

3. 根據ID查詢

根據ID獲取,以下方式都可以取得相同的值

GET /megacorp/employee/_search?q=_id:1
GET megacorp/employee/1

4. 查詢所有的數據

GET megacorp/employee/_search
{
  "query": {
    "match_all": {}
  }
}
GET megacorp/employee/_search

5. 分詞搜索及短語搜索

分將后面的條件進行分詞,如果是"rock climbing" 有引號,就不會進行分詞
如為match_phrase 即為短詞搜索

GET /megacorp/employee/_search?q=about:rock climbing
GET megacorp/employee/_search
{
  "query": {
    "match": {
      "about": "rock climbing"
    }
  }
}

6. 搜索結果高亮顯示

GET megacorp/employee/_search
{
  "query": {
    "match": {
      "about": "rock climbing"
    }
  },
  "highlight": {
    "fields": {
      "about": {}
    }
  }
}

7. 聚合-分組數量

按興趣愛好的關鍵詞進行聚合展示出其數量,類似於group by

GET /megacorp/employee/_search
{
  "aggs": {
    "test123": {
      "terms": {
        "field": "interests.keyword",
        "size": 10
      }
    }
  }
}

8. 聚合-平均值

GET /megacorp/employee/_search
{
  "aggs": {
    "age_avg": {
      "avg": {
        "field": "age"
      }
    }
  }
}

9. 聚合-多層分組並求組內平均

需要多層aggs進行聚合,下層在上層的基礎上進行處理

GET /megacorp/employee/_search
{
  "aggs": {
    "inters": {
      "terms": {
        "field": "interests.keyword",
        "size": 10
      },
      "aggs": {
        "avg_age": {
          "avg": {
            "field": "age"
          }
        }
      }
    }
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM