ElasticSearch NEST'i kullanarak, sorgularımdan beklenen sonuçları almamda sorun yaşıyorum. şöyle My endeks/türü düzenidir:ElasticSearch NEST Çoklu Türleri ve Tüm Alanları Ara
- tiyatro (endeks)
- olay (tipleri)
- tiyatro
- promosyon
- genel içerikler
Bu türlerin her birinin kendi alanları vardır ve Verileri dizine eklemek için NEST'in Index() yöntemini kullanıyorum. Ben dizine doğru bir şekilde oluyor doğrulayabilirsiniz:
// 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);
:
- verileri Başvuru için
görüntülemek için Head eklentisini kullanarak http://localhost:9200/theatres/_mapping
Sorgu
Şimdi, sorgu için, tüm türlerini ve dizini içindeki alanlarını aramak istiyorum. Kafa eklentisi kullanarak, sorgu oluşturmak ve beklenen sonuçları almak mümkün: o oluşturduğunu sorguyu kullanarak
, aşağıdaki Nükleer Tehlike sorgu çalıştı: Ancak
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))))));
, bu bana verir farklı sonuç. NEST, farkında olmadığım sahnelerin arkasında bir şey mi yapıyor? Yoksa bu desteklenmiyor mu?
yerine sökünüz (20) .Size (10) öneririm lazım işlevsellik aynı olmasına rağmen, bunu hata için bir değişken olarak kaldırın. Ayrıca, .DefaultField'ı kaldırabileceğine inanıyorum ve tüm alanlar aranacak. Bunu deneyebilir misin? Ben bu –
@ DanielHoffmann-Mitscherling bunu merak ediyorum ve hala 1 almalısınız hala 0 sonuç olsun, –
Yani garip! DefaultField ("_ all") ekleyebilir ve ayrıca .AllTypes() ekler misiniz? Her türüyle bir sorgu oluşturmak için NEST'i manuel olarak zorlamak bize daha fazla bilgi verebilir –