![](/img/trans.png)
[英]C# NEST ElasticSearch search and highlight all fields in all types
[英]ElasticSearch NEST Search Multiple Types & All Fields
使用ElasticSearch NEST,我無法從查詢中獲得預期的結果。 我的索引/類型布局如下:
每種類型都有自己的字段,我使用NEST的Index()方法來索引數據。 我可以通過以下方式驗證它是否正確編入索引:
http://localhost:9200/theatres/_mapping
供參考,這是我的客戶端配置:
// 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);
查詢
現在,對於查詢,我想搜索索引中的所有類型和所有字段。 使用Head插件,我能夠生成查詢並獲得預期的結果:
使用它生成的查詢,我嘗試了以下NEST查詢:
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))))));
但是,這給了我不同的結果。 NEST是否在幕后做了我不知道的事情? 或者這不受支持?
您的查詢丟失.AllTypes()
您還可以使用.Types("type1", "type1")
指定多種類型
所以:
var query = "waukesha"; // This would be passed in
var resp = client.Search<dynamic>(s => s
.AllTypes()
.From(0)
.Take(10)
.Query(qry => qry
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.DefaultField("_all")
.Query(query))))));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.