2016-08-05 23 views
0

Ich habe einige Daten im Elasticsearch-Modul gespeichert und die Struktur ist sehr einfach.Wie schreibe elasticsearch mehrere Abfrage Bedingung?

[ 
    { 
     "country_id":1, 
     "city_id":12, 
     "city_name":"Kolkata" 
    }, 
    { 
     "country_id":1, 
     "city_id":55, 
     "city_name":"Delhi" 
    }, 
    { 
     "country_id":2, 
     "city_id":18, 
     "city_name":"Las Vegas" 
    }, 
    { 
     "country_id":3, 
     "city_id":22, 
     "city_name":"Sydney" 
    } 
] 

Ich brauche eine Suchanfrage wie

"Select * from table_name where country_id = 1 and city_name like %k%" 

Wenn jemand es mir bitte helfen, die genaue Elasticsearch Abfrage für die obige SQL-Abfrage, um herauszufinden.

Ich habe mit dieser Abfrage versucht, aber es produziert Fehler.

curl -XGET "http://xxx.xxx.xxx.x:9200/xxxx/location_details/_search?size=10" -d '{"query":{"bool":{"must":{"term":{"country_id":"101"}}},{"match_phrase":{"city_name":"a"}}}}' 

Antwort

1

Das ist ein guter Start

Versuchen Sie stattdessen:

curl -XPOST "http://xxx.xxx.xxx.x:9200/xxxx/location_details/_search" -d '{ 
    "size": 10, 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "country_id": "101" 
      } 
     }, 
     { 
      "query_string": { 
      "query": "city_name:*a*" 
      } 
     } 
     ] 
    } 
    } 
} 
+0

Dank @val aber ich bin immer Fehler für diese Abfrage: 'curl -XGET„http://xxx.xxx .xxx.x: 9200/location/location_details/_search? Größe = 5000 "-d" {"query": {"bool": {"muss": [{"term": {"country_id": "101"} }, {"query_string": {"query": {"city_name": "* s *"}}}}}}} ' –

+0

Was ist damit? – Val

+0

Fehler Generieren: '{" Fehler ": {" root_cause ": [{" type ":" query_parsing_exception "," Grund ":" [query_string] Abfrage unterstützt nicht [city_name] "," index ":" xx " , "line": 1, "col": 83}], "type": "search_phase_execution_exception", "reason": "alle Shards fehlgeschlagen", "phase": "query", "grouped": true, "failed_shards" : [{"shard": 0, "index": "rudra", "node": "4e1L2eHtQ5SCPhDeHw-IGg", "Grund": {"type": "query_parsing_exception", "Grund": "[query_string] query tut dies nicht unterstützen [city_name] "," index ":" rudra "," line ": 1," col ": 83}}}}," status ": 400}' –