标签: elasticsearch.net

Elasticsearch.NET 版本 7 - 如何创建索引

在 Elasticsearch.NET 6.x 中,可以使用以下IElasticClient方法创建索引:

var response = elasticClient.Create(
                    "my-index-name",
                    index =>  index .Mappings(
                        ms => ms.Map<MyDocumentType>(
                            x => x.AutoMap()
                        )
                    )
                );
Run Code Online (Sandbox Code Playgroud)

在 Elasticsearch.NET 版本 7 中删除了方法。

c# nest elasticsearch.net

9
推荐指数
1
解决办法
6902
查看次数

如何获取 Elasticsearch.NET / NEST 中错误的“真正”根本原因?

我正在使用 Elasticsearch.NET 在 .NET 环境中使用 Elasticsearch 进行一些自定义错误处理/日志记录。给定一个IResponse对象,我试图找到最佳策略来提取简短、简洁且有用的“根本原因”消息。我最初是这样做的,当我们遇到索引错误时,它非常有效:

shortMsg = response.ServerError?.Error?.RootCause?.FirstOrDefault()?.Reason;
Run Code Online (Sandbox Code Playgroud)

但我最近遇到了一个查询时错误,上面给了我这个:

"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)

(省略了详细信息,但它有效地转储了整个查询。)

由于这不是特别有用,因此我花了一点时间浏览response以查看还有什么可用的。response.ServerError.Error.Reason,例如,返回"all shards failed"- 也不是特别有用。response.DebugInformation比我想要的这个特定目的要大得多,但我确实在大海捞针中找到了我正在寻找的目标:

"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)

这是完美的,为了避免解析它,DebugInfomation我还设法在这里找到它:

"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)

所以现在我已经制定了这个策略来获得我的shortMsg

"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)

我对此的担忧是,假设如果第一个路径上存在某些东西,它总是第二个路径“更好”,这可能是天真的。更好地理解响应结构本身可能是制定最佳策略的关键。

有什么改进的建议吗?

elasticsearch nest elasticsearch.net

6
推荐指数
0
解决办法
806
查看次数

Elasticsearch.NET 版本 7 - 如何检查索引是否存在

在 Elasticsearch.NET 6.x 中,可以使用以下IElasticClient方法检查索引是否存在:

    bool exists = elasticClient.IndexExists("my-index-name").Exists;
Run Code Online (Sandbox Code Playgroud)

在 Elasticsearch.NET 版本 7 中删除了方法。

nest elasticsearch.net

3
推荐指数
1
解决办法
2061
查看次数

从 Nest 客户端 ElasticSearch 6.4 序列化查询

直到 ElasticSearch 6.0,我们都能够将搜索请求(SearchRequest 的对象)序列化为字符串

        using (System.IO.MemoryStream mStream = new System.IO.MemoryStream())
        {
            ElasticClient.Serializer.Serialize(searchRequest, mStream);
            string rawQueryText = Encoding.ASCII.GetString(mStream.ToArray());
        }
Run Code Online (Sandbox Code Playgroud)

示例也在这里序列化来自 Nest 客户端弹性搜索 2.3 的查询

但在已删除的 6.4 版本中,我无法准确找到使用 6.4 版本 https://github.com/elastic/elasticsearch-net序列化查询的文档在哪里

有人可以帮我吗?

elasticsearch elasticsearch.net

2
推荐指数
1
解决办法
1382
查看次数

标签 统计

elasticsearch.net ×4

nest ×3

elasticsearch ×2

c# ×1