Elasticsearch字符串查询和Api结构化查询语法

Elasticsearch Api查询语法指南

ElasticSearch API查询可以提供两种表单:一种是“简易版”的查询字符串(query string)将所有参数通过查询字符串定义(查询字符串搜索对于在命令行下(curl -i -X +查询字符串)运行点对点查询特别有用),另一种版本使用JSON完整的表示请求体(request body),这种富搜索语言叫做结构化查询语句(DSL)

空搜索


空搜索:没有有指定任何的查询条件,只返回集群索引中的所有文档:

get  /_search

返回结果的的示例如下

对上述查询结果中的一些单词解释:
默认返回查询结果集中的10个结果。hits 包含total表示查询结果的总数量,hits数字中的各个对象表示查询的每一个结果,每个对象中都包含索引名,类型名,id以及本条数据在对于本次查询的结果相关性(_score),_source对象的值为索引原数据。took表示本次查询花费的毫秒数,_shards对象中包含参与本次查询的分片的一些信息,其中failed表示没有成功参与查询的分片数,successful表示成功参与查询的分片数,total表示参与查询的总分片数。timed_out表示本次查询是否超时

多索引和多类别

在索引 gb 的所有类型中搜索

get  /gb/_search

在索引 gb 和 us 的所有类型中搜索

get  /gb, us/_search

在以 g 或 u 开头的索引的所有类型中搜索

get   /g*, u*/_search

在索引 gb 的类型 user 中搜索

get  /gb/user/_search

在索引 gb 和 us 的类型为 user 和 tweet 中搜索

get /gb, us/user, tweet/_search

在所有索引的 user 和 tweet 中搜索 search types

get /_all/user, tweet/_search

分页查询(from:从哪里开始,size:显示结果)

GET	/_search?size=5 
GET	/_search?size=5&from=5 

简单搜索


查询字符串

查询所有类 型为 tweet 并在 tweet 字段中包含 elasticsearch 字符的文档

get  /_all/tweet/_search?q=tweet:elasticsearch

查找 name 字段中包含 “john” 和 tweet 字段包含 “mary” 的结果

get  /_all/tweet/_search?q=name:john	+tweet:mary

返回包含 “mary” 字符的所有文档的简单搜索

get  /_search?q=mary

name字段包含 “mary” 或"john",date晚于2014-09-10,_all字段包含"aggregations" 或"geo"

get  /_all/tweet/_search?q=name:(mary john)+date:>2014-09-10+(aggregations geo)

请求体查询
空查询将会返回索引中所有的文档

GET	/_search
{
}

使用 from 及 size 参数进行分页

GET	/_search
 {		
 "from":30,
 "size":	10
 }

使用match查询子句用来找寻在tweet字段中找寻包含elasticsearch的成员

get /search
{
	"query":{
			"match":{
					"tweet":"elasticserch"
			}
	}
}

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值