我正在向elasticsearch发出一个查询,我正在获得多种记录类型。如何将结果限制为一种类型?
答案 0 :(得分:22)
以下查询会将结果限制为类型为“your_type”的记录:
curl - XGET 'http://localhost:9200/_all/your_type/_search?q=your_query'
有关详细信息,请参阅http://www.elasticsearch.org/guide/reference/api/search/indices-types.html。
答案 1 :(得分:14)
您还可以使用查询dsl过滤掉特定类型的结果,如下所示:
$ curl -XGET 'http://localhost:9200/_search' -d '{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
'
版本6.1的更新: 类型过滤器现在被类型查询替换:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-type-query.html 您可以在查询和过滤器上下文中使用它。
答案 2 :(得分:3)
{
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" :[{"term":{"_type":"UserAudit"}}, {"term" : {"eventType": "REGISTRATION"}}]
}
}
}
},
"aggs":{
"monthly":{
"date_histogram":{
"field":"timestamp",
"interval":"1y"
},
"aggs":{
"existing_visitor":{
"terms":{
"field":"existingGuest"
}
}
}
}
}
}
" _type":" UserAudit"条件将查看仅特定于类型
的记录答案 3 :(得分:0)
在版本2.3
上,您可以像_type field一样查询:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
或者,如果您要排除类型:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}