elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?
我从ElasticSearch.NET开始(首先尝试) 一个非常基本的问题:我看到的所有搜索API方法(搜索、获取等)都需要指定.NET类型 难道没有办法指定一个索引名,以便API自动推断响应类型吗?换句话说,是否必须为我们要搜索的所有索引创建POCO对象?(我从文档中了解到ElasticSearch可以使用第一个文档的结构从索引中推断文档类型…) 难道没有办法指定一个索引名,以便API自动推断响应类型吗 目前还没有。我们之前已经讨论过基于索引模式执行类似操作,这将有助于在将来完全删除类型时支持多个索引的协变响应 换句话说,是否必须为我们要搜索的所有索引创建POCO对象 不,这不是强制性的。您可以在elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?,elasticsearch,nest,elasticsearch.net,elasticsearch,Nest,Elasticsearch.net,我从ElasticSearch.NET开始(首先尝试) 一个非常基本的问题:我看到的所有搜索API方法(搜索、获取等)都需要指定.NET类型 难道没有办法指定一个索引名,以便API自动推断响应类型吗?换句话说,是否必须为我们要搜索的所有索引创建POCO对象?(我从文档中了解到ElasticSearch可以使用第一个文档的结构从索引中推断文档类型…) 难道没有办法指定一个索引名,以便API自动推断响应类型吗 目前还没有。我们之前已经讨论过基于索引模式执行类似操作,这将有助于在将来完全删除类型时支持
IElasticClient.Search
中指定所需的t文档的任何类型,该类型将用于
确定要反序列化每个源文件的类型
通过文档字段到POCO属性的映射,提供对文档字段的强类型访问
我相信用Nest的高级包装器,答案是否定的。似乎这就是它的全部目的:提供一个强类型包装器来与数据库交互。不过,使用低级api时,不需要提供POCO.net目标类型。我对Nest有一些经验,根据我的记忆(我现在不在我的计算机旁),您必须声明一个POCO类,以便了解从请求中得到的字段。换句话说,匿名方法(Nest使用的)在创建Json时会知道要调用哪些字段。当你声明一个请求时,它使用的是泛型类型——虽然你可以使用泛型类型,但我认为你无法像这样确定你将返回哪些字段——如果不太清楚,请写信给我,我稍后会更好地解释(:@Green:谢谢你花时间在我所有的弹性搜索帖子中添加一行:)谢谢你的帮助。我没有从你的回复中得到的是,你说这不是强制性的,但我仍然必须定义TDocuments才能执行搜索。为什么不强制创建POCO对象?此TDocument不是映射文档类型的我的POCO对象吗?它是一个通用方法,因此仍然需要为TDocument
提供一个类型,但您不需要为此创建特定的POCO(尽管我建议您使用NEST)。例如,您可以使用对象
或动态
,或者如果从NEST.JsonNetSerializer
包中连接JsonNetSerializer
,JObject
。Russ,如果您有时间,您可以看看吗?