问题标签 [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 投票
0 回答
169 浏览

c# - 如何修复 ElasticSearch 索引中无意重复的值?

我最近继承了我们的应用程序使用的一些搜索代码的所有权,并且正在清理最后一位开发人员的一些更改。当我开始使用 PostMan 挖掘索引结构时,我们在尝试查询排序的文档列表时遇到了问题。我遇到了一些事情,从我们的索引结构的最后一个版本更改为更改后的新版本。保存我们动态生成的值的树结构发生了变化,现在两次包含相同的两个标题。这是我的意思的一个例子:

原始结构:

和新结构,唯一的区别是重复值:

我相信当我们尝试获取排序列表时,这些标题是导致问题的原因。当我发送查询以对字段 f_5 进行排序时,从 NEST 返回的错误如下。

我们用来查询的代码没有改变,之前运行得很好。我相信添加的索引树对象是导致客户端无法找到有效映射的原因。

到目前为止,我已经尝试修改对 NEST 的 .CreateIndex() 方法的调用,在该方法中,我们使用 .AutoMap 从类 SearchDocument.cs 中提取有效的文档信息。我还尝试修改 SearchDocument 类本身,因为这是最近发生更改的地方,但没有任何改变。

CreateIndex 中的调用使用以下方法完成:

同时,SearchDocument.cs 类使用以下方法填充 AutoMap 使用的成员以生成值结构。我们有 2 个:保存字符串的 Values 和保存小数的 ValuesAsNumber。最近的更改是添加此 ValuesAsNumber 属性并将其添加到索引中。

这在 SearchDocument 类构造函数中调用,以在我们实例化类时填充属性。

有人对寻找这些额外索引对象的创建位置有任何建议吗?我一直想不通。

0 投票
1 回答
43 浏览

elasticsearch - ElasticSearch.net 附件搜索数组正在返回带有搜索结果的所有附件如何仅检索命中

以上是我的索引结构,其中 Ingest-Pipeline 数据已正确编入索引,但是当尝试搜索附件内容时,它会返回带有所有附件的空洞附件对象以及实际搜索附件。在结果中我只想要搜索结果的附件

以下是我的查询

0 投票
0 回答
266 浏览

elasticsearch - C# - 用于原始 Json 查询的 ElasticSearch 低级搜索 API

我将 ElasticSearch v6.4 与 Nest(v.6.4.2) 和 ElasticSearch.Net(v.6.4.2) 库一起使用。我正在尝试将 Search API 与我的 Raw Json 查询一起使用。

这是我的 JSON 查询模板:

首先,当我将此查询与 .Raw() 一起使用时,它会返回无效低级调用的错误。

其次,当我使用以下函数获取结果时:

我收到以下错误: The type 'myClass' cannot be used as type parameter 'TResponse' in the generic type or method IElasticLowLevelClient.Search<TResponse>(PostData, SearchRequestParameters). There is no implicit reference conversion from 'myClass' to 'Elasticsearch.Net.IElasticsearchResponse'

我被困在这个问题上很长一段时间了,还没有找到任何解决方案。如何使用原始 JSON 查询与 ElasticSearch.Net 函数一起使用它是嵌套函数还是低级函数?请帮忙。提前致谢!!!

0 投票
1 回答
38 浏览

json - 无法反序列化 JSON 数组 - ElasticSearch.Net/NEST 7.6.1

我正在将一个 Visual Basic 项目从 Elasticsearch.Net 5.3.1 和 NEST 5.3.1 升级到 Elasticsearch.Net 7.6.1 和 NEST 7.6.1。我收到“无法反序列化当前 JSON 数组”错误,代码如下。版本 7.6.1 需要更改哪些内容?

我的 IndexFile 组件是:

0 投票
1 回答
94 浏览

elasticsearch - 有什么方法可以查看为什么我的 v7.6 Elasticsearch 映射不起作用并默认为基本映射?

我正在将我的 Elasticsearch 项目从 v6.6 升级到 v7.6.2。我使用 Elasticsearch.NET 和 NEST 来创建我的索引,包括映射、设置,并将我的数据从我的 SQL 数据库中提取到 Elasticsearch 中。

在 v6.6 中一切正常,但是当我升级到 v7.6.2 时,它不再接受我的自定义映射和设置。我指的是我的嵌套对象、我的自定义分析器等。数据确实被摄取,但它默认为默认映射(其中大部分都是关键字或简单数据类型)。

当您的映射或 POCO 中存在语法错误时,通常会发生这种类型的行为。这不是我的情况,我不认为。

v7.x 中是否有一些我可能错过的重大变化?我已经相当广泛地阅读了文档。

为了举例说明我的映射应该是什么样子,这里有一段摘录(来自我的 v6.6 集群)。

...注意“产品”对象之类的类型:嵌套...

这是它在 v7.6.2 中显示为默认版本的内容...

...注意诸如“产品”对象未嵌套,大量“关键字”类型,没有自定义分析器等...

您可能会注意到,v6.6 版本更详细,包含我的嵌套对象等。但我的 v7.6.2 版本包含基本的默认结构。

这里一定有问题,但我不知道是什么。

是否有一些我可以启用的调试日志记录级别会告诉我为什么它“失败”?

更新 所以我在这里放了一个稍微简略的版本来说明我如何映射我的对象和设置。希望这有助于理解这个问题。

我使用了两个对象,一个名为Store24的对象映射自 SQL 返回的数据,另一个对象名为Product,它创建 Elasticsearch 映射。

0 投票
1 回答
437 浏览

docker - ElasticSearch、ElasticSearch.Net 和 docker 组合错误无法分配请求的地址站点

我正在尝试使用 .Net 核心 Web 应用程序、.Net 核心 API 和 ElasticSearch 创建一个示例应用程序。每个都在自己的 docker 容器中。我无法让 API 与 ElasticSearch docker 容器通信。

这是我的 docker-compose 文件:

我使用的 API 代码是:

我得到的错误是“无法分配请求的地址站点”。

我可以在 cmd 中使用以下命令点击 ElasticSearch:

我究竟做错了什么?

0 投票
2 回答
501 浏览

c# - Elasticsearch 无法搜索字符串字段

我正在尝试使用 NEST 根据用户的输入动态创建搜索查询。我想在带有 Term 的过滤器中添加多个过滤器,但无法搜索字符串字段,我找不到任何解决方案。

例如代码是,此代码尝试搜索字符串字段,但它不起作用

另一个简单的搜索是使用整数字段,它正在成功

但; 如果我使用 Match 关键字搜索字符串字段上的数据,则再次搜索成功

问题是,如何使用 Match 查询方法提供多个搜索条件,或者如何通过弹性上的 Term 查询方法搜索字符串字段

0 投票
0 回答
160 浏览

c# - Elasticsearch.NET 7 和 Nest 7 - 每 1 小时丢失一次连接

我有一个 .NET Core 应用程序,它使用 ElasticSearch.NET 7 和 Nest 7 将批量数据发送到 ElasticSearch 7。

该应用程序在 docker 容器中运行,并且可以完美运行大约 1 小时。然后我们看到一条错误消息,应用程序停止工作。

我收到的错误是 SniffFailure。重试与 ES 的连接,但大多以“MaxTimeOutReached”结束。

看起来 - 出于某种原因 - 与 ES 的连接会定期断开。我们目前使用的“快速修复”解决方案是在出错时重新启动 docker 容器,但我们想解决这个问题。

正如您在下面的日志中看到的那样:我能够将文档发送到 ES,然后在某些时候我收到此错误。主要是在运行我的应用程序 1 小时之后。

任何人都有类似的问题或解决(或调试)此问题的任何建议?目前还不清楚为什么我们会失去与 ES 的联系。

谢谢

0 投票
0 回答
190 浏览

elasticsearch - 弹性搜索 - 无法在单个文档字段中索引大文件内容

我在弹性搜索中创建了一个索引。并尝试在文档字段中添加大文件内容(700MB)。我们知道,elasticsearch 将支持最大 2GB 的文档可以被索引。但是它抛出ArgumentOutOfRangeException并且消息说“字符太多。结果字节数大于可以作为int返回的字节数。(参数'charCount')”。在向弹性服务器发送请求之前(在构建发布数据时)会引发此异常。

查找使用的代码示例:

它的最大工作量为 600MB。

任何人都建议如何解决此问题。

0 投票
1 回答
51 浏览

c# - ElasticSearch NEST - FieldValueFactorFunction 得分函数输出无效的 json 查询

让我先说一下我是 ElasticSearch 和 NEST 的新手,可能做错了什么。这是使用 NEST 7.6.2。
我正在按照文档使用对象初始化器语法创建一个field_value_factor包含过滤器和权重的得分函数,即:

但是,在运行时,它似乎在查询本身中输出了无效的 json 格式:

失败并出现错误field_value_factor query does not support [value]。我确实知道我要模拟的有效函数语法如下:

这是 NEST/Elasticsearch.net 中的错误吗?我的语法不正确吗?有没有其他方法可以做我想做的事情?