与使用NEST提供的语法相比,使用纯JSON编写某些(高级)请求更容易。
CreatePostAsync
界面中有一个IElasticLowLevelClient
,但专门使用了Index
API。
我不想直接使用HttpClient
,因为那样我就缺少maximum retries等功能。
是否可以使用NEST / Elasticsearch.Net客户端向Elasticsearch(GET
,POST
等)发出任何请求?
答案 0 :(得分:1)
如果要发出任何请求,则可以在低级客户端上使用<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayouts">
<shared>
<config />
</shared>
</component>
<component name="CMakeSettings">
<configuratio
DoRequest/DoRequestAsync
还在var lowLevelClient = new ElasticLowLevelClient();
var stringResponse = lowLevelClient.DoRequest<StringResponse>(
HttpMethod.POST,
"_search",
PostData.Serializable(new
{
query = new { match_all = new { } }
}));
属性中的高级客户端NEST上暴露
.LowLevel
答案 1 :(得分:0)
如果您使用的是NEST,则可以使用Raw
查询。 https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/raw-query-usage.html
允许以JSON字符串表示的查询传递给NEST的 流利的API或对象初始化程序语法。这在以下情况下很有用 将查询DSL中表示的查询移植到NEST。
您应该能够执行以下操作:
query.Raw(yourJsonQueryString)
编辑:
如果您想使用_reindex
,则可以使用reindex API。
var reindexResponse = client.ReindexOnServer(r => r
.Source(s => s
.Index("old-index")
)
.Destination(d => d
.Index("new-index")
)
.WaitForCompletion(true)
);