问题标签 [elasticsearch-ruby]

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

ruby-on-rails-4 - 嵌套排序未按预期工作 ElasticSearch

要求

  • 使用与 custom_field_id 匹配的 custom_field_values 对产品进行排序

映射

示例数据

预期的

  • 我应该能够对整个product过滤器进行custom_field_values.custom_field_id排序,按custom_field_values.value

示例查询

更新查询

结果顺序应该是2nd product, then3rd product1st product。如果我想循环浏览产品并打印,custom_field_values.value我应该得到Z, P, B.

0 投票
1 回答
752 浏览

ruby-on-rails - Elasticsearch 6.3.2 术语匹配空数组“加”其他

在我的数据库中,帖子可以有零 (0) 个或多个类别表示为一个数组。

当我进行查询时,要查看这些类别,并传递一些值:

而且效果很好,我有我期待的记录。但是当我想包含这些帖子时问题就来了,其中类别是一个空数组([])。

我现在正在从旧版本的 ES (1.4.5) 升级到版本 6.3.2,并且这段代码是使用“missing”制作的,它已被弃用。

我尝试更改添加着名的映射"null_value": "NULL",然后查询,但没有奏效。还尝试了 should 与 must_not 的组合,如升级“missing”的建议,但没有奏效。

我怎样才能做到这一点?这意味着如果我已编制索引:

结果应返回帖子编号 1、2 y 3 - 具有“新闻”、“电视”或空数组作为类别的帖子。

0 投票
3 回答
560 浏览

elasticsearch - Elasticsearch 优先排序较短/不太相关的标题

我正在使用 Elasticsearch 7.3 进行产品搜索。产品标题的格式不同,但我对此无能为力。

有些标题可能如下所示:

和其他这样的:

如果有人搜索“雪佛兰轮毂轴承”,“福特轮毂轴承”产品排名第一,雪佛兰零件排名第二。如果我从产品标题中删除所有额外的文本(型号 5528923-01),雪佛兰零件会根据需要排名第一。

不幸的是,我无法修复产品标题,因此当有人搜索时,我需要能够将雪佛兰零件列为#1 Chevrolet Hub Bearing。我只是将类型设置name为并在我的索引中text应用了分析器。standard这是我的查询代码:

0 投票
1 回答
6689 浏览

elasticsearch - Elasticsearch 7 [标准] 令牌过滤器已被删除

我正在尝试升级到 Elasticsearch v7(我正在使用 ruby​​/rails 客户端),并且在这样做并修复了一些东西后,我遇到了以下错误

在检查重大更改后,确实提到了

标准令牌过滤器已被删除,因为它不会更改流中的任何内容。

我不确定我应该如何在我的配置中反映这一点。如果我理解正确,这个错误可能来自我的自定义短语建议器

我应该删除该tokenizer字段吗?也许他们忘了更新它,但这仍然是在[Elasticsearch documentation of the suggester][1]

如果问题不是来自那里,我应该在哪里调查?

  • ES 7.3.2
  • 弹性搜索-api-7.3.0 | 弹性搜索传输 7.3.0
  • 弹性搜索模型 7.0.0 | 弹性搜索导轨 7.0.0
0 投票
1 回答
186 浏览

elasticsearch - elasticsearch 重新索引文档减少可用空间

步骤: - elasticsearch 2.3 - 在 ES 中创建文档 => 使用 1 GB 磁盘 - 在 ES 中更新相同文档 => 使用 2 GB 磁盘

为什么会发生?是因为版本控制吗?是否可以避免磁盘使用量翻倍?

目前我们使用 forcemerge ( https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html ) 但需要几个小时。

0 投票
1 回答
77 浏览

elasticsearch - 使用必须和匹配过滤弹性搜索结果,给出意外结果

结果包含以下信息

要求

我想根据以下条件过滤记录:

  • id 必须匹配
  • 而且 draft_id 应该是non_draft或者draft_11

或者用简单的话

id = 24 AND (draft_id = "non_draft" OR draft_id = "draft_11")

如果你看到结果,它只匹配 id,而不匹配 draft_id 字段。

0 投票
1 回答
110 浏览

elasticsearch - 在 LogStash 中,如何删除任何大于特定大小的 json/xml 字段

简而言之,我在我们公司有这个堆栈用于我们的公司日志:

很常见的做法。

然而,在意外的请求/响应格式中可能存在一个非常大的 xml/json 字段。我只想删除这个特定的字段/节点,无论是 json 还是 xml 结构中的哪个级别,因为请求/响应可以是 SOAP (XML) 或 rest (json)。

换句话说,我以前不知道响应/请求消息树/结构,我不想根据整个大小丢弃整个消息,只丢弃大于特定大小的特定字段/节点。

例如:

我的整个 docker compose 是:

logstash.conf

想象的解决方案

*** 已编辑

我不确定这种方法有多好,主要是因为在我看来,我将强制 Logstash 表现为一个块阶段,将所有 json 传递到内存并在保存到 Elastic 之前对其进行解析。顺便说一句,尚未在压力情况下进行测试,我的一位同事提出了这种替代方案

0 投票
2 回答
196 浏览

ruby-on-rails - 在 rspec 测试用例中启动 elasticserach 集群时权限被拒绝

我在我在 Ruby on Rails 6 上运行的 API 应用程序中使用了 elasticsearch-ruby gem。在开发环境中,一切都运行良好,但为了测试,我想使用 elasticsearch-extensions gem 创建测试集群。运行 rspec 并尝试启动服务器时出现以下错误。我正在使用 Ubuntu 18.04。

0 投票
1 回答
54 浏览

ruby - elasticsearch-ruby:转换

我们可以读入elasticsearch-ruby CHANGELOG (Vewsion 7.7.0) 我们有新的 API 端点可用。包括转换。他们在这里

我们正在使用 elasticsearch-ruby 7.15.0。但是不知道怎么用。

这是我的例子...

但是我们得到一个错误...

它位于文件夹 /lib/elasticsearch/api/actions 中的代码。就像指数一样。

我们可以使用这样的索引...

我们在 de doc 中找不到任何内容。https://rubydoc.info/gems/elasticsearch-api/Elasticsearch/API

那么,我们如何使用变换端点呢?