2012-11-28 13 views
11

Jakiego adresu URL używasz do wykonania zapytania indeksowego?Jak wykonać zapytanie indeksów w ElasticSearch?

Widzę tutaj, ale jaki jest adres URL, aby to zrobić? http://www.elasticsearch.org/guide/reference/query-dsl/indices-query.html

Jedynym sposobem wiem, jak kwerendy w elastycznego wyszukiwania jest z URI:

http://localhost:9200/myindex 

Problem mam to mam wiele indeksów z różnych dokumentów myindex1 myindex2 myindex3

i chcę być w stanie wykonać każde zapytanie dotyczące myindex1 i myindex2 (lub tylko myindex2 i myindex3)

Czy to możliwe? Ponadto można połączyć zapytanie indeksu z QueryDSL jak match_all zapytań lub warunków zapytania:

http://www.elasticsearch.org/guide/reference/query-dsl/terms-query.html

Proszę pokazać przykład przykładowy adres URL, a to, co dzieje się w organizmie wniosku, jeśli to możliwe, więc mogę zorientować .

Odpowiedz

7

Jeśli używasz poczucie wtyczki można napisać jak tego

POST myindex1/_search 
{ 
"query": {"match_all": {}} 
} 
16

można spróbować:

curl http://localhost:9200/myindex1,myindex2/_search?q=* 

Albo

curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{ 
    // your query here 
}' 

Czy to, czego szukasz?

6

Można to zrobić na kilka różnych sposobów.

1) Za pomocą zapytania indeksów na myindex1 i myindex2 z zapytaniem o warunki na polu title.

curl -XPOST http://localhost:9200/_search -d '{ 
    "query": { 
    "indices": { 
     "indices": [ 
     "myindex1", 
     "myindex2" 
     ], 
     "query": { 
     "terms": { 
      "title": [ 
      "foo", 
      "bar" 
      ] 
     } 
     } 
    } 
    } 
}' 

2) Poprzez określenie indeksów, które mają być wyszukiwane w URI (z tym samym zapytaniem o dokładne warunki).

curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{ 
    "query": { 
    "terms": { 
     "title": [ 
     "cookies", 
     "cake" 
     ] 
    } 
    } 
}' 

I tak, można zamienić na zapytania handlowe zapytania match_all (lub jakiegokolwiek innego zapytania here, naprawdę) w jednej z dwóch przykładach. Oto przykład kwerendy match_all w drugim przykładzie:

curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{ 
    "query": { 
    "match_all": {} 
    } 
}' 
+1

indeksach: Zapytanie jest przestarzałe w ElasticSearch 5 –

1

Polecam zainstalowanie wtyczki elastycznej. Trzecia karta tego interfejsu ma program budujący zapytania. Możesz wybrać indeks, zbudować zapytanie i zapoznać się z tworzonym zapytaniem dsl. To szybki sposób na przyspieszenie składni zapytania dsl.

http://mobz.github.io/elasticsearch-head/

Powiązane problemy