Tôi đang chơi với ElasticSearch kết hợp với NEST trong dự án C# của tôi. Trường hợp sử dụng của tôi bao gồm một số chỉ mục với các loại tài liệu khác nhau mà tôi truy vấn riêng cho đến nay. Bây giờ tôi muốn thực hiện một chức năng tìm kiếm toàn cầu truy vấn tất cả các chỉ mục hiện có, các loại tài liệu và ghi kết quả đúng cách.NEST: Cách truy vấn nhiều chỉ mục và xử lý các lớp con khác nhau (loại tài liệu)?
Vì vậy, câu hỏi của tôi: Làm cách nào để thực hiện điều đó bằng cách sử dụng NEST?
Hiện tại tôi đang sử dụng hàm SetDefaultIndex
nhưng làm cách nào để xác định nhiều chỉ mục?
Có lẽ đối với một sự hiểu biết tốt hơn, đây là câu hỏi tôi muốn thực hiện với NEST:
{
"query": {
"indices": {
"indices": [
"INDEX_A",
"INDEX_B"
],
"query": {
"term": {
"FIELD": "VALUE"
}
},
"no_match_query": {
"term": {
"FIELD": "VALUE"
}
}
}
}
}
TIA
Xin chào Martijn, cảm ơn bạn đã trả lời! Cách để truy vấn các chỉ số khác nhau mà tôi đã tìm ra. Vấn đề chính tôi hiện gặp phải là tôi có ** loại tài liệu khác nhau với cấu trúc khác nhau ** được lưu trữ trong các chỉ mục chết như Sách, Ô tô, v.v. Ví dụ: khách hàng.Search MyObject sẽ nằm trong trường hợp một cái gì đó chung chung hơn vì tôi muốn lấy sách, xe hơi, vv với một truy vấn. Tôi đã thử với kiểu generic nhưng không thành công. –
Neil
Cách duy nhất tôi nhận được tài liệu trở lại là bằng cách sử dụng client.Search (truy vấn).Tôi cũng đã thêm MapTypeIndices vào cài đặt kết nối (…). Bạn có thể vui lòng đưa ra một ví dụ để thực hiện điều gì đó như 'var results = Client.Search ????????????????> (s => s .Indices (new [] {"Book-index", "Car-index"}) . Kích thước (200) .MatchAll() ); ' Hoặc bạn có đề xuất phương pháp tiếp cận khác không? Đánh giá cao nỗ lực của bạn! – Neil
Cập nhật: Hiện tại tôi đang sử dụng các lớp cơ sở của Sách, Ô tô, vv nhưng nó không phải là một giải pháp sạch. 'client.Search' –
Neil