问题标签 [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.
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 product
和1st product
。如果我想循环浏览产品并打印,custom_field_values.value
我应该得到Z
, P
, B
.
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 - 具有“新闻”、“电视”或空数组作为类别的帖子。
elasticsearch - Elasticsearch 优先排序较短/不太相关的标题
我正在使用 Elasticsearch 7.3 进行产品搜索。产品标题的格式不同,但我对此无能为力。
有些标题可能如下所示:
和其他这样的:
如果有人搜索“雪佛兰轮毂轴承”,“福特轮毂轴承”产品排名第一,雪佛兰零件排名第二。如果我从产品标题中删除所有额外的文本(型号 5528923-01),雪佛兰零件会根据需要排名第一。
不幸的是,我无法修复产品标题,因此当有人搜索时,我需要能够将雪佛兰零件列为#1 Chevrolet Hub Bearing
。我只是将类型设置name
为并在我的索引中text
应用了分析器。standard
这是我的查询代码:
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
elasticsearch - elasticsearch 重新索引文档减少可用空间
步骤: - elasticsearch 2.3 - 在 ES 中创建文档 => 使用 1 GB 磁盘 - 在 ES 中更新相同文档 => 使用 2 GB 磁盘
为什么会发生?是因为版本控制吗?是否可以避免磁盘使用量翻倍?
目前我们使用 forcemerge ( https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html ) 但需要几个小时。
elasticsearch - 使用必须和匹配过滤弹性搜索结果,给出意外结果
结果包含以下信息
要求
我想根据以下条件过滤记录:
- id 必须匹配
- 而且 draft_id 应该是
non_draft
或者draft_11
或者用简单的话
id = 24 AND (draft_id = "non_draft" OR draft_id = "draft_11")
如果你看到结果,它只匹配 id,而不匹配 draft_id 字段。
elasticsearch - 在 LogStash 中,如何删除任何大于特定大小的 json/xml 字段
简而言之,我在我们公司有这个堆栈用于我们的公司日志:
很常见的做法。
然而,在意外的请求/响应格式中可能存在一个非常大的 xml/json 字段。我只想删除这个特定的字段/节点,无论是 json 还是 xml 结构中的哪个级别,因为请求/响应可以是 SOAP (XML) 或 rest (json)。
换句话说,我以前不知道响应/请求消息树/结构,我不想根据整个大小丢弃整个消息,只丢弃大于特定大小的特定字段/节点。
例如:
我的整个 docker compose 是:
logstash.conf
想象的解决方案
*** 已编辑
我不确定这种方法有多好,主要是因为在我看来,我将强制 Logstash 表现为一个块阶段,将所有 json 传递到内存并在保存到 Elastic 之前对其进行解析。顺便说一句,尚未在压力情况下进行测试,我的一位同事提出了这种替代方案
ruby-on-rails - 在 rspec 测试用例中启动 elasticserach 集群时权限被拒绝
我在我在 Ruby on Rails 6 上运行的 API 应用程序中使用了 elasticsearch-ruby gem。在开发环境中,一切都运行良好,但为了测试,我想使用 elasticsearch-extensions gem 创建测试集群。运行 rspec 并尝试启动服务器时出现以下错误。我正在使用 Ubuntu 18.04。
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
那么,我们如何使用变换端点呢?