问题标签 [elasticsearch-percolate]

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

elasticsearch - 渗透未按预期返回结果

我们正在尝试设置和使用 percolate,但并没有达到预期的效果。

首先,我注册了一些查询:

然后,当我尝试将它与 150 匹配时,理想情况下应该匹配 only query1,而不是匹配两个查询:

任何关于为什么会发生这种情况的指针将不胜感激。

0 投票
2 回答
1122 浏览

elasticsearch - 在弹性搜索渗透响应中评分

现在的情况

我正在使用弹性搜索的渗透功能。它运行良好 - 我为新文档获取匹配的 percolate-ids,并且基本上可以构建反向搜索。到目前为止一切都很好。

问题

问题来了:我想要一个分数来表示给定文档与过滤器查询的匹配程度(正是普通查询给我的分数)。为此,我添加了track_scores,但没有运气。

我在以下文档中找到了这个track_scores

...分数基于查询,表示查询如何与渗透查询的元数据匹配,而不是被渗透的文档如何与查询匹配...

我想要/需要的甚至可能吗?

显示问题的示例

这是一个演示问题的示例(取自elasticsearch.org)。在这里,在 percolate-response 中返回的分数总是1.0,无论输入文档如何:

渗透第一个文件:

渗透第二个(不同的)一个:

我需要什么

我想0.8为第一个文档和0.9第二个文档打分。但是他们不能像这里一样获得相同的分数。我怎样才能达到我想要的?

非常感谢您的任何想法和帮助。

0 投票
3 回答
1130 浏览

elasticsearch - 如何删除 Elasticsearch 索引中的所有过滤器查询

我希望删除索引上的所有过滤器查询,但保持文档完整。

有没有简单的方法来执行此操作?

0 投票
1 回答
2050 浏览

elasticsearch - 获取 ElasticSearch Percolator 查询

我正在尝试查询 ElasticSearch 以获取当前存储在系统上的所有过滤器查询。我的第一个想法是使用类型过滤器执行 match_all,但从我的测试来看,如果我执行 match_all 查询,它们似乎不会返回。我一生都找不到正确的方法来查询它们或任何有关它的文档,因此非常感谢您的帮助。

此外,任何其他关于如何以与其他类型不同的方式处理存储的过滤器查询的信息都值得赞赏。

0 投票
1 回答
154 浏览

perl - Elastisearch Percolator 的 Perl 模块

我正在尝试将 Elasticsearch Percolator 与 perl 一起使用,我发现了这个很酷的模块

此处列出了渗透方法

据我所知,它们只是读取方法,因此只能读取查询索引并查看查询是否已经存在,计算匹配的查询等。

除非我遗漏了某些东西,否则无法通过 Percolator 接口添加查询,所以我所做的是使用常规方法针对.percolator索引创建文档,如下所示:

这是通过 perl 模块向 percolator 索引添加查询的最佳方式吗?

谢谢!

0 投票
1 回答
644 浏览

scala - 无法渗透:org.elasticsearch.index.percolator.PercolatorException:[myindex] 无法解析查询 [myDesignatedQueryName]

我正在遵循本指南并在 scala 中转换此 percolate api java 代码,但是当我在 SBT 中运行它时,它会引发以下异常

这是我的代码

当我使用 curl 编写这些命令时,它们工作正常

我正在使用弹性搜索-1.4.1 请帮助我在哪里出错,我也想查看结果,因为我不知道如何在代码中执行此操作

我如何获取结果,请帮助我并指导我,谢谢

0 投票
0 回答
394 浏览

elasticsearch - 最大弹性搜索过滤器查询词

elasticsearch 过滤器查询中是否有最大数量的术语?

当尝试索引超过 1000 个术语的查询时,我得到一个 StackoverflowError 像这样:

最后一行不断重复。

我尝试将具有高值(16384)的 index.query.bool.max_clause_count 添加到 elasticsearch.yml 文件,但这并不能解决问题。

是否有解决方案,或者将查询分解为许多小得多的查询是否更合适?

0 投票
1 回答
601 浏览

elasticsearch - 如何优化elasticsearch percolator index 内存性能

使用 elasticsearch percolator index 时,有没有办法提高内存性能?

我为我的过滤器创建了一个单独的索引。我大约有 1 000 000 个用户创建了保存的搜索(用于电子邮件警报)。创建此渗透器索引后,我的堆使用率飙升至 100%,并且服务器对任何查询都没有响应。我的资源有些有限,无法简单地在问题上投入更多的 RAM。唯一的解决方案是删除包含我保存的搜索的索引。

从我读过的内容来看,渗滤器索引永久驻留在内存中。这完全有必要吗?有没有办法限制这种行为但仍然保留功能?有没有办法优化我的数据/查询/索引结构来规避这种行为,同时仍然达到预期的结果?

0 投票
3 回答
1485 浏览

python - 带有 python api 的 Elasticsearch Percolator

您好我正在尝试使用“elasticsearch.py​​”api 做一个渗透索引。但我什至没有得到任何结果。

API 文档似乎有 3 或 4 个与渗透相关的函数。

我检查了以下可能性。任何人都可以提供一些帮助,以便我可以解决它。

###### 结果 #####

我希望“es.percolate”用于搜索。“es.create”允许我们将文档注册为渗透索引。但在文档中并没有那么完美地提到它。“.percolate”也用于代替索引。请帮忙。

0 投票
1 回答
2219 浏览

performance - 如何提高 ElasticSearch 中的渗透器性能?

概括

我们需要提高渗滤器性能(吞吐量)。

最有可能的方法是扩展到多台服务器。

问题

如何正确扩展?

1) 增加底层索引中的分片数量是否允许并行运行更多的渗透请求?

2) 如果 ElasticSearch 服务器只进行渗透,它需要多少内存?

拥有 2 台 4GB 内存的服务器还是一台 16GB 内存的服务器更好?

3) 拥有 SSD 会显着地帮助过滤器的性能,还是增加 RAM 和/或节点数量更好?

我们现在的情况

我们的工作索引中有 200,000 个查询(工作搜索提醒)。我们能够运行 4 个调用 percolator 的并行队列。每个查询能够在大约 35 秒内过滤 50 个作业的批次,因此我们可以过滤:

4 个队列 * 每批 50 个作业 / 35 秒 * 每分钟 60 秒 = 每分钟 343 个作业

我们需要更多。

我们的工作索引有 4 个分片,我们正在使用位于该工作索引之上的 .percolator。

硬件: 2 个处理器服务器,总共 32 个内核。32GB 内存。我们为 ElasticSearch 分配了 8GB RAM。

当 percolator 工作时,我上面提到的 4 个 percolation queue 消耗了大约 50% 的 CPU。

当我们尝试将并行渗透队列的数量从 4 个增加到 6 个时,CPU 利用率跃升至 75% 以上。更糟糕的是,percolator 开始因 NoShardAvailableActionException 而失败:

[2015-03-04 09:46:22,221][DEBUG][action.percolate][Cletus Kasady][jobs][3] 碎片多渗透失败 org.elasticsearch.action.NoShardAvailableActionException: [jobs][3] null

该错误似乎表明我们应该增加分片的数量并最终添加专用的 ElasticSearch 服务器(+ 稍后增加节点的数量)。

相关: 如何优化 elasticsearch percolator index 内存性能