2012-11-28 38 views
11

Bạn sử dụng URL nào để thực hiện truy vấn chỉ mục?Cách thực hiện truy vấn chỉ mục trong ElasticSearch?

Tôi thấy những điều sau ở đây, nhưng URL cũng làm như thế nào? http://www.elasticsearch.org/guide/reference/query-dsl/indices-query.html

Cách duy nhất tôi biết làm thế nào để truy vấn để tìm kiếm đàn hồi là với URI:

http://localhost:9200/myindex 

Vấn đề tôi đang gặp là tôi có nhiều chỉ mục với các tài liệu khác nhau myindex1 myindex2 myindex3

và tôi muốn có thể thực hiện bất kỳ truy vấn nào trên myindex1 và myindex2 (hoặc chỉ myindex2 và myindex3)

Điều này có thể không? Ngoài ra bạn có thể kết hợp truy vấn chỉ số với QueryDSL như match_all truy vấn hoặc cụm từ truy vấn:

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

Hãy thể hiện một ví dụ về một URL mẫu, và những gì diễn ra trong cơ thể được yêu cầu nếu có thể để tôi có thể có được một ý tưởng .

Trả lời

7

Nếu bạn đang sử dụng cảm giác cắm bạn có thể viết như thế này

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

Bạn có thể thử:

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

Hoặc

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

Có những gì bạn đang tìm kiếm?

6

Bạn có thể thực hiện việc này theo một vài cách khác nhau.

1) Với truy vấn chỉ mục trên myindex1myindex2 với truy vấn điều khoản trên trường title.

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

2) Bằng cách chỉ định các chỉ mục bạn muốn tìm kiếm trong URI (có cùng truy vấn cụm từ chính xác).

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

Và vâng, bạn có thể trao đổi trên các truy vấn về cho một truy vấn match_all (hoặc bất kỳ truy vấn khác here, thực sự) trong một trong hai ví dụ. Dưới đây là cách bạn thực hiện truy vấn match_all trong ví dụ thứ hai:

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

chỉ số: Query bị phản đối trong ElasticSearch 5 –

1

Tôi khuyên bạn nên cài đặt trình cắm đầu đàn hồi. Tab thứ 3 trên giao diện đó có trình tạo truy vấn. Bạn có thể chọn một chỉ mục, xây dựng một truy vấn và xem xét truy vấn dsl mà nó tạo ra. Đó là một cách nhanh chóng để tăng tốc độ lên cú pháp truy vấn dsl.

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

Các vấn đề liên quan