2017-02-27 3 views
0

HALLO iam die folgende Abfrage mit bool verwenden mussAbfrage-String mit Bool Abfrage embeded

{ 
    "query": { 
    "bool" : { 
    "must" : [ { 
     "match" : { 
     "orgid" : { 
      "query" : 13831, 
      "type" : "boolean" 
     } 
     } 
    }, { 
     "query_string" : { 
     "query" : "*07* AND *fres*" 
     } 
    } ] 
    } 
} 
} 

Es trifft null, obwohl es Dokumente mit org-ID als 13831 & in Dokumente dort eine Daten in allen Bereichen als 07 ist und fres.Ist alles falsch in dieser Abfrage

Antwort

0

Bearbeiten: Ein Problem könnte sein, dass Sie eine Match-Abfrage anstelle einer Begriff Abfrage verwenden. Termabfragen werden für exakte Übereinstimmungen verwendet. Im Folgenden wird die Ergebnismenge nur nach der gewünschten org_id gefiltert und danach nach 07 und fres gesucht. Bitte versuchen Sie es.

"query": { 
    "bool" : { 
     "must" : { 
     "query_string" : { 
      "query" : "*07* AND *fres*" 
     } 
     }, 
     "filter": { 
     "term" : { "orgid" : 13831 } 
     } 
    } 
    } 
+0

Vielen Dank für Ihren Vorschlag, aber mein Bedürfnis ist es, die Dokumente mit OrgId zu bekommen: 13.831 Und das Dokument muss auch Zeichen wie 07 und fres in eines der Felder in diesem Dokument –

+0

enthält, wenn ich die obige Abfrage geschrieben als "orgid": 13831 } es wird alle Dokumente zurückgeben, in denen orgid 13831 ist, aber wie wäre es mit der 07 UND fres Bedingung –

+0

Ich habe nicht gesagt, um die andere Bedingung zu entfernen. Was bedeutet diese Rückkehr: '{ "Abfrage": { "Bool": { "must": [{ "match": { "OrgId": 13831 } }, { "query_string": { "Abfrage": "* 07 * und * fres *" } }] } } } ' – paqash

Verwandte Themen