介绍
您已到达Elasticsearch.Net和NEST的文档页面,Elasticsearch的两个官方.NET客户端。
为什么要两个客户?
Elasticsearch.Net是一个非常低级别,依赖自由的客户端,没有对如何构建和表示您的请求和响应的意见。它已经抽象得足够,以便所有的Elasticsearch API端点都被表示为方法,但没有太多,妨碍你如何构建你的json /请求/响应对象。它还内置,可配置/可覆盖,集群故障转移重试机制。 Elasticsearch是弹性的,为什么不是你的客户端?
NEST是一个高级客户端,具有映射所有请求和响应对象的优势,附带强类型查询DSL,它使用Elasticsearch查询DSL将1对1映射,并利用特定的.NET功能,如协变结果和POCO的自动映射。 NEST内部使用并仍然暴露低级Elasticsearch.Net客户端。
NEST更改
Elasticsearch.Net打破变革
这列出了Elasticsearch.Net中的所有二进制拆分更改。
枚举
public enum Elasticsearch.Net.Consistency Removed(break)
public enum Elasticsearch.Net.Bytes Declaration changed(Breaking)
2.x
public enum Bytes
{
B = 0,
K = 1,
M = 2,
G = 3
}
5.x
public enum Bytes
{
B = 0,
K = 1,
Kb = 2,
M = 3,
Mb = 4,
G = 5,
Gb = 6,
T = 7,
Tb = 8,
P = 9,
Pb = 10
}
public enum Elasticsearch.Net.Feature Declaration changed (Breaking)
2.x
[FlagsAttribute]
public enum Feature
{
Settings = 1,
Mappings = 2,
Warmers = 4,
Aliases = 8
}
5.x
[FlagsAttribute]
public enum Feature
{
Settings = 1,
Mappings = 2,
Aliases = 4
}
public enum Elasticsearch.Net.NodesStatsMetric Declaration changed (Breaking)
2.x
[FlagsAttribute]
public enum NodesStatsMetric
{
Breaker = 1,
Fs = 2,
Http = 4,
Indices = 8,
Jvm = 16,
Os = 32,
Process = 64,
ThreadPool = 128,
Transport = 256,
All = 512
}
5.x
[FlagsAttribute]
public enum NodesStatsMetric
{
Breaker = 1,
Fs = 2,
Http = 4,
Indices = 8,
Jvm = 16,
Os = 32,
Process = 64,
ThreadPool = 128,
Transport = 256,
Discovery = 512,
All = 1024
}
public enum Elasticsearch.Net.SearchType Declaration changed (Breaking)
2.x
public enum SearchType
{
QueryThenFetch = 0,
QueryAndFetch = 1,
DfsQueryThenFetch = 2,
DfsQueryAndFetch = 3,
Count = 4,
Scan = 5
}
5.x
public enum SearchType
{
QueryThenFetch = 0,
DfsQueryThenFetch = 1
}
Refresh不再只是一个bool
现在一个枚举也可以发送wait_for
公共方法Elasticsearch.Net.BulkRequestParameters.Refresh声明已更改
2.x: public BulkRequestParameters Refresh(bool refresh)
5.x: public BulkRequestParameters Refresh(Refresh refresh)
公共方法Elasticsearch.Net.DeleteRequestParameters.Refresh声明已更改
公共方法Elasticsearch.Net.IndexRequestParameters.Refresh声明已更改
公共方法Elasticsearch.Net.UpdateRequestParameters.Refresh声明已更改
WaitForActiveShards现在接受一个字符串
所以你可以发送所有
公共方法
Elasticsearch.Net.ClusterHealthRequestParameters.WaitForActiveShards声明已更改
2.x: public ClusterHealthRequestParameters WaitForActiveShards(long wait_for_active_shards)
5.x: public ClusterHealthRequestParameters WaitForActiveShards(string wait_for_active_shards)
可访问性更改
这些是公共的类型/方法/属性/构造函数,但没有业务是这样的
公共方法Elasticsearch.Net.RequestData..ctor可访问性已从public更改为private(Breaking)
2.x
[ObsoleteAttribute("This constructor is scheduled to become private in 5.0.0")]
public .ctor(HttpMethod method, string path, PostData<object> data, IConnectionConfigurationValues global, IRequestConfiguration local, IMemoryStreamFactory memoryStreamFactory)
5.x
private .ctor(HttpMethod method, string path, PostData<object> data, IConnectionConfigurationValues global, IRequestConfiguration local, IMemoryStreamFactory memoryStreamFactory)
public property Elasticsearch.Net.Transport <TConnectionSettings> .DateTimeProvider可见性已从公共更改为私有
2.x: public IRequestPipelineFactory PipelineProvider { get; }
5.x: private IRequestPipelineFactory PipelineProvider { get; }
重命名API相关方法
影响低,这些已经重命名匹配他们的方法名称等同
公共方法Elasticsearch.Net.ElasticLowLevelClient.CatNodeattrs <T>声明已更改
2.x: public ElasticsearchResponse<T> CatNodeattrs<T>(Func<CatNodeattrsRequestParameters, CatNodeattrsRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> CatNodeattrs<T>(Func<CatNodeAttributesRequestParameters, CatNodeAttributesRequestParameters> requestParameters)
公共方法Elasticsearch.Net.ElasticLowLevelClient.TasksCancel <T>声明已更改
2.x: public ElasticsearchResponse<T> TasksCancel<T>(string task_id, Func<TasksCancelRequestParameters, TasksCancelRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksCancel<T>(string task_id, Func<CancelTasksRequestParameters, CancelTasksRequestParameters> requestParameters)
公共方法Elasticsearch.Net.ElasticLowLevelClient.TasksCancel <T>声明已更改
2.x: public ElasticsearchResponse<T> TasksCancel<T>(Func<TasksCancelRequestParameters, TasksCancelRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksCancel<T>(Func<CancelTasksRequestParameters, CancelTasksRequestParameters> requestParameters)
公共方法Elasticsearch.Net.ElasticLowLevelClient.TasksList <T>声明已更改
2.x: public ElasticsearchResponse<T> TasksList<T>(Func<TasksListRequestParameters, TasksListRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksList<T>(Func<ListTasksRequestParameters, ListTasksRequestParameters> requestParameters)
公共方法Elasticsearch.Net.IElasticLowLevelClient.CatNodeattrs <T>声明已更改
2.x: public ElasticsearchResponse<T> CatNodeattrs<T>(Func<CatNodeattrsRequestParameters, CatNodeattrsRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> CatNodeattrs<T>(Func<CatNodeAttributesRequestParameters, CatNodeAttributesRequestParameters> requestParameters)
公共方法Elasticsearch.Net.IElasticLowLevelClient.TasksCancel<T>声明已更改
2.x: public ElasticsearchResponse<T> TasksCancel<T>(string task_id, Func<TasksCancelRequestParameters, TasksCancelRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksCancel<T>(string task_id, Func<CancelTasksRequestParameters, CancelTasksRequestParameters> requestParameters)
公共方法Elasticsearch.Net.IElasticLowLevelClient.TasksCancel<T>声明已更改
2.x: public ElasticsearchResponse<T> TasksCancel<T>(Func<TasksCancelRequestParameters, TasksCancelRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksCancel<T>(Func<CancelTasksRequestParameters, CancelTasksRequestParameters> requestParameters)
公共方法Elasticsearch.Net.IElasticLowLevelClient.TasksList<T>声明已更改
2.x: public ElasticsearchResponse<T> TasksList<T>(Func<TasksListRequestParameters, TasksListRequestParameters> requestParameters)
5.x: public ElasticsearchResponse<T> TasksList<T>(Func<ListTasksRequestParameters, ListTasksRequestParameters> requestParameters)
其余规格更新
这些都是由于Elasticsearch 5.0 rest规格更改
公共方法Elasticsearch.Net.DeleteByQueryRequestParameters.Routing声明已更改
2.x: public DeleteByQueryRequestParameters Routing(string routing)
5.x: public DeleteByQueryRequestParameters Routing(String[] routing)
公共方法Elasticsearch.Net.ReindexOnServerRequestParameters.RequestsPerSecond声明已更改
2.x: public ReindexOnServerRequestParameters RequestsPerSecond(Single requests_per_second)
5.x: public ReindexOnServerRequestParameters RequestsPerSecond(long requests_per_second)
公共方法Elasticsearch.Net.ReindexRethrottleRequestParameters.RequestsPerSecond声明已更改
2.x: public ReindexRethrottleRequestParameters RequestsPerSecond(Single requests_per_second)
5.x: public ReindexRethrottleRequestParameters RequestsPerSecond(long requests_per_second)
公共方法Elasticsearch.Net.UpdateByQueryRequestParameters.RequestsPerSecond声明已更改
2.x: public UpdateByQueryRequestParameters RequestsPerSecond(Single requests_per_second)
5.x: public UpdateByQueryRequestParameters RequestsPerSecond(long requests_per_second)
在过期后的5.x中移除
这些是在NEST 2.x中标记为已过时的,已删除的类型/属性/方法。
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Analyzer已删除
[ObsoleteAttribute("Deprecated. Specify the analyzer to use in the body of the request.")]
public AnalyzeRequestParameters Analyzer(string analyzer)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.CharFilter已删除
[ObsoleteAttribute("Deprecated. Specify the char filters to use in the body of the request.")]
public AnalyzeRequestParameters CharFilter(String[] char_filter)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.CharFilters已删除
[ObsoleteAttribute("Deprecated. Specify the char filters to use in the body of the request.")]
public AnalyzeRequestParameters CharFilters(String[] char_filters)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Field已删除
[ObsoleteAttribute("Deprecated. Specify the field to use in the body of the request.")]
public AnalyzeRequestParameters Field(string field)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Filter已删除
[ObsoleteAttribute("Deprecated. Specify the filters to use in the body of the request.")]
public AnalyzeRequestParameters Filter(String[] filter)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Filters已删除
[ObsoleteAttribute("Deprecated. Specify the filters to use in the body of the request.")]
public AnalyzeRequestParameters Filters(String[] filters)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Text已删除
[ObsoleteAttribute("Deprecated. Specify the text to use in the body of the request.")]
public AnalyzeRequestParameters Text(String[] text)
公共方法Elasticsearch.Net.AnalyzeRequestParameters.Tokenizer已删除
[ObsoleteAttribute("Deprecated. Specify the tokenizer to use in the body of the request.")]
public AnalyzeRequestParameters Tokenizer(string tokenizer)
公共方法Elasticsearch.Net.BasicAuthenticationCredentials.UserName已删除
[ObsoleteAttribute("Removed in 5.0.0. Use Username instead, note the lowercase n")]
[CLSCompliantAttribute(False)]
public string UserName { get; set; }
公共方法 Elasticsearch.Net.RequestData..ctor已删除
[ObsoleteAttribute("Removed in 5.0.0")]
public .ctor(HttpMethod method, string path, PostData<object> data, IConnectionConfigurationValues global, IMemoryStreamFactory memoryStreamFactory)
现在IReadOnlyCollection
public property Elasticsearch.Net.Error.RootCause
取消令牌
异步方法现在直接在方法签名中暴露CancellationToken,您不再需要在RequestConfiguration上设置此方法