Elasticsearch查询、精确查询、统计数量和删除
实现查询操作
如果在服务器里可以使用本地调用
http://localhost:9200/索引名/_search
不在服务器中可以使用下面方式调用
http: //cluster-nodes:port/索引名/_search
cluster-nodes 和 port在ES的配置里
_search 用于查询
下面用于查询所有的索引
{
"query": {
"match_all": {}
}
}
操作展示:

通过match进行单个条件查询件
{
"query": { "match": { "姓名": "小明" } }
}
match代表模糊查询,也是一种分词器,会将"小明"分解为[‘小’,‘小明’,’明‘],然后进行查询,导致结果不太精确,解决方式如下:
给参数加上 .keyword
通过term进行精确查询
{
"query": {
"bool": {
"must": [
{ "term": { "姓名.keyword": "小明" } }
]
}
}
}
多个条件查询,需要通过bool
{
"query": {
"bool": {
"must": [
{ "match": { "姓名": "小明" } },
{ "match": { "姓名": "男" } }
]
}
}
}
统计数量
http://localhost:9200/索引名/_count
_count主要用于统计数量,条件跟查询写的一样就行,有个好处是查询出来的数量不受限制,直接查询的话会限制10000条数据
实现删除操作
如果在服务器里可以使用本地调用
http://localhost:9200/索引名/_delete_by_query
__delete_by_query 关键字用于查询后删除
通过多个条件查询实现删除操作
{
"query": {
"bool": {
"must": [
{
"term": {
"姓名.keyword": "小明"
}
},
{
"term": {
"性别.keyword": "man"
}
}
]
}
}
}
版权声明:本文为qq_41883461原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。