elasticsearch中文指南

搜索APIS

路由

当执行一个搜索,它将会广播到所有的索引/索引分片。被搜索的分片可以通过提供routing参数来控制。例如当索引推文时,用户名就可以作为路由的值。

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

在这种情况下,如果你仅仅想查询特定用户的推文,我们可以将其指定为路由,从而在搜索时只命中相关的分片。

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

路由参数可以由逗号分隔的多个字符串表示,这将使查询命中与路由参数值相匹配的相关分片。

统计组

一个搜索可以与统计组相关联,每一个组都包含一个统计集合,它可以通过索引统计API在以后重新获取。例如,下面是一个与两个分组相关联的搜索的搜索体。

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

目录