Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest_Elasticsearch.net - Fatal编程技术网 elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?,elasticsearch,nest,elasticsearch.net,elasticsearch,Nest,Elasticsearch.net" /> elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?,elasticsearch,nest,elasticsearch.net,elasticsearch,Nest,Elasticsearch.net" />

elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?

elasticsearch 是否必须为我打算使用ElasticSearch搜索的所有索引创建POCO对象?,elasticsearch,nest,elasticsearch.net,elasticsearch,Nest,Elasticsearch.net,我从ElasticSearch.NET开始(首先尝试) 一个非常基本的问题:我看到的所有搜索API方法(搜索、获取等)都需要指定.NET类型 难道没有办法指定一个索引名,以便API自动推断响应类型吗?换句话说,是否必须为我们要搜索的所有索引创建POCO对象?(我从文档中了解到ElasticSearch可以使用第一个文档的结构从索引中推断文档类型…) 难道没有办法指定一个索引名,以便API自动推断响应类型吗 目前还没有。我们之前已经讨论过基于索引模式执行类似操作,这将有助于在将来完全删除类型时支持

我从ElasticSearch.NET开始(首先尝试)

一个非常基本的问题:我看到的所有搜索API方法(搜索、获取等)都需要指定.NET类型

难道没有办法指定一个索引名,以便API自动推断响应类型吗?换句话说,是否必须为我们要搜索的所有索引创建POCO对象?(我从文档中了解到ElasticSearch可以使用第一个文档的结构从索引中推断文档类型…)

难道没有办法指定一个索引名,以便API自动推断响应类型吗

目前还没有。我们之前已经讨论过基于索引模式执行类似操作,这将有助于在将来完全删除类型时支持多个索引的协变响应

换句话说,是否必须为我们要搜索的所有索引创建POCO对象

不,这不是强制性的。您可以在
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,如果您有时间,您可以看看吗?