Wystawiam zapytanie do elasticsearch i otrzymuję wiele typów rekordów. Jak ograniczyć wyniki do jednego typu?Jak mogę zapytać elasticsearch tylko o jeden typ rekordu?
Odpowiedz
Następująca kwerenda będzie ograniczyć wyniki do zapisów z typem "your_type":
curl - XGET 'http://localhost:9200/_all/your_type/_search?q=your_query'
Zobacz http://www.elasticsearch.org/guide/reference/api/search/indices-types.html więcej szczegółów.
{
"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"
}
}
}
}
}
}
„_Typ”: „UserAudit” warunek będzie wyglądać rekordy tylko od rodzaju
Można również użyć dsl zapytania odfiltrować wyniki dla konkretnego typu jak ten:
$ curl -XGET 'http://localhost:9200/_search' -d '{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
'
przestarzałe w 2.0.0-beta1. Użyj zapytania boolowego z klauzulą must dla zapytania i klauzulą filtru dla filtru. – zVictor
od wersji 2.3
można wyszukać _type field jak:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
Lub jeśli yo u chcą wykluczenia typu:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}
To dobry pomysł, na ogół, do włączenia przykładowe zapytania jesteś wydającego es ... – karmi