【发布时间】:2017-03-20 16:09:02
【问题描述】:
我正在学习使用 ElasticSearch 和 Nest 作为 .Net 客户端。在索引数据时,我没有定义的模型(类型映射)来写入索引,我依靠 ElasticSearch 为我创建它
创建客户端
var settings = new ConnectionSettings(_config.Uri);
settings.DefaultIndex(_config.defaultIndexName);
_client = new ElasticClient(settings);
按类型信息索引数据
public void Index(object data)
{
var response = _client.Index(data, d => d.Type(data.GetType().Name));
if (!response.IsValid)
{
throw new InvalidOperationException(response.DebugInformation);
}
}
如果数据类型是带有一些属性的Project类
class Project
{
int Id {get; set;}
string Name {get; set;}
}
如何查询上述索引数据。请记住,索引部分和搜索/查询部分是系统的完全隔离的部分,它们彼此不知道,所以在搜索时,我能得到的最大值是被查询的“项目”类型的名称,但是不是其内部字段详细信息。那么,我如何在 ElasticSearch 中运行搜索查询,因为它的流畅 API 需要像这样
_client.Search<Project>(...)
但我想要一些通用的东西,比如
_client.Search('project', ...)
谢谢
【问题讨论】:
标签: .net elasticsearch nest elasticsearch-net