ES查询语句

Elasticsearch查询语法详解
本文介绍了Elasticsearch的查询语法,包括单条件查询、排序、查询结果信息、分页以及多条件bool查询。match用于单条件模糊搜索,match_phrase则要求完全匹配,term查询不分词。bool查询支持must(AND)、should(OR)、must_not(NOT)和filter(仅过滤)等逻辑操作,可用于构建复杂的查询条件。

1、单条件查询
query 中放筛选类型,match为单条件查询,match内部放筛选条件

{
    "query": {
        "match": {
            "seller.tax_code": "92510100MA6C5AH52D"
        }
    }
}


2、查询结果排序
sort代表排序,与query同一级别,sort内部放排序条件和排序方式(desc 降序,asc 升序)

{
    "query": {
        "match": {
            "seller.tax_code": "92510100MA6C5AH52D"
        }
    },
    "sort": {
        "created_at": "asc"
    }
}

3、查询结果相关信息
took:查询花费时长(毫秒)

timed_out:请求是否超时

 _shards:搜索了多少分片,成功、失败或者跳过了多个分片(明细)

hits.total.value : 查询结果条数 (数量大于10000条时,json中需要加上一个一级条件               "track_total_hits":true   ,才会展示实际数量)

{
	"took": 2,
	"timed_out": false,
	"_shards": {
		"total": 5,
		"successful": 5,
		"skipped": 0,
		"failed": 0
	},
	"hits": {
		"total": 194,
		"max_score": 1,
		"hits": [{}, {}]
	}
}

4、分页查询
类似sql的limit,from和size都与query同级,from表示从第n-1个记录开始(mysql中第一条是0),size表示查询往后的n条记录。

{
    "query": {
        "match": {
            "seller.tax_code": "92510100MA6C5AH52D"
        }
    },
    "sort": {
        "created_at": "asc"
    },
    "from": "0",
    "size": "1"
}

5、多种match(匹配查询)
 match 模糊搜索 (搜索中文时,容易出错),分词,包含任一分词就会展示

match_phrase 精准搜索(必须包含一模一样的串,才会返回),分词,包含所以分词就会展示

term查询与match的效果类似,区别是term不分词,match会分词

term查询和match_phrase都是不分词匹配,但是match_phrase经常用来匹配中文字段

terms查询类似于sql中的in效果,同样也是不能分词:

6、多条件查询(bool联合查询: must,should,must_not,filter)可以相互嵌套使用
must :类似sql的 and

should :类似sql的or 

must_not : 类似sql的 not  

filter: 作用和must一样,但是仅过滤,不评分,所以性能更高(可以直接替换must,查询结果是一样的)


{
    "query":{
        "bool":{
        "must":[
            {"match":{"invoice.invoice_type":"026"}},
            {"match":{"merchant.tax_code":"92510100MA6C5AH52D"}},
            {"match_phrase":{"buyer.title":"金牛区慧宸"}}
    ]}},
    "sort":{"created_at":"desc"}
}

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "supply_id": {
              "value": "93",
              "boost": 1
            }
          }
        },
        {
          "match": {
            "item_title": {
              "query": "康巴",
              "operator": "OR",
              "prefix_length": 0,
              "max_expansions": 50,
              "fuzzy_transpositions": true,
              "lenient": false,
              "zero_terms_query": "NONE",
              "auto_generate_synonyms_phrase_query": true,
              "boost": 1
            }
          }
        },
        {
          "term": {
            "style_code": {
              "value": "QATD210112172836000000339",
              "boost": 1
            }
          }
        }
      ],
      "adjust_pure_negative": true,
      "boost": 1
    }
  }
}

Elasticsearch是一个开源的分布式搜索和分析引擎,它提供了丰富的查询语句来进行数据检索和分析。下面是一些常用的Elasticsearch查询语句的介绍: 1. Match查询:用于执行全文搜索,它会将查询字符串与指定字段进行匹配。例如: ``` GET /index/_search { "query": { "match": { "field": "query_string" } } } ``` 2. Term查询:用于精确匹配某个字段的值。例如: ``` GET /index/_search { "query": { "term": { "field": "value" } } } ``` 3. Range查询:用于匹配指定范围内的值。例如: ``` GET /index/_search { "query": { "range": { "field": { "gte": "start_value", "lte": "end_value" } } } } ``` 4. Bool查询:用于组合多个查询条件,支持must、must_not、should等逻辑操作符。例如: ``` GET /index/_search { "query": { "bool": { "must": [ { "match": { "field1": "value1" } }, { "match": { "field2": "value2" } } ], "must_not": [ { "term": { "field3": "value3" } } ], "should": [ { "term": { "field4": "value4" } } ] } } } ``` 5. Aggregation聚合查询:用于对数据进行分组和统计分析。例如: ``` GET /index/_search { "aggs": { "group_by_field": { "terms": { "field": "field" }, "aggs": { "stats": { "stats": { "field": "numeric_field" } } } } } } ``` 这些只是Elasticsearch查询语句的一小部分,Elasticsearch还提供了更多的查询语句和功能,如模糊查询、通配符查询、正则表达式查询、地理位置查询等。你可以根据具体的需求选择合适的查询语句来进行数据检索和分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值