es查询

POST   地址/_search

普通查询

body

{

"query":{

"match" {

"key":value

},

"sort":[排序规则]

}

}

聚合查询

{

"aggs":{

"grades_word_count":{

"min":{

"field":"word_count"

}

}

}

}

高级查询

1 子条件查询  "query":{可选择以下内容}

  • query 方法  匹配程度

模糊查询

"match":{}

习语匹配

"match_phrase":{}

多字段匹配

"multi_match":{   "query":"value",          匹配关键字

"fields":["key","key"]   查询范围

}

语法查询

"query_string":{"query": "(value AND value) OR value"

}

结构化查询

"trem":{"key":"value"}

范围查询

"range":{  "key":{

"gte":数字,

"lte":数字

}}

  • filter 方法 只有是否,没有程度

"bool":{ "filter":{"term":{"key":"value"

}}}

2 复合语句查询

固定分数查询 只支持filter方法

"constant_score":{"filter":{"match":{"key":"value"}}}

布尔逻辑

"bool":{"should":[ 多个条件]}}  或者

"bool":{"must":[ 多个条件]}}  并且

"bool": {"must_not":{结构化查询}}  一定不能

原文地址:http://blog.51cto.com/amazing61/2063927

时间: 2024-10-11 06:37:58

es查询的相关文章

Es查询结果集默认是10000,更新设置

Es查询结果集默认是10000,结果集大小是int,最大为21亿左右 PUT _all/_settings?preserve_existing=true { "index.max_result_window" : "2000000000" } 将所有的索引结果窗口集改为20亿,这个是已经存在的索引 新建的索引还会默认是10000,需要修改模板配置 删除模板,在原模板加入"max_result_window":2000000000     然后重新

es 查询更新操作

# es 查询更新操作 # _*_ coding: utf-8 _*_ import time import datetime import pymysql from elasticsearch import Elasticsearch from urllib3.connectionpool import xrange # class EsClient(): es_host = "192.168.8.190" port = 9200 timeout = 15000 global ind

ES查询-match VS match_phrase

我们以一个查询的示例开始,我们在student这个type中存储了一些学生的基本信息,我们分别使用match和match_phrase进行查询. 首先,使用match进行检索,关键字是"He is": GET /test/student/_search { "query": { "match": { "description": "He is" } } } 执行这条查询,得到的结果如下: { "t

python 配合 es 查询数据

1.python脚本 [[email protected] ~]# cat python-es.py #!/usr/bin/env python3 from elasticsearch import Elasticsearch from json import dumps es = Elasticsearch( ['127.0.0.1:9200'], # 认证信息 # http_auth=('elastic', 'elastic') ) #print(es.ping()) #print(es.c

ES查询操作

/** * * method_name:simpleSearch * date:2016年11月4日上午11:10:53 * author:terry * return_type:List<Map<String,Object>> * description:简单查询 */ public static List<Map<String,Object>> simpleSearch(String alias,String[] indexNames,String[]

ES查询-term VS match (转)

原文地址:https://blog.csdn.net/sxf_123456/article/details/78845437 elasticsearch 中term与match区别 term是精确查询 match是模糊查询 term查询 term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个.比如说我们要找标题为北京奥运的所有文档 $curl -XGET http://localhost:9200/index/doc/_search?pr

ES查询某个字段没有值的数据

{ "query": { "bool": { "must_not": { "exists": { "field": “需要查询没有值的字段名称" } } } } } 原文地址:https://www.cnblogs.com/WPF0414/p/11445805.html

ES查询不重复的数据

GET ana-apk/_search #查询不重复的mac地址{  "size": 10,  "aggs": {    "MAC": {      "cardinality": {        "field": "MAC.keyword"      }    }  },  "_source":{    "include":["MAC&

es 查询分词字段为空的数据

{ "query": { "bool" : { "filter" : { "script" : { "script" : { "inline": "params._source.text_content==''" , "lang": "painless" } } } } } } 原文地址:https://www.cnblogs.