搜索API(Search APIs)

 

Search APIs

  大多数搜索API是多索引,多类型,除了解释API端点。

Routing(路由)

  当执行搜索时,它将被广播到所有索引/索引碎片(在副本之间轮询)。可以通过提供routing参数来控制哪些碎片将被搜索。例如,索引tweet时,路由值可以是用户名:

$ curl -XPOST 'http://localhost:9200/twitter/tweet?routing=kimchy' -d '{
    "user" : "kimchy",
    "postDate" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'

  在这种情况下,如果要仅搜索特定用户的推文,我们可以将其指定为routing,导致搜索仅触发相关的分片:

$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
    "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "some query string here"
                }
            },
            "filter" : {
                "term" : { "user" : "kimchy" }
            }
        }
    }
}
'

  routing参数可以是多值,以逗号分隔的字符串表示。这将导致击中routing值匹配的相关分片。

Stats Groups(统计组)

  搜索可以与统计组相关联,维护每个组的统计信息聚合。稍后可以使用特定的索引stats API进行检索。例如,这是一个搜索请求体,将请求与两个不同的组相关联:

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

Global Search Timeout(全局搜索超时)

  个人搜索可以将超时作为请求正文搜索的一部分。由于搜索请求可能来自许多来源,Elasticsearch具有全局搜索超时的动态群集级别设置,适用于在请求正文搜索中未设置超时的所有搜索请求。默认值不是全局超时。设置键为search.default_search_timeout,可以使用群集更新设置端点进行设置。将此值设置为-1会将全局搜索超时重置为无超时。

 

原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search.html

转载于:https://www.cnblogs.com/benjiming/p/7232591.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值