api - puertos - ¿Cómo puedo consultar elasticsearch para un solo tipo de registro?
elasticsearch tutorial (4)
Estoy realizando una consulta a elasticsearch y obtengo varios tipos de registros. ¿Cómo limito los resultados a un tipo?
En la versión 2.3
puedes consultar el campo de tipo como:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
O si quieres excluir un tipo:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}
La siguiente consulta limitará los resultados a los registros con el tipo "your_type":
curl - XGET ''http://localhost:9200/_all/your_type/_search?q=your_query''
Consulte http://www.elasticsearch.org/guide/reference/api/search/indices-types.html para obtener más detalles.
También puede usar la consulta dsl para filtrar los resultados para un tipo específico como este:
$ curl -XGET ''http://localhost:9200/_search'' -d ''{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
''
Actualización para la versión 6.1: El filtro de tipo ahora se reemplaza por la consulta de tipo: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-type-query.html Puede usar eso en ambas consultas y Filtrar contextos.
{
"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": la condición "UserAudit" buscará los registros solo específicos para el tipo