ElasticsearchClientSettings 的选项
编辑ElasticsearchClientSettings 的选项
编辑以下是 ElasticsearchClientSettings
上可用连接配置选项的列表。
-
身份验证
-
一个
IAuthenticationHeader
的实现,描述了用于向产品进行身份验证的 HTTP 头。`BasicAuthentication` for basic authentication
`ApiKey` for simple secret token
`Base64ApiKey` for Elastic Cloud style encoded api keys
-
客户端证书
- 使用以下证书对所有 HTTP 请求进行身份验证。您也可以使用
ClientCertificates
在单个请求上设置它们。 -
客户端证书
- 使用以下证书对所有 HTTP 请求进行身份验证。您也可以使用
ClientCertificates
在单个请求上设置它们。 -
连接限制
-
限制可以打开到端点的并发连接数。默认为 80(参见
DefaultConnectionLimit
)。对于桌面 CLR,此设置应用于创建
ServicePoint
对象时ServicePointManager
对象上的DefaultConnectionLimit
属性,影响默认的IConnection
实现。对于 Core CLR,此设置应用于默认
IConnection
实现内部HttpClient
使用的HttpClientHandler
实例上的MaxConnectionsPerServer
属性。 -
失效超时
- 将失效节点移出轮换的时间(这将乘以它们失效的次数)。
-
默认禁用 ID 推断
-
禁用给定 CLR 类型自动 ID 推断。
默认情况下,客户端将使用 CLR 类型上名为
Id
的属性的值作为发送到 Elasticsearch 的_id
。添加类型将禁用该 CLR 类型此行为。如果应为所有 CLR 类型禁用Id
推断,请使用DefaultDisableIdInference
。 -
默认字段名推断器
-
指定如何从 CLR 属性名称推断字段名称。
默认情况下,客户端将属性名称转换为驼峰式大小写。例如,CLR 属性
EmailAddress
将被推断为 Elasticsearch 文档字段名称“emailAddress”。 -
默认索引
- 当未显式指定索引且未为请求指定的给定 CLR 类型指定默认索引时,使用的默认索引。
-
给定类型的默认映射
- 指定如何为给定 CLR 类型推断映射。映射可以推断给定 CLR 类型的索引、ID 和关系名称,以及控制 CLR 属性的序列化行为。
-
禁用自动代理检测
- 禁用 webrequest 上的代理检测,在某些情况下,这可能会加快应用程序域进行的第一个连接的速度,而在其他情况下,它实际上会增加第一个连接的时间。没有万能的解决方案!谨慎使用!
-
禁用直接流式传输
- 设置为 true 时,将禁用直接对请求和响应流进行(反)序列化,并返回原始请求和响应的字节数组副本。默认为 false。
-
禁用 Ping
- 这表示我们不想向未知/先前失效的节点发送初始 Ping,而是直接发送调用。
-
DNS 刷新超时
- 连接的 DNS 刷新超时。默认为 5 分钟。
-
启用调试模式
- 打开有助于调试的设置,例如
DisableDirectStreaming()
和PrettyJson()
,以便可以检查原始请求和响应 JSON。它还始终要求服务器在错误时提供完整的堆栈跟踪。 -
启用 HTTP 压缩
- 启用 gzip 压缩的请求和响应。
-
启用 HTTP 管道
- 是否启用 HTTP 管道。默认值为
true
。 -
启用 TCP 保活
-
在 TCP 连接上设置保活选项。
对于桌面 CLR,设置
ServicePointManager
.SetTcpKeepAlive
。 -
启用 TCP 统计信息
- 在发出请求时启用有关 TCP 连接的统计信息收集。
-
全局头
- 尝试为每个请求发送这些头。
-
全局查询字符串参数
- 自动将这些查询字符串参数附加到每个请求。
-
最大失效超时
- 节点被标记为失效的最大时间量。
-
最大重试次数
- 当发生可重试异常或返回状态代码时,这将控制我们应重试对 Elasticsearch 的调用的最大次数。
-
最大重试超时
- 限制包括重试在内的总运行时间,与
RequestTimeout
分开。当未指定时,默认为RequestTimeout
,其本身默认为 60 秒。 -
内存流工厂
- 提供内存流工厂。
-
节点谓词
- 注册一个谓词来选择要执行 API 调用的节点。请注意,嗅探请求会忽略此谓词,并且始终在所有节点上执行。当使用支持节点重新播种的
IConnectionPool
实现时,这将默认为从常规 API 调用中省略仅主节点。当使用静态或单节点连接池时,假设您初始化客户端的节点列表应逐字采用。 -
请求完成后
- 允许您在每次返回 API 调用时注册回调。
-
请求数据创建后
- 在创建请求的
RequestData
后运行的操作。 -
Ping 超时
- 用于 Ping 请求(用于确定节点是否存活)的超时时间(毫秒)。
-
格式化 JSON
-
向序列化程序和产品提供提示,以生成格式良好的非最小化 JSON。
注意:这不能保证您始终获得格式化的 JSON。
-
代理
- 如果您的连接必须通过代理,请使用此方法指定代理 URL。
-
请求超时
- 每个请求到 Elasticsearch 的超时时间(毫秒)。
-
服务器证书验证回调
- 为每个请求注册
ServerCertificateValidationCallback
。 -
跳过特定状态码的反序列化
- 配置客户端跳过某些状态码的反序列化,例如,您在代理后面运行 Elasticsearch,该代理返回意外的 JSON 格式。
-
嗅探生命周期
- 当集群状态信息比指定的时间跨度旧时,强制对集群进行新的嗅探。
-
连接故障时嗅探
- 每次连接断开时,强制对集群状态进行新的嗅探。
-
启动时嗅探
- 在启动时立即嗅探集群状态。
-
抛出异常
-
而不是在响应上遵循类似 c/go 的错误检查。
IsValid
在客户端上抛出一个异常(除非SuccessOrKnownError
为 false),当调用导致客户端或 Elasticsearch 服务器上的异常时。此类异常的原因可能是搜索解析器错误、索引丢失异常等。
-
分块传输编码
- 请求是否应使用分块传输编码发送。
-
用户代理
- 要与请求一起发送的用户代理字符串。对于调试目的很有用,可以了解向 Elasticsearch 发起请求的客户端和框架版本。
ElasticsearchClientSettings 与 ElasticsearchClient
编辑这是一个使用客户端演示设置配置选项的示例。
var settings= new ElasticsearchClientSettings() .DefaultMappingFor<Project>(i => i .IndexName("my-projects") .IdProperty(p => p.Name) ) .EnableDebugMode() .PrettyJson() .RequestTimeout(TimeSpan.FromMinutes(2)); var client = new ElasticsearchClient(settings);