【发布时间】:2019-12-12 17:46:57
【问题描述】:
我正在使用 C# NEST 客户端来查询运行 v5.3.x 的 ES 服务器。我成功实现了 v7.x NEST 客户端,但开始遇到一些意外异常,并被告知我应该降级到 v5.x NEST 客户端。
我遇到了一些我已经能够解决的问题。
我必须删除搜索描述符中的 .TypedKeys(null)。 我必须设置 DisableDirectStreaming 我还有两个问题:
POST 数据-
*/**document/**
_search
{"query":{"bool":{"filter":[{"range":{"v_avg":{"gt":260.0}}},
{"range":{"timestamp":{"format":"yyyy-MM-dd'T'HH:mm:ss.SSS",
"gte":"2019-8-5T6:45:25.618"}}}]}},
"size":10000}
由于某种原因,“document/”在 v5.x 和 v6.x 上插入,但在 v7.x 上没有插入,这导致我的查询不返回任何数据。我怎样才能摆脱那个自动文档/添加? Document 是我将搜索查询初始化为的 NEST 记录类型的名称。 我使用“elasticClient.RequestResponseSerializer.SerializeToString(searchDescriptor)”来获取与我的查询等效的原始 json 以用于调试目的。这不适用于 v5.x。一个替代方案将不胜感激,但它看起来无论如何都包含在 API 调用中,所以我可以从那里简单地获取它。
更新: https://www.elastic.co/guide/en/elasticsearch/client/net-api/6.x/index-name-inference.html - v6 具有“当 Project 是目标 POCO 类型时使用的索引”字段,这在 v7 中不存在。 https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.x/index-name-inference.html 如何使用 v6 但端点中没有“项目”字段?
或者换句话说,我有一个默认索引为“data-*”的 v6。 如何让我的端点成为“https://server/defaultindex/_search”而不是“https://server/defaultindex/document/_search”?
提前致谢!
【问题讨论】:
-
7.x 客户端将不会与 Elasticsearch 5.3.x 兼容,因为 Elasticsearch 端的版本之间存在 API 重大更改,而这反过来又会导致客户端的重大更改。为什么要尝试使用 7.x 客户端?
-
嗨,Russ,请再次阅读我的帖子。我从 v5.3.x 服务器上的 v7.x 开始。它实际上工作得很好。然后我遇到了一些问题,被告知它们不兼容,所以我应该降级。这就是我想要做的。但我无法成功降级到上面列出的两个问题。希望能帮助您解决这两个问题。
标签: c# elasticsearch search nest