问题标签 [pyes]

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 投票
2 回答
13743 浏览

elasticsearch - 如何快速重新索引 ElasticSearch?

我有一个包含大约 200M 文档的 ElasticSearch 索引,总索引大小为 90Gb。

我更改了映射,所以我希望 ElasticSearch 重新索引所有文档。

我编写了一个脚本来创建一个新索引(使用新映射),然后遍历旧索引中的所有文档,然后放入新索引中。

它似乎工作,但问题是它工作得非常缓慢。前两天开始是300个文档/分钟,现在速度是150个文档/分钟。

该脚本在弹性搜索机器所在的同一网络内的机器上运行。

以这样的速度,完成重新索引需要一个月的时间。

有人知道一些更快的技术来重新索引弹性搜索索引吗?

0 投票
1 回答
520 浏览

elasticsearch - 使用 pyes 的 ElasticSearch:批量索引

我有一个 200M 的文档索引,我想重新索引。

我编写了以下脚本,该脚本遍历旧索引中的文档,并将它们与 balk insert 一起放入新索引中。

每个批量的大小为 2000 个文档。

观察:

  1. 我得到的速度很慢:大约 150 个文档/分钟。
  2. 刷新操作的时间为 0。如果我删除索引命令(只是从 DB 中读取)-我加快了 10 倍。

结论:

  • 索引忽略 bulk=True 标志,并将每个文档推送到 ES 服务器。

任何人都知道请帮我弄清楚为什么 bulk=True 没有效果?

0 投票
1 回答
162 浏览

python - 更新/插入后 Elasticsearch 排序失败

我将文档插入弹性搜索并尝试对所有文档中存在的给定字段进行排序。但是,每当我更新文档时,索引似乎会中断,并且我没有得到排序顺序。我通过执行以下操作创建了一个索引:

例如,我想对“_ts”字段进行排序。给定以下字典和代码:

我希望得到“Ringo,John,Paul”的订单,而是得到“John,Paul,Ringo”的订单。为什么会出现这种情况?我看到这里有一个错误: https ://github.com/elasticsearch/elasticsearch/issues/3078 但这似乎会影响 ES .90.0,我正在使用 .90.1。

0 投票
1 回答
6480 浏览

python - MapperParsingException:没有在字段上声明的类型 [date_hour_minute_second] 的处理程序

我正在为 Elasticsearch 开发带有 Python Pyes 客户端的驱动程序。我需要基于文档http://www.elasticsearch.org/guide/reference/mapping/date-format/的日期列的映射索引没有“date_hour_minute_second”格式,我还检查了 pyes 文档https://pyes.readthedocs。 org/en/latest/guide/reference/mapping/date-format.html

当我为我的字段使用“date_hour_minute_second”格式时,我得到了标题中提到的异常。

这是我的字段定义:

我无法弄清楚为什么它会引发这样的异常,甚至文档都说它受支持。

0 投票
2 回答
1217 浏览

elasticsearch - 提高 ElasticSearch 的性能

我正在使用 ElasticSearch 来索引一些数据。但是我发现性能并不是那么高效。

只有 3000 个条目数据,每个数据有 6 列。索引这 3000 个条目需要 5 分钟。

因为我是 ElasticSearch 的新手,所以我的代码和程序流程基本如下:

  1. 搜索并检查是否有任何相同的数据。
  2. 如果有相同的数据,则更新。
  3. 如果没有,然后添加。

代码如下:

搜索:

指数

更新索引数据中的计数。

有什么方法可以提高我的代码性能吗?

谢谢您的帮助。

0 投票
2 回答
1916 浏览

python - 通过 elasticutils 过滤的 ElasticSearch

我目前正在尝试filter通过 library 在现有的 ElasticSearch 实例中使用 a elasticutils。不幸的是,我无处可去。我不确定问题是因为我做了一些基本的错误,还是图书馆有问题(很可能是 AFAICT)。

我有一个带有特定映射的索引,包含一个字符串类型的字段(比如“A”)(没有给出明确的分析器)。该字段始终包含字符串列表。

我想通过在该字段 A 中包含给定字符串来过滤我的文档,所以我尝试了:

但这会返回一个空的结果集。我也尝试过使用它,f = eu.F(A__in="text")但这导致了一个很大的错误消息,其中最有趣的部分是[terms] filter does not support [A].

我想知道是否必须以不同的方式配置索引,也许我必须创建一个构面才能使用过滤器?但是我在阅读的文档中没有找到任何提示。

我想使用的原因filter是它们可以使用and,or和自由组合not。我还发现了一些描述query也可以是布尔值的规范,但它们通常指的是must, should,并且must_not我认为这对我来说不够灵活。但我还发现一些规范提到了s 的operator标志query,可以设置为andor or。欢迎提供任何相关信息。

所以,我现在的问题是:

  • 是配置问题吗?方面与此有关吗?
  • 我想通过跳过lib来测试这是否是一个库错误,那么我怎样才能使用curl来执行这个过滤操作呢?或任何其他图书馆(也许pyes)?
  • 多个查询的灵活组合(使用andornot和它们的分组)是否可能(即根本不使用过滤器)?我该怎么做?(最好在elasticutils但其他库语法中,例如pyes,或简单的 CURL 也是受欢迎的)。
0 投票
3 回答
2180 浏览

elasticsearch - Elasticsearch GET 在 POST 之后

get_or_create在对 ES 执行多个请求时,我遇到了一些问题。Elasticsearch 在响应索引文档后似乎需要一些时间POST,以至于刚刚GET调用的 a没有返回任何结果。

此示例重现了该问题:

POST进展顺利:

第一个GET不匹配任何结果:

短暂的停顿后,显示结果(第二个GET):

这种行为正常吗?

即使响应速度较慢,是否有可能立即获得结果?

谢谢!

0 投票
0 回答
569 浏览

python - 使用弹性搜索时的慢速测试用例 (pyes)

我最近在我们的堆栈中添加了弹性搜索,它正在减慢我们的测试用例。

为了防止测试相互践踏,我通过索引将它们隔离开来。这似乎是原因。创建和删除索引似乎很慢。

我还没有找到与“截断”等效的词,但我想我会问。

此外,几年前,当我在 Java 中使用 ES 时,我使用了一个内存节点进行测试,而且速度非常快。我不认为 pyes 有这个选项。

0 投票
0 回答
253 浏览

python - Pyes Elastic Search 无结果返回

我正在按照pyes的入门教程,代码可以完成,但是没有返回到我的屏幕上的搜索结果。

当我运行代码时,它只返回 hello world。

弹性搜索和任何反馈都是全新的,我们将不胜感激!

0 投票
1 回答
105 浏览

elasticsearch - 在pyes中获取排序的搜索结果

这是一个最小的例子。

我有一个'test_index'包含以下记录的索引:

我想按'name'字段的字母顺序获取记录。我使用sort参数,但结果未排序:

结果:

我在这里做错了什么?