2016-05-04 3 views
0

Ich habe die folgende elastic search (0.90) Abfrage, die Treffer auf der Basis id Feld mit Kombinationen von OR Operator zwischen ihnen zurückgeben. Es funktioniert perfekt.Elastische Suchabfrage String zu Begriff Abfrage

$query = '{ 
    "fields": "position", 
    "query": { 
     "query_string": { 
      "query": "id:rs6663158 id:rs6695131", 
      "default_operator": "OR" 
     } 
    } 
}'; 

Ich möchte das gleiche mit einer viel einfacheren Abfrage zu tun, und ich fand die term Option, und ich habe die folgenden, die feine Arbeit ist:

$query = '{ 
    "fields": "position", 
    "query": { 
     "term": { 
      "id": "rs6663158", 
      "default_operator": "OR" 
     } 
    } 
}'; 

Ich bin nicht sicher, wie man mehr hinzufügen als 1 id Feld wie: "id": ["rs6663158", "rs7221234"]. Ist es möglich, dies mit term Option zu tun, wenn nicht gibt es eine andere bessere und einfachere Lösung?

+1

Sie können das [ 'terms'] (https://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl -terms-filter.html) Filter für mehrere übereinstimmende Werte. –

Antwort

1

Mit der terms Abfrage, wie diese

$query = '{ 
    "fields": "position", 
    "query": { 
     "terms": { 
      "id": ["rs6663158", "rs6695131"] 
     } 
    } 
}'; 
+0

Ohhh ... Ich vermisste die 's' in Bezug .. Es hat funktioniert !!! – DhiwaTdG

+0

Toll, froh, dass es geklappt hat! – Val