ES基本操作

本文介绍了Elasticsearch中用于检索数据的不同查询方式,包括match查询、match_phrase短语匹配、multi_match多字段查询、fuzzy模糊查询、wildcard通配符查询、filter过滤以及聚合操作。这些方法涵盖了精确、模糊、通配和组合查询,还展示了如何进行时间范围过滤和嵌套对象查询,以及如何利用聚合计算平均值。
摘要由CSDN通过智能技术生成

查所有的索引

GET _cat/indices

match

单字段匹配,会对字段分词

例如:查姓名中包含“Butler”的订单:

名字“Gwen Butler” 会被拆分为“Gwen” 和 “Butler” 进行匹配

POST kibana_sample_data_ecommerce/_search
{
  "query":{
    "match": {
      "customer_full_name": "Butler"
    }
  }
}

match_phrase

短语查询, 短语中的内容是精确匹配

例如:查姓名中包含“Gwen Butler”的订单:

POST kibana_sample_data_ecommerce/_search
{
  "query":{
    "match_phrase": {
      "customer_full_name": "Gwen Butler"
    }
  }
}

match_phrase

多字段查询,

例如:查姓名中包含“Gwen”, 性别为女的订单:

POST kibana_sample_data_ecommerce/_search
{
  "query":{
    "multi_match": {
      "query": "Gwen FEMALE",
      "fields": ["customer_full_name", "customer_gender"]
    }
  }
}

fuzzy

模糊查询, 与match不同,不分词。能够对拼写错误的进行匹配

例如:查姓名中包含“Gwen”的订单, 但是搜索的时候写错成“Gwex” 也能查出来

"fuzziness": 2 ,允许错2个字符

POST kibana_sample_data_ecommerce/_search
{
  "query":{
    "fuzzy": {
      "customer_full_name": {
        "value": "Gwex",
        "fuzziness": 2
      }
    }
  }
}

wildcard

通配符查询, 

例如:查姓名中包含“Gwe”的订单

POST kibana_sample_data_ecommerce/_search
{
  "query":{
    "wildcard": {
      "customer_full_name": "*Gwe*"
    }
  }
}

filter

过滤, 不参与算分 

例如:按下单时间过滤

POST kibana_sample_data_ecommerce/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "customer_full_name": "Butler"
          }
        }
      ],
      "filter": [
        {"range": {
          "order_date": {
            "gte": "2021-11-20",
            "lte": "2023-11-20"
          }
        }}
      ]
    }
  }
}

嵌套对象

例如:查指定sku的订单

POST kibana_sample_data_ecommerce/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "products.sku": "ZO0374603746"
          }
        }
      ]
    }
  }
}

聚合

aggs

例如:先按性别分组,再统计每种性别订单的平均金额

POST kibana_sample_data_ecommerce/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "day_of_week": "Sunday"
          }
        }
      ]
    }
  },
  "aggs": {
    "gender_aggs": {
      "terms": {
        "field": "customer_gender",
        "size": 10
      },
      "aggs": {
        "avgprice_aggs": {
          "avg": {
            "field": "taxful_total_price"
          }
        }
      }
    }
  }
}

Elasticsearch是一个开源的分布式搜索和分析引擎,它可以用于存储、搜索和分析大量的数据。以下是一些Elasticsearch基本操作: 1. 安装和启动Elasticsearch:首先,你需要从Elasticsearch官方网站下载和安装Elasticsearch。安装完成后,你可以使用命令行或者图形界面来启动Elasticsearch。 2. 创建索引:在Elasticsearch中,数据存储在索引中。你可以使用PUT请求来创建一个新的索引。例如,使用curl命令可以发送以下请求来创建一个名为"my_index"的索引: ``` curl -XPUT 'localhost:9200/my_index' ``` 3. 添加文档:一旦索引创建好了,你可以使用POST请求来向索引中添加文档。文档是以JSON格式表示的数据。以下是向名为"my_index"的索引添加一个文档的示例请求: ``` curl -XPOST 'localhost:9200/my_index/_doc' -d ' { "title": "Elasticsearch Basics", "content": "This is a basic introduction to Elasticsearch" }' ``` 4. 搜索文档:你可以使用GET请求来搜索索引中的文档。以下是一个搜索名为"my_index"的索引中包含关键字"elasticsearch"的文档的示例请求: ``` curl -XGET 'localhost:9200/my_index/_search?q=elasticsearch' ``` 5. 更新文档:使用POST请求可以更新索引中的文档。以下是更新名为"my_index"的索引中ID为1的文档的示例请求: ``` curl -XPOST 'localhost:9200/my_index/_doc/1/_update' -d ' { "doc": { "content": "This is an updated content" } }' ``` 6. 删除文档:使用DELETE请求可以删除索引中的文档。以下是删除名为"my_index"的索引中ID为1的文档的示例请求: ``` curl -XDELETE 'localhost:9200/my_index/_doc/1' ``` 这些是Elasticsearch的一些基本操作。你可以根据需要进一步探索和学习更多高级功能和API。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值