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

介绍

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值