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 KeepAlive
-
在 TCP 连接上设置 keep-alive 选项。
对于桌面 CLR,设置
ServicePointManager
.SetTcpKeepAlive
。 -
启用 TCP 统计信息
- 启用在发出请求时收集有关 TCP 连接的统计信息。
-
全局标头
- 尝试为每个请求发送这些标头。
-
全局查询字符串参数
- 自动将这些查询字符串参数附加到每个请求。
-
最大死节点超时
- 允许将节点标记为死机的最长时间。
-
最大重试次数
- 当发生可重试的异常或返回状态代码时,这将控制我们应该重试调用 Elasticsearch 的最大次数。
-
最大重试超时
- 限制总运行时(包括重试),与
RequestTimeout
分开。未指定时,默认为RequestTimeout
,其本身默认为 60 秒。 -
内存流工厂
- 提供内存流工厂。
-
节点谓词
- 注册一个谓词以选择要在其上执行 API 调用的节点。请注意,嗅探请求会忽略此谓词,并始终在所有节点上执行。当使用支持节点重新播种的
IConnectionPool
实现时,这将默认为从常规 API 调用中省略仅主节点。当使用静态或单节点连接池时,假定您实例化客户端的节点列表应按字面意思使用。 -
请求完成时
- 允许您在每次 API 调用返回时注册回调。
-
请求数据创建时
- 在为请求创建
RequestData
时要运行的操作。 -
Ping 超时
- 用于 ping 请求的超时时间(以毫秒为单位),用于确定节点是否处于活动状态。
-
格式化 JSON
-
向序列化程序和产品提供提示,以生成格式良好、未缩小的 JSON。
注意:这并不能保证您始终会获得格式化的 JSON。
-
代理
- 如果您的连接必须通过代理,请使用此方法指定代理 URL。
-
请求超时
- 每个 Elasticsearch 请求的超时时间(以毫秒为单位)。
-
服务器证书验证回调
- 为每个请求注册
ServerCertificateValidationCallback
。 -
跳过状态代码的反序列化
- 将客户端配置为跳过某些状态代码的反序列化,例如,您在返回意外 JSON 格式的代理后面运行 Elasticsearch。
-
嗅探生命周期
- 当集群状态信息早于指定的时间跨度时,强制对集群进行新的嗅探。
-
连接故障时嗅探
- 每次连接断开时,强制对集群状态进行新的嗅探。
-
启动时嗅探
- 在启动时立即嗅探集群状态。
-
抛出异常
-
不要在 response.
IsValid
上进行类似 c/go 的错误检查,而是在调用导致客户端或 Elasticsearch 服务器上出现异常时在客户端上抛出异常(除非SuccessOrKnownError
为 false)。此类异常的原因可能是搜索解析器错误、索引丢失异常等。
-
分块传输编码
- 请求是否应使用分块传输编码发送。
-
用户代理
- 随请求一起发送的用户代理字符串。对于调试目的,了解向 Elasticsearch 发起请求的客户端和框架版本很有用。
ElasticsearchClient 的 ElasticsearchClientSettings编辑
以下示例演示了如何使用客户端设置配置选项。
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);