问题标签 [elasticsearch.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
695 浏览

elasticsearch - 序列化来自 Nest 客户端 ElasticSearch 6.4 的查询

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

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

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

有人可以在这里帮助我吗?

0 投票
1 回答
38 浏览

elasticsearch - Elasticsearch.Net.ElasticSearch.Path 已弃用,我应该改用什么?

ElasticSearch.Net v.5 中有一个在 ElasticSearch.Net v.6Elasticsearch.Net.RequestData.Path中已被弃用的属性。我应该改用什么?

0 投票
1 回答
58 浏览

c# - ElasticSearch.net 嵌套匹配与查询不起作用

我正在使用 elasticsearch.net 库来查询 ES。面临与查找结果相关的问题。添加了显示结果到我的搜索结果的屏幕截图,使用来自 Kibana 的即时查询。

尝试使用以下代码时未检索到任何结果。

但是,当我通过添加匹配尝试使用以下代码时,都能够成功检索 10 个产品。

以下是我使用的完整代码。

请在下面的 Kibana 屏幕截图中找到上面代码中与我的搜索关键字相关的数据。

0 投票
1 回答
853 浏览

c# - 如何使用 .NET NEST 客户端在函数评分查询中创建过滤器

在 Elasticsearch 文档中描述了函数分数查询显示代码如下

我将此查询写入对象初始值设定项语法

如何在函数中构建过滤器?

IScoreFunction接口只允许ExponentialDecayFunction, GaussDateDecayFunction, LinearGeoDecayFunction, FieldValueFactorFunction, RandomScoreFunction, WeightFunction,ScriptScoreFunction

0 投票
1 回答
68 浏览

c# - 如何根据 Elastic Search DSL 的范围/过滤器进行优先级排序,以便可以过滤列表,首先显示可用性 > 60%,然后 <

申请人的相关性需要根据当月的可用性百分比进行排序。首先,可用性百分比超过 60% 的申请人应该来,然后可用性百分比低于 60% 的申请人应该来。

我正在尝试使用的使用 ElasticSearch.net 的 Fluent DSL 查询

或者

申请人的名单不符合逻辑。他们混在一起。

即使我尝试过滤以仅显示大于 60 的值,那也不起作用

0 投票
1 回答
347 浏览

c# - ElasticSearch .net GeoDistance 过滤器不起作用

我创建的 Kibana 开发工具查询可以 100% 工作,并返回 10 公里距离范围内的结果。它的结构是这样的:

我在 c# 中使用 NEST 创建的查询结构相同,但返回的结果来自地理距离之外

我还尝试在位置过滤器中传递一个 GeoLocation 对象。任何关于我可能做错了什么或如何调试的建议都将不胜感激。

0 投票
0 回答
453 浏览

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

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

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

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

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

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

所以在这一点上,我已经制定了这个策略来获得我的shortMsg

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

有什么改进的建议吗?

0 投票
1 回答
3407 浏览

elasticsearch - 在 Kibana 可视化中添加过滤器聚合作为 JSON 输入的正确语法(过滤特定属性值)

我正在尝试在 Kibana 可视化中针对特定属性值(作为 JSON 输入)执行最简单的过滤器,但完全没有成功。

令我惊讶的是,我找不到这样做的具体例子(现在已经搜索了几分钟)。

假设我们有一个具有以下结构的文档:

如何为所有文档添加过滤器聚合a = true

我尝试使用“脚本”、“查询”、“过滤器” api,但都给我解析错误。我的过滤器 json 都是有效的,我的问题是弹性期望的确切语法,但是我在那里找到并尝试过的所有示例 - 给我解析错误(在对我的索引结构进行修改之后)。

Kibana 的版本:6.4.3

这是如何实现的?

0 投票
1 回答
968 浏览

c# - 使用映射创建索引的问题

我将弹性搜索版本 7.1.0 和 NEST 6.7.0 与 Elasticsearch.Net 6.7.0 一起使用。当我试图创建一个索引时,我遇到了一个错误。

这是我的代码,我在 NEST 和 Elasticsearch.Net 6.4.0 版上使用了相同的代码,并且运行良好

这是我得到的错误

从对 PUT 的不成功的低级别调用构建的无效 NEST 响应:/local_brainbank_index

此 API 调用的审计跟踪:

  • [1] 错误响应:节点:http://localhost:9200/接受:00:00:00.2880040

    OriginalException:Elasticsearch.Net.ElasticsearchClientException:远程服务器返回错误:(400)错误请求..调用:状态

代码 400 来自:PUT /local_brainbank_index。ServerError:类型:mapper_parsing_exception 原因:“无法解析映射 [_doc]:根映射定义具有不受支持的参数:[searchdocument : {properties={sourceId={type=integer}, sourceType={type=text, fields={keyword= {ignore_above=256, type=keyword}}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=text, fields={keyword={ignore_above =256, type=keyword}}}, imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256 , type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type =keyword}}}, uRL={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]” (400) 错误请求。在 System.Net.HttpWebRequest.GetResponse() 在 Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) --- 内部异常堆栈跟踪结束 ---

要求:

回复:

{"error":{"root_cause":[{"type":"mapper_parsing_exception","re​​ason":"根映射定义有不受支持的参数:[searchdocument : {properties={sourceId={type=integer}, sourceType={ type=text, fields={keyword={ignore_above=256, type=keyword}}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=文本,字段={keyword={ignore_above=256,type=keyword}}},imageURL={type=text,fields={keyword={ignore_above=256,type=keyword}}},id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields= {keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}],"type":"mapper_parsing_exception","re​​ason":"解析映射失败 [_doc]: 根映射定义有不受支持的参数: [searchdocument : {properties={sourceId={type=integer}, sourceType={type=text, fields={keyword ={ignore_above=256, type=keyword}}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=text, fields={keyword={ ignore_above=256, type=keyword}}}, imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above= 256, type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]","caused_by":{"type":"mapper_parsing_exception","re​​ason":"根映射定义有不支持的参数:[searchdocument : {properties={sourceId={type=integer}, sourceType={type=text, fields={keyword={ignore_above=256, type=keyword }}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=text, fields={keyword={ignore_above=256, type=keyword}} }, imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL= {type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}},"status":400}根映射定义具有不受支持的参数:[searchdocument : {properties={sourceId={type=integer}, sourceType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, authorName={type =text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=text, fields={keyword={ignore_above=256, type=keyword}}}, imageURL={type=text , fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields ={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={关键字={ignore_above=256, type=keyword}}}}}]"}},"status":400}根映射定义具有不受支持的参数:[searchdocument : {properties={sourceId={type=integer}, sourceType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, authorName={type =text, fields={keyword={ignore_above=256, type=keyword}}}, subject={type=text, fields={keyword={ignore_above=256, type=keyword}}}, imageURL={type=text , fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields ={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={关键字={ignore_above=256, type=keyword}}}}}]"}},"status":400}sourceType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject= {type=text, fields={keyword={ignore_above=256, type=keyword}}}, imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type =text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text , fields={keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}},"状态“:400}sourceType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, authorName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, subject= {type=text, fields={keyword={ignore_above=256, type=keyword}}}, imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type =text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName={type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text , fields={keyword={ignore_above=256, type=keyword}}}, uRL={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}},"状态“:400}imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName= {type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL={type =text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}},"status":400}imageURL={type=text, fields={keyword={ignore_above=256, type=keyword}}}, id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, sourceName= {type=text, fields={keyword={ignore_above=256, type=keyword}}}, body={type=text, fields={keyword={ignore_above=256, type=keyword}}}, uRL={type =text, fields={keyword={ignore_above=256, type=keyword}}}}}]"}},"status":400}

0 投票
1 回答
1172 浏览

elasticsearch - ElasticSearch.Net 无法识别 ElasticSearch 返回的时间戳

我正在尝试从包含时间戳的 kibana_sample_data_flights 索引中获取一组数据。运行查询时,ElasticSearch 正确识别它并返回结果,但它崩溃了

无效的日期时间格式。价值:2019-06-03T

Elasticsearch.Net.Utf8Json.Formatters.ISO8601DateTimeFormatter.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)

第一次,我认为是我的对象被错误地索引并简单地排除了结果,但我在另一个条目上得到了同样的错误。使用 Kibana 搜索,它可以工作,时间戳为2019 年 6 月 2 日 @ 20:00:00.000,这很有意义,因为我在 UTC-5 区域。

如何让 NEST / ElasticSearch.net 正确识别日期?

--Edit 1:根据要求提供弹性版本和示例代码。

我正在使用 NEST 和 ElasticSearch.Net v7.0.0。ElasticSearch 版本请求返回

如果它可以帮助,这里是程序

有问题的结果(在我的安装上)是 548

--- 编辑 2:基于@Rob 命题的更简单的代码示例。以同样的问题结束。我添加了 try/catch 以便能够中断错误,然后查看 Fiddler 中发生的情况。