2016-09-21 1 views
0

Ich versuche, Protokolle basierend auf dem Domänennamen zu filtern. Zum Beispiel möchte ich nur die Ergebnisse der Domain: bh250.example.com.Ealasticsearch Ergebnisse genau als Parameter

Wenn ich die folgende Abfrage:

http://localhost:9200/_search?pretty&size=150&q=domainname=bh250.example.com

die ersten 3 Ergebnisse haben einen Domain-Namen: bh250.example.com, wo der vierte mit bh500.example.com

Ich habe mehrere Dokumentationen darüber, wie man Elasticsearch abfragt, aber ich vermisse etwas. Ich möchte nur Ergebnisse mit 100% Übereinstimmung mit dem Parameter.

UPDATE !! Nachdem Frage von Val

queryFilter = Q("match", domainname="bh250.example.com") 

search=Search(using=dev_client, index="logstash-2016.09.21").query("bool", filter=queryFilter)[0:20] 

Antwort

0

Sie sind fast da, man muss nur eine kleine Änderung vornehmen:

http://localhost:9200/_search?pretty&size=150&q=domainname:"bh250.example.com" 
                 ^    ^
                  |     | 
            use colon instead of equal... and double quotes 
+0

Gibt es eine Möglichkeit, den Doppelpunkt und die doppelten Anführungszeichen innerhalb Python Elasticsearch dsl – JasperFennet

+0

Wie hinzufügen Machst du es jetzt? – Val

+0

Aktualisierte Frage mit Code, den ich jetzt benutze – JasperFennet