问题描述
我正在尝试使用 nest 客户端来使用 Elasticsearch 实例。
然而,/_search
端点实际上是 /search
。
是否有任何可能的方法来改变客户端的行为以反映这种变化?
免责声明:我无法控制 ES 实例,也不知道中间是否有某种代理将 /_search
更改为 /search
。
提前致谢。
解决方法
/search
不是 Elasticsearch 中的 API 端点。如果不更改生成和重新编译的 API 规范,则无法更改客户端内的 API 端点。
您可以使用低级客户端的 DoRequest
和 DoRequestAsync
方法来调用
一个非标准的 API
var client = new ElasticClient();
var request = new SearchRequest<LogMessage>
{
Query = new MatchQuery
{
Field = Infer.Field<LogMessage>(f => f.Level),Query = "warning"
}
};
var response = client.LowLevel.DoRequest<SearchResponse<LogMessage>>(
Elasticsearch.Net.HttpMethod.POST,"/search",PostData.Serializable<ISearchRequest>(request)
);