Elasticsearch(一)【.Net客户端介绍】

来源:互联网 发布:知乎周刊app 编辑:程序博客网 时间:2024/06/06 02:39

介绍

您已到达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上设置此方法

0 0
原创粉丝点击