Sto inviando una query a elasticsearch e sto ottenendo più tipi di record. Come posso limitare i risultati a un solo tipo?Come posso interrogare elasticsearch per un solo tipo di record?
risposta
La seguente query sarà limitare i risultati ai record con il tipo di "your_type":
curl - XGET 'http://localhost:9200/_all/your_type/_search?q=your_query'
Vedere http://www.elasticsearch.org/guide/reference/api/search/indices-types.html per maggiori dettagli.
{
"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" condizione cercherà i record solo specifici per digitare
È inoltre possibile utilizzare query di dsl per filtrare i risultati per tipo specifico come questo:
$ curl -XGET 'http://localhost:9200/_search' -d '{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
'
Sconsigliata a 2.0.0-beta1. Utilizzare la query bool invece con una clausola must per la query e una clausola di filtro per il filtro. – zVictor
sulla versione 2.3
è possibile interrogare _type field come:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
O se yo u desidera escludere un tipo:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}
E 'una buona idea, in generale, di includere un esempio di query che stai emissione di ES ... – karmi