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

c# - 当每个索引只能进行一个映射时,将渗透器存储在单独的索引中?

SearchAgent在一个名为的索引中有一个文档,searchagent如下所示:

这是因为我希望我的用户创建“搜索代理”,以便在插入特定搜索的新文档时通知用户。

现在,我要为其查找相关搜索代理的文档位于items索引中,并且是Item. 它如下所示:

这似乎也是文档建议的内容:

考虑到渗透的设计,对于渗透查询和被渗透的文档使用单独的索引通常是有意义的,而不是单个索引......

但是,我现在无法索引我的搜索代理文档,因为它们Query引用了Item文档上的属性。这会导致以下错误:

找不到名称为 [title] 的字段的字段映射

我想这意味着我都必须在索引中描述Item SearchAgent映射。searchagent

但是在 Elasticsearch 6 中,他们取消了对每个索引的多个映射的支持,因此这是不可能的。

我怎样才能解决这个问题?

0 投票
1 回答
168 浏览

elasticsearch - 具有弹性搜索渗透的复杂查询

我有一个 PostgreSQL 数据库,其中包含从网络上解析的新闻文章。解析器每小时运行一次,收集新的新闻并将它们存储在数据库中。该应用程序的用户可以将某些关键字添加到他们的个人资料中,这样如果发现包含该关键字的新新闻项目,他们就会收到通知。目前我正在为此使用 SQL 查询,所以每当我收到一篇新的新闻文章时,我都会尝试将其与用户添加的所有关键字进行匹配,然后发出通知,但这需要很多时间。所以我正在考虑整合 Elasticsearch。我遇到了percolation query,但我找不到一个好的文档,所以不确定我是否能够用它创建复杂的查询。搜索需要考虑以下几点:

  1. 用户可以添加关键字AND、OR、NOT,我们需要分别“搜索所有”、“任何一个”、“不包含”。例如,用户可以给出诸如“比特币”和“加密货币”之类的关键字而不是“采矿”,那么在这种情况下,这个搜索查询应该只匹配包含“比特币”和“加密货币”字样的新闻文章,并且不应该包含“采矿”字样。关键字可以在文章标题或文章正文中的任何位置
  2. 词干。因此,如果用户关键字包含“raining”并且文章包含单词“rain”,那么渗透搜索仍应返回该关键字的 id
  3. 用户还可以提供作者作为关键字,在这种情况下,我们需要返回由该作者撰写的文章
0 投票
0 回答
263 浏览

elasticsearch - 对渗透查询及其文档使用单独的索引有多重要?

关于 Percolate 查询的 ElasticSearch 文档建议对查询和被过滤的文档使用单独的索引:

考虑到渗透的设计,对于渗透查询和被渗透的文档使用单独的索引通常是有意义的,而不是像我们在示例中所做的那样使用单个索引。这种方法有几个好处:

  • 因为渗透查询包含与渗透文档不同的字段集,所以使用两个单独的索引允许以更密集、更有效的方式存储字段。

  • 渗透查询的扩展方式与其他查询不同,因此渗透性能可能会受益于使用不同的索引配置,例如主分片的数量。

在页面底部:

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html

我在理论上理解这一点,但我想更多地了解这对于大型索引(例如,100 万个注册查询)的必要性。

在我的情况下,权衡是为文档创建单独的索引需要维护相当多的额外工作,主要是因为两个索引都需要保持“同步”。如果没有交易,这很难保证,所以我想知道我需要的规模是否值得。

一般来说,我对有关索引/映射设计的任何建议感兴趣,以便可以有效地查询它。谢谢!

0 投票
1 回答
344 浏览

python - Elasticsearch Percolate 查询未命中

我试图从使用 python 运行的 Elastic 7.3 Percolate Documentation 中获取示例,但我的文档没有遇到任何查询。这是查看示例页面的链接:https ://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html

我使用了 python pip 包 elasticsearch。我的结果是:

索引包含一个文档(渗透查询): curl -X GET "localhost:9200/inverse-index/_search"

提前感谢您(请参阅下面的代码)

日志信息:

示例页面的代码可以很好地与 bash curl 命令配合使用。问题可能出在 python 站点上。

0 投票
1 回答
153 浏览

java - elasticsearch渗透java api示例

需要使用 elasticsearch java rest API 的 elasticsearch percolate 示例

在弹性搜索文档中找不到

在以前版本的弹性下面是传输客户端的代码,不确定哪个用于休息客户端

0 投票
1 回答
676 浏览

elasticsearch - 如何渗透 simple_query_string/query_string 查询

指数:

此测试过滤器查询有效

此查询不起作用

结果:

为什么这个 simple_query_string 查询与文档不匹配?

0 投票
1 回答
235 浏览

elasticsearch - 如何在 Elasticsearch 中查找包含给定点的多边形

我需要在具有大约 50k 地形多边形(存储为 ES 上的 geo_shape 多边形)的数据库上构建一个查询,我在其中给出一个点,它返回包含该点的每个多边形。

我设法使用渗透查询(下面的示例)来做到这一点,但我在某处读到渗透查询不能很好地扩展。

有没有更有效的方法来实现这种行为?

使用渗滤液的示例:

演示多边形

0 投票
0 回答
110 浏览

java - 在 percolate 查询中不推荐使用类型,但 PercolateQueryBuilder 类仍然需要该类型

每次我的应用程序发生渗透时,我都会收到警告消息。我正在使用 7.4.0 版本的 elasticsearch 和 percolate 客户端。Elasticsearch 也是 7.4.0 版本。我知道类型在第 7 版中已弃用,但PercolateQueryBuilder类仍然需要indexedDocumentType. 我检查了其他构造函数,但它没有提供构造函数来构建没有类型的渗透查询。

警告信息:

request [POST http://localhost:9200/saved_searches/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&ignore_throttled=true&scroll=1m&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true] returned 1 warnings: [299 Elasticsearch-7.4.0-22e1767283e61a198cb4db791ea66e3f11ab9910 "[ types remove] [percolate] 查询中不推荐使用类型。不应再指定索引文档的 [type]。"]

运行渗透作业的代码。

我找不到我做错了什么。

0 投票
0 回答
24 浏览

elasticsearch - 如果字段类型为“ip”,则过滤查询结果中缺少 Elasticsearch 突出显示字段

使用弹性搜索6.2.4

我有一个简单的过滤器索引设置,有 2 个字段ip_addresstitle. ip_address有类型iptitle有类型text

渗滤器映射

向具有 CIDR 范围的索引添加了渗透查询

_search向索引发出请求

得到一个命中原始渗透查询的结果。

但是,没有任何亮点回来。如果我使用title属性对其进行测试并将其与文本匹配,则突出显示会回来。

用于突出显示的 ip 类型是否存在问题?

0 投票
1 回答
140 浏览

spring-boot - 春季数据弹性搜索中等效的 PercolateQueryBuilder 是什么?

底线- 如何将我的简单过滤器查询转换为弹簧数据弹性搜索?任何线索表示赞赏。谢谢

我一直在尝试使用弹簧数据弹性搜索编写以下渗透查询

我试过了

试过了

还尝试了 NativeSearchQuery,但都没有奏效。

我看到https://tothepoint.group/matching-documents-with-elasticsearch-percolator-query/作者使用 PercolateQueryBuilder (https://github.com/ophalsp/elasticsearch-percolator),但我没有在 spring 数据中看到 PercolateQueryBuilder弹性搜索。

编辑:- 我尝试了所有实现 QueryBuilder 的构建器。由于它们都没有在 XContentBuilder 构建器中查询或渗透(如下所示),因此它们不起作用

我还可以看到 PercolateQueryBuilder 是 percolator-client 的一部分,它是 org.elasticsearch.client.transport 的一部分,它在 spring-boot 中被排除在外

我将添加 org.elasticsearch.client.transport 并试一试。