问题标签 [elastisch]

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

clojure - Clojure 弹性搜索 API Elastisch 不返回结果或文档

我正在尝试 clojure 弹性搜索 API Elastisch

我正在关注文档中给出的演示代码,我正在为以下代码获取文档/索引创建的输出

我得到的第一个函数的输出为:

从输出中,我相信该文档已正确编入索引

问题是第二个和第三个函数返回:

nil分别。

我在这里想念什么?

PS:我是clojure和弹性搜索的新手

0 投票
1 回答
261 浏览

clojure - 如何使用 Elastisch 维护到不同 ElasticSearch 主机的两个连接?

我正在使用Elastisch,并且该rest/connect函数返回一个端点,但是在调用其他函数时我看不到如何重用该端点。我需要将一些文档从一个索引传输到不同主机上的另一个索引,在第一个索引上使用滚动,在第二个索引上使用批量索引。

0 投票
1 回答
234 浏览

elasticsearch - “此类型不支持第 n 个”异常设置 Elastisch 连接

我正在尝试通过 [Elastisch 教程] 在 VM 上运行的 ElasticSearch 实例中创建一些测试数据。

我正在运行此代码:

当我尝试使用 emacs 中的 Cider 或 Leiningen repl 执行命名空间中的代码时,我看到以下异常:

如果我需要将 Elastisch 命名空间放入 repl 并运行类似以下内容,则它可以正常工作:

有什么想法我在这里想念的吗?

0 投票
2 回答
693 浏览

elasticsearch - 如何使用 Elastisch 连接到多个 ElasticSearch 主机?

目前我连接到 ElasticSearch 集群如下:

但我担心可用性,所以计划运行一个 ElasticSearch 集群。

如何修改我的 Elastisch 代码以连接到集群(这样如果一个节点不可用,我可以回退到另一个节点)?默认情况下会这样做吗?ElasticSearch java rest 客户端似乎提供了此功能,Elastisch 也提供此功能吗?

0 投票
0 回答
236 浏览

amazon-web-services - 为什么 AWS 会突然停止接受我对 ElasticSearch 的写入(放置)?

我们需要将 MySQL 数据库中的 200 万条记录非规范化到 ElasticSearch。我们的开发人员在 AWS 上设置了 ElasticSearch。我编写了一个 Clojure 应用程序,它从 MySQL 中抓取数据,将其聚合成我们想要的格式,然后放入 ElasticSearch。我在我们的 EC2 实例上进行了设置,devops 人员正确设置了 AWS 角色,然后我开始运行应用程序。10分钟后,我这样做了:

我看到了:

惊人的!它正在工作!我看了一些文件,它们看起来不错。

又过了 15 分钟,我运行与上面相同的查询。可悲的是,我得到了相同的结果:

我当时想,什么?为什么它会接受 14,952 条记录然后停止?

如果有任何问题,我的 Clojure 函数设置为抛出错误;

如果我查看日志,没有错误,并且我一直看到打印出这一行:

现在已经过去了一个多小时,我们似乎仍然停留在 14,952 个文档上。

可能出了什么问题?为什么我没有看到错误?

使用 Elastisch 作为库将 Clojure 连接到 AWS ES。

更新

好的,现在至少我看到了这些异常。我不清楚他们是在哪里被抓到的。在我的代码中的任何地方,我都会重新抛出异常,因为我希望应用程序在第一个异常上死掉。这些是在某个地方被捕获的,可能在我正在使用的 Elastish 库中?或者我不小心抓到并记录在某个地方。

但这是一个有点微不足道的问题。更重要:

下一个问题是为什么我会得到这些例外。我在哪里调整 AWS ElasticSearch 以便它以合理的速度接受我们的写入。

更新 2

我又重新开始了。大约 920 个文档被成功放入 ElasticSearch。然后我得到:

什么?

此外,写入似乎非常缓慢。也许每秒 10 次操作。AWS 中一定有一些我可以调整的东西让我们的 ElasticSearch 节点接受更多的写入?我希望每秒至少有 1,000 次写入。

更新 3

所以现在我已经达到了这个应用程序大部分工作的地步,但它以我能想象的最奇怪的方式工作。

我收到一条“断管”消息,将我带到这里:

Java 中的 SSL 对等点错误关闭

按照这个建议,我这样做了:

这似乎没有任何效果。

但现在我的应用程序这样做了:

  1. 以极快的速度移动,每秒可能向 ElasticSearch 写入 1 次。
  2. 引发“断管”异常。
  3. 像火箭一样起飞,开始每分钟向 ElasticSearch 写入大约 15,000 个请求。

我很高兴它终于起作用了,但我对我不知道它为什么起作用这一事实感到不舒服。

此外,每分钟 15,000 个请求实际上并没有那么快。移动 200 万个文档时,这需要 2 个多小时,这太可怕了。但是,Amazon 仅支持 ElasticSearch 的 REST 接口。我读过本机协议会快 8 倍。这听起来像我们需要的。