问题标签 [elastic4s]

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 回答
263 浏览

scala - elastic4s:如何为 German_phonebook 添加分析器/过滤器进行分析?

如何使用 elastic4s 将以下 German_phonebook 分析器添加到弹性搜索?

这里的核心问题是为 icu_collat​​ion 类型的German_phonebook过滤器使用哪个过滤器?

...

按照答案,我想出了这段代码:

分析器定义现在看起来像这样:

0 投票
2 回答
373 浏览

elasticsearch - Elasticsearch - 如何附加术语?

有没有办法将术语附加到值数组中?

例如,如果我的文档如下所示:

我想将“item4”和“item5”附加到它。

我必须在 2 个查询中完成吗?一个加载当前值列表,然后更新该列表?还是有更优雅的方式可以让我在一个查询中附加这些项目?

我正在尝试使用这样的 elastic4s 来做到这一点:

为了使用上面的代码片段,我需要启用 groovy 脚本,我不知道如何使用多个项目来做到这一点。

任何的想法?

0 投票
0 回答
212 浏览

java - 如何在多个并发进程中从 elasticsearch 写入和查询数据?

我正在 Scala 中编写一个简单的应用程序,它在不同的主题上收听 Kafka,当写作事件发生时,我在 ElasticSearch 中写下数据。我使用elastic4s作为 ElasticSearch Java API 的包装器。因此,监听不同的主题被实现为在 Futures 中运行的并发进程。我的应用程序中的这段代码看起来像

为了写入 ElasticSearch,我有一个帮助对象,其中包含一个ElasticClient private val client = ElasticClient.transport(uri),它连接到 ElasticSearch 并通过它写入数据。为了实现写作,我在这个对象中有以下方法:

问题是当我运行 3 个 Futures 时一切正常。但是当我添加第四个 Future 时它不起作用。特别是客户端不起作用,它只是用永远不会完成的Promise响应。一个有趣的细节:当我在具有四核处理器的计算机上运行此应用程序时,它可以与四个 Futures 一起正常工作。

0 投票
1 回答
622 浏览

scala - elastic4s:使用 rawQuery 得分保持在 1

我们将 elastic4s 用于 ElasticSearch 2.2.0。许多查询以 JSON 格式存储在磁盘上,并通过 elastic4s 驱动程序用作rawQuery 。结果中的分数在通过命令行提交的查询或 elastic4s 驱动程序之间有所不同。elastic4s 驱动程序始终为所有结果返回 1 分,而命令行执行产生两个不同的分数(针对不同的数据类型)。

elastic4s的代码:

请注意,我删除了任何内容,但rawQuery preparedQuery它并没有改变分数1。通过命令行的完整查询很长:

请注意,这几乎是用搜索查询preparedQuery替换的。$search弹性搜索 REST 客户端为匹配返回3.075806的分数。

0 投票
3 回答
580 浏览

scala - elastic4s org.elasticsearch.client.transport.NoNodeAvailableException:

我在连接到本地版本的 elasticsearch 时遇到问题。我正在做以下事情

但是得到一个

例外。如果我在 9200 / 或 9300 之间移动并不重要。据我所知,ES 已启动并正常运行。任何指针表示赞赏。

0 投票
1 回答
1143 浏览

scala - 使用 elastic4s 从原始 JSON 创建索引

我需要创建一个索引,其中包含一些上下文完成建议器映射,如(https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html)。正如我在https://github.com/sksamuel/elastic4s/issues/452中看到的,这似乎不受 DSL 支持。

因此,最好从原始 JSON 字符串创建索引(类似于原始查询)。有可能实现这一目标吗?

0 投票
1 回答
67 浏览

scala - 如何定义所有扩展具有递归类型签名的公共特征的对象类型

我写了一个方法,它返回的对象都扩展了一个共同的特征。我想将返回类型指定为具有该特征的对象。复杂之处在于该特征具有递归类型签名。

特别是,我正在使用elastic4s并查看aggregationDefinition trait。特征定义为:

我的方法的简化版本是:

复杂性在于 AggregationDefinition,它需要类型参数:

我对特征定义中的递归和交叉引用感到困惑,我不清楚类型参数应该是什么。我应该为类型参数使用什么?

0 投票
1 回答
349 浏览

scala - 将来自 elastic4s 订阅者的响应发送回 akka-stream

我目前正在构建一个将数据从 mongoDb 流式传输到 elasticsearch 的解决方案。我的目标是跟踪所有成功传输到 elasticsearch 的项目。我正在使用 akka-streams 和 elastic4s。目前流入 es 的样子是这样的

从我的来源来看是这样的:

现在一切正常,现在我正在使用第二个接收器记录例如项目计数。但我宁愿记录真正传输到elasticsearch的项目。elastic4s 订阅者提供了一个listener: ResponseListenerwithonAck(): Unit并且onFailure(): Unit我很想像这样将这些信息返回到流中

我将如何实施?我是否需要一个自定义阶段来缓冲 和 的onAck元素onFailure?或者有没有更简单的方法?

谢谢你的帮助。

0 投票
1 回答
1534 浏览

scala - Elastic4s / PlayFramework - 找不到参数可执行文件的隐式值

我正在尝试将 ElasticSearch 与 Play 2.3.7 Scala 一起使用。我已经安装了弹性搜索,添加了一个索引,并让它运行起来(使用 curl 测试)。但是,我正在努力让 elastic4s 在播放控制器中工作。

我使用简单的远程 url 创建了客户端

然后我尝试在客户端上执行。

这是在 Action 内执行的,但出现以下错误。

0 投票
1 回答
451 浏览

scala - 当结果文档缺少字段时,Elastic4s 搜索案例类示例错误

我一直在使用 Elastic4s 手册中的这个示例。在尝试检索没有在案例类中指定字段的文档之前,它工作正常。

在手册中的这个示例中,假设一个结果只有name并且缺少该location字段。它会产生这个错误:

java.util.NoSuchElementException:找不到键:位置

我正在寻找一种处理具有不同字段的搜索结果的好方法。

代码示例: