【问题标题】:Is it possible to use ElasticSearch.Net or Nest for dynamic response是否可以使用 ElasticSearch.Net 或 Nest 进行动态响应
【发布时间】:2018-11-26 13:54:14
【问题描述】:
有没有没有泛型的client.Read(...)?我没有找到,Nest nor ElasticSearch.Net 也没有。
版本 1.5 有一个 IDocument 可能会解决我的问题,但我无法将该版本与 Elasticsearch5.5 一起使用。
ElasticSearch.Net 和 Nest 的所有示例(版本 5 和 6)都要求我在编译时知道响应格式为通用格式。例如。 Read<Customer>(...)
我的问题是我们不知道数据库的格式,我们也不知道输出的格式;但它应该都是可配置的。
【问题讨论】:
标签:
elasticsearch
nest
elasticsearch-5
elasticsearch-net
【解决方案2】:
(回答我自己的问题感觉很奇怪,但我想显示生成的代码以供将来参考。)
var settings = new ConnectionSettings(new Uri(@"http://localnhost:9200"))
.DefaultIndex("myindex");
var client = new ElasticClient(settings);
var res = client.Search<dynamic>(s => s
.AllTypes());
var rows = res.Documents;
Assert.IsTrue(rows.Count >= 1);
dynamic row = res.Documents.First();
Assert.AreEqual("50.7031526", row.POSITION.lat.ToString()); // It is case sensitive.
Assert.AreEqual(50.7031526, (double)row.POSITION.lat); // Convert to type explicitly.