Sử dụng Tìm kiếm Đàn hồi NEST, tôi gặp khó khăn khi nhận kết quả mong đợi từ các truy vấn của mình. bố trí index/loại của tôi là như sau:Tìm kiếm Đàn hồi NEST Tìm kiếm Nhiều Loại & Tất cả các Trường
- rạp (index)
- sự kiện (các loại)
- hát
- xúc tiến
- nội dung chung chung
Mỗi loại có các trường riêng của chúng và Tôi đang sử dụng phương thức Index() của NEST để lập chỉ mục dữ liệu. Tôi có thể xác minh rằng nó đang được lập chỉ mục đúng theo:
- Nhìn vào
http://localhost:9200/theatres/_mapping
- Sử dụng các plugin Head để xem dữ liệu
Để tham khảo, dưới đây là cấu hình khách hàng của tôi:
// TODO: Put settings in config
var node = new Uri("http://localhost:9200");
var connSettings = new ConnectionSettings(node);
connSettings.SetDefaultIndex("theatres");
connSettings.ThrowOnElasticsearchServerExceptions();
var client = new ElasticClient(connSettings);
Truy vấn
Bây giờ, đối với truy vấn, tôi muốn tìm kiếm tất cả các loại và tất cả các trường trong chỉ mục. Sử dụng các plugin Head, tôi có thể tạo ra các truy vấn và nhận được kết quả mong đợi:
Sử dụng truy vấn mà nó tạo ra, tôi đã cố gắng truy vấn NEST sau:
var query = "waukesha"; // This would be passed in
var resp = client.Search<dynamic>(s => s
.From(0)
.Take(10)
.Query(qry => qry
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.DefaultField("_all")
.Query(query))))));
Tuy nhiên, điều này mang lại cho tôi một kết quả khác nhau. NEST có làm gì đó đằng sau hậu trường mà tôi không biết? Hoặc điều này không được hỗ trợ?
tôi sẽ đề nghị .Size (10) thay vì .Take (20) chỉ để loại bỏ điều đó dưới dạng biến cho lỗi, mặc dù chức năng phải giống nhau. Ngoài ra tôi tin rằng bạn có thể loại bỏ .DefaultField và tất cả các trường sẽ được tìm kiếm. Bạn có thể thử điều đó không? Tôi tò mò về điều này –
@ DanielHoffmann-Mitscherling tôi cập nhật này và vẫn nhận được 0 kết quả, khi tôi sẽ nhận được 1. –
Rất lạ! Bạn có thể thêm lại DefaultField ("_ all") và cũng có thể thêm .AllTypes()? Thủ công buộc NEST tạo truy vấn với tất cả các loại có thể cung cấp cho chúng tôi thêm thông tin –