问题标签 [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.
elasticsearch - 序列化来自 Nest 客户端 ElasticSearch 6.4 的查询
在 ElasticSearch 6.0 之前,我们能够将搜索请求(SearchRequest 的对象)序列化为字符串
示例在这里也序列化来自 Nest 客户端弹性搜索 2.3 的查询
但是在已删除的 6.4 版本中,我无法准确找到使用 6.4 版本序列化查询的文档 https://github.com/elastic/elasticsearch-net
有人可以在这里帮助我吗?
elasticsearch - Elasticsearch.Net.ElasticSearch.Path 已弃用,我应该改用什么?
在ElasticSearch.Net v.5 中有一个在 ElasticSearch.Net v.6Elasticsearch.Net.RequestData.Path
中已被弃用的属性。我应该改用什么?
c# - 如何使用 .NET NEST 客户端在函数评分查询中创建过滤器
在 Elasticsearch 文档中描述了函数分数查询显示代码如下
我将此查询写入对象初始值设定项语法
如何在函数中构建过滤器?
该IScoreFunction
接口只允许ExponentialDecayFunction
, GaussDateDecayFunction
, LinearGeoDecayFunction
, FieldValueFactorFunction
, RandomScoreFunction
, WeightFunction
,ScriptScoreFunction
c# - 如何根据 Elastic Search DSL 的范围/过滤器进行优先级排序,以便可以过滤列表,首先显示可用性 > 60%,然后 <
申请人的相关性需要根据当月的可用性百分比进行排序。首先,可用性百分比超过 60% 的申请人应该来,然后可用性百分比低于 60% 的申请人应该来。
我正在尝试使用的使用 ElasticSearch.net 的 Fluent DSL 查询
或者
申请人的名单不符合逻辑。他们混在一起。
即使我尝试过滤以仅显示大于 60 的值,那也不起作用
c# - ElasticSearch .net GeoDistance 过滤器不起作用
我创建的 Kibana 开发工具查询可以 100% 工作,并返回 10 公里距离范围内的结果。它的结构是这样的:
我在 c# 中使用 NEST 创建的查询结构相同,但返回的结果来自地理距离之外
我还尝试在位置过滤器中传递一个 GeoLocation 对象。任何关于我可能做错了什么或如何调试的建议都将不胜感激。
elasticsearch - 如何获得 Elasticsearch.NET / NEST 中错误的“真正”根本原因?
我正在使用 Elasticsearch.NET 在 .NET 环境中使用 Elasticsearch 进行一些自定义错误处理/记录。给定一个IResponse
对象,我试图找到一个最佳策略来提取一个简短、简洁和有用的“根本原因”信息。我最初是这样做的,当我们特别遇到索引错误时,它非常有用:
但我最近遇到了一个查询时错误,上面给了我这个:
(省略了细节,但它有效地转储了整个查询。)
由于这不是特别有用,我花了一点时间遍历response
看看还有什么可用的。response.ServerError.Error.Reason
,例如,返回"all shards failed"
- 也不是特别有用。response.DebugInformation
比我为这个特定目的想要的要大得多,但我确实在大海捞针中找到了我一直在寻找的针:
这是完美的,为了避免将其解析出来,DebugInfomation
我还设法在这里找到了它:
所以在这一点上,我已经制定了这个策略来获得我的shortMsg
:
我对此的担忧是,假设如果第一条路径上存在某些东西,它总是比第二条“更好”,这可能是天真的。更好地理解响应结构本身可能是在这里找到最佳策略的关键。
有什么改进的建议吗?
elasticsearch - 在 Kibana 可视化中添加过滤器聚合作为 JSON 输入的正确语法(过滤特定属性值)
我正在尝试在 Kibana 可视化中针对特定属性值(作为 JSON 输入)执行最简单的过滤器,但完全没有成功。
令我惊讶的是,我找不到这样做的具体例子(现在已经搜索了几分钟)。
假设我们有一个具有以下结构的文档:
如何为所有文档添加过滤器聚合a = true
?
我尝试使用“脚本”、“查询”、“过滤器” api,但都给我解析错误。我的过滤器 json 都是有效的,我的问题是弹性期望的确切语法,但是我在那里找到并尝试过的所有示例 - 给我解析错误(在对我的索引结构进行修改之后)。
Kibana 的版本:6.4.3
这是如何实现的?
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","reason":"根映射定义有不受支持的参数:[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","reason":"解析映射失败 [_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","reason":"根映射定义有不支持的参数:[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}
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 中发生的情况。