6搜索接口--3请求体

高级搜索技巧
使用url进行检索会有一定限制,即当条件多的或者复杂的话就不太适合。这种情况下可以把检索要求写在请求体内。(又由于部分开源对于get请求不支持请求体,可以使用post方式)

{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"status": 2
}
},
{
"term": {
"tier": 3
}
}
]
}
},
{
"term": {
"media_id": 102050
}
}
],
"should": [
{
"term": {
"actions": 3
}
}
],
"must_not": [
{
"term": {
"duration": "304"
}
}
],
"filter": [
{
"range": {
"duration": {
"gte": 20,
"lt": 309
}
}
},
{
"range": {
"approved_time": {
"lt": 1486531465338
}
}
}
]
}
},
"sort": [
{
"duration": {
"order": "desc"
}
},
{
"created_time": {
"order": "desc"
}
}
]
}

以上是总结

从0条开始,查看10条
GET /_search
{
"from" : 0, "size" : 10,
"query" : {
"term" : { "user" : "kimchy" }
}
}[code="java"]
排序,根据post_date进行升序
GET /my_index/my_type/_search
{
"sort" : [
{ "post_date" : {"order" : "asc"}}
],
"query" : {
"term" : { "user" : "kimchy" }
}
}[/code]
asc:升序
desc:降序
除此外,还可以根据复杂类型进行排序,不过需要对复杂类型定义需要排序的定义

字段过滤(即那些字段不展示,那些字段展示)
GET /_search
{
"_source": "obj.*",
"query" : {
"term" : { "user" : "kimchy" }
}
}

或者
GET /_search
{
"_source": [ "obj1.*", "obj2.*" ],
"query" : {
"term" : { "user" : "kimchy" }
}
}

或者
GET /_search
{
"_source": {
"includes": [ "obj1.*", "obj2.*" ],
"excludes": [ "*.description" ]
},
"query" : {
"term" : { "user" : "kimchy" }
}
}


搜索颜色为红色且品牌为gucci的数据
GET /shirts/_search
{
"query": {
"bool": {
"filter": [
{ "term": { "color": "red" }},
{ "term": { "brand": "gucci" }}
]
}
}
}


对上面的数据分组展示
GET /shirts/_search
{
"query": {
"bool": {
"filter": [
{ "term": { "color": "red" }},
{ "term": { "brand": "gucci" }}
]
}
},
"aggs": {
"models": {
"terms": { "field": "model" }
}
}
}

高亮content列
GET /_search
{
"query" : {
"match": { "content": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {}
}
}
}


解释分数如何计算
GET /_search
{
"explain": true,
"query" : {
"term" : { "user" : "kimchy" }
}
}

当前文档的版本
GET /_search
{
"version": true,
"query" : {
"term" : { "user" : "kimchy" }
}
}


排除分数小于指定值
GET /_search
{
"min_score": 0.5,
"query" : {
"term" : { "user" : "kimchy" }
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值