前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何更好的学习Elasticsearch DSL

如何更好的学习Elasticsearch DSL

原创
作者头像
周银辉
修改2024-07-11 11:53:35
690
修改2024-07-11 11:53:35
举报
文章被收录于专栏:ElasticSearchElasticSearch

一、结构化查询

结构化查询样例数据

代码语言:txt
复制
DELETE users;
GET users/_mapping
PUT users/_bulk
{ "index": { "_id": "1" } }
{ "name": "Alice", "age": 25, "status": "active", "description": "Alice loves hiking and outdoor activities." }
{ "index": { "_id": "2" } }
{ "name": "Bob", "age": 30, "status": "inactive", "description": "Bob is a software engineer who enjoys coding." }
{ "index": { "_id": "3" } }
{ "name": "Charlie", "age": 35, "status": "pending", "description": "Charlie is a photographer and loves to travel." }
{ "index": { "_id": "4" } }
{ "name": "David", "age": 40, "status": "active", "description": "David is a data scientist with a passion for machine learning." }
{ "index": { "_id": "5" } }
{ "name": "Eve", "age": 45, "status": "inactive", "description": "Eve is a project manager who enjoys reading." }

1、term查询

代码语言:markdown
复制
GET users/_search
{
  "query": {
    "term": {
      "description": {
        "value": "loves hiking and outdoor"
      }
    }
  }
}

2、terms查询

代码语言:txt
复制
GET users/_search
{
  "query": {
    "terms":{
      "status":["active","inactive"]
    }
  }
}

3、range 查询

代码语言:txt
复制
GET users/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 20,
        "lte": 250
      }
    }
  }
}

4、exist

代码语言:txt
复制
GET users/_search
{
  "query": {
    "exists": {
      "field": "description1"
    }
  }
}

5、prefix

代码语言:txt
复制
GET users/_search
{
  "query": {
    "prefix": {
      "status": {
        "value": "act"
      }
    }
  }
}

6、wildcard

代码语言:txt
复制
GET users/_search
{
  "query": {
    "wildcard": {
      "status": {
        "value": "inact*"
      }
    }
  }
}

7、 regexp

代码语言:txt
复制
GET users/_search
{
  "query": {
    "regexp": {
      "description": "**love.*"
    }
  }
}

8、fuzzy

代码语言:txt
复制
GET users/_search
{
  "query": {
    "fuzzy": {
      "name": {
        "value": "davd"
      }
    }
  }
}

9、匹配特定id

代码语言:txt
复制
GET users/_search
{
  "query": {
    "ids": {
      "values": ["1","4"]
    }
  }
}

10、用于filter查询

代码语言:txt
复制
GET users/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "term": {
          "status": "active"
        }
      },
      "boost": 1.5
    }
  }
}
代码语言:txt
复制
GET users/_search
{
  "query": {
    "term": {
      "status": "active"
    }
  }
}
代码语言:txt
复制
GET users/_search
{
  "query": {
    "match": {
      "status": "active"
    }
  }
}

二、全文查询

代码语言:txt
复制
POST /books/_bulk
{ "index": { "_index": "books", "_id": "1" } }
{ "title": "Elasticsearch Guide", "description": "A comprehensive guide to Elasticsearch, the powerful search engine." }
{ "index": { "_index": "books", "_id": "2" } }
{ "title": "Learning Elasticsearch", "description": "Learn how to use Elasticsearch for search and data analysis." }
{ "index": { "_index": "books", "_id": "3" } }
{ "title": "Elasticsearch in Action", "description": "A practical book on how to implement Elasticsearch in real-world scenarios." }
{ "index": { "_index": "books", "_id": "4" } }
{ "title": "Mastering Elasticsearch", "description": "Advanced techniques and best practices for Elasticsearch." }
{ "index": { "_index": "books", "_id": "5" } }
{ "title": "Elasticsearch Essentials", "description": "Essential knowledge for getting started with Elasticsearch." }

1、match query

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "match": {
      "title": "Learning Elasticsearch"
    }
  }
}
  • 因为match查询是分词后查询,默认是或的关系,所以会把learning或elasticsearch相关联的文档查出来。
  • 可以加上operator:"and",查询他们且的关系。
代码语言:txt
复制
GET /books/_search
{
  "query": {
    "match": {
      "title": {
        "query": "Learning Elasticsearch",
        "operator": "and"
      }
    }
  }
}

2、match phrase

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "match_phrase": {
      "title": "Learning Elasticsearch"
    }
  }
}

3、multi match query

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "multi_match": {
      "query": "Elasticsearch",
      "fields": ["title","description"]
    }
  }
}

4、 query string query

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "query_string": {
      "query":  "guide OR learning" ,
      "fields": ["title", "description"]
    }
  }
}

5、simple query string query

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "simple_query_string": {
      "query": "guide +learning",
      "fields": ["title", "description"]
    }
  }
}

6、 common terms query

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "common": {
      "description": {
        "query":"Elasticsearch guide",
        "cutoff_frequency": 0.001
      }
    }
  }
}

7、 match_all

代码语言:txt
复制
GET /books/_search
{
  "query": {
    "match_all": {}
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、结构化查询
    • 结构化查询样例数据
      • 1、term查询
        • 2、terms查询
          • 3、range 查询
            • 4、exist
              • 5、prefix
                • 6、wildcard
                  • 7、 regexp
                    • 8、fuzzy
                      • 9、匹配特定id
                        • 10、用于filter查询
                        • 二、全文查询
                          • 1、match query
                            • 2、match phrase
                              • 3、multi match query
                                • 4、 query string query
                                  • 5、simple query string query
                                    • 6、 common terms query
                                      • 7、 match_all
                                      相关产品与服务
                                      Elasticsearch Service
                                      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档