Ich stelle eine Anfrage an elasticsearch und ich bekomme mehrere Datensatztypen. Wie beschränke ich die Ergebnisse auf einen Typ?Wie kann ich elasticsearch nur für einen Datensatztyp abfragen?
Antwort
Die folgende Abfrage wird mit dem Typ "your_type" Ergebnisse auf Datensätze beschränken:
curl - XGET 'http://localhost:9200/_all/your_type/_search?q=your_query'
http://www.elasticsearch.org/guide/reference/api/search/indices-types.html Details für mehr sehen.
{
"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“ Zustand wird die Datensätze aussehen nur spezifisch für Typ
Sie auch Abfrage dsl können Ergebnisse für bestimmte Art so filtern:
$ curl -XGET 'http://localhost:9200/_search' -d '{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
'
Veraltete in 2.0.0-beta 1. Verwenden Sie die bool-Abfrage stattdessen mit einer must-Klausel für die Abfrage und einer Filterklausel für den Filter. – zVictor
auf 2.3
Version können Sie _type field wie abfragen:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
Oder wenn yo u wollen eine Art auszuschließen:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}
Es ist eine gute Idee, in der Regel, ein Beispiel für die Abfrage enthalten Sie ES sind die Ausstellung ... – karmi