Elasticsearch查询

说明

除explain查询外,Elasticsearch的查询基本都可以跨区域。

采用简式写法(完整写法:curl -XGET ‘localhost:9200/index/type/id’)

 

圈定shard范围

执行搜索的时候,elasticsearch会全局广播查询。

可以通过指定 routing 的值来圈定shard范围。

(1)指定 routing 插入

POST /twitter/tweet?routing=kimchy
{
    "user" : "kimchy",
    "postDate" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

 (2)指定 routing 查询

可同时指定多个 routing ,只需用逗号分割即可。

POST /twitter/tweet/_search?routing=kimchy
{
    "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "some query string here"
                }
            },
            "filter" : {
                "term" : { "user" : "kimchy" }
            }
        }
    }
}

 

搜索并分组

搜索并实现分组。

POST /_search
{
    "query" : {
        "match_all" : {}
    },
    "stats" : ["group1", "group2"]
}

 

无限定查询

1、未指定type查询
GET /twitter/_search?q=user:kimchy

2、指定多type查询
GET /twitter/tweet,user/_search?q=user:kimchy

3、未指定index查询
GET /_all/tweet/_search?q=tag:wow

4、指定多index查询
GET /kimchy,elasticsearch/tweet/_search?q=tag:wow

5、未指定index以及type查询
GET /_search?q=tag:wow    

 

搜索超时

elasticsearch可设置全局搜索超时。

默认情况下是无超时限制的。

设置 search.default_search_timeout 全局搜索超时时长,设为 -1 恢复超时无限制。

 

搜索取消

(这里直翻,不是很懂,需要继续研究看看)

通过标准的任务取消机制是可以取消搜索操作的。

默认情况下,搜索任务是否取消检查通常在段尾,所以碰到大的节段,它就会延迟。

通过设置 search.low_level_cancellation 为 true 来提高搜索任务检查的等级,但是会影响性能。

 

转载于:https://my.oschina.net/varusyan/blog/911691

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值