问题标签 [elasticsearch-rails]

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

ruby-on-rails - Rails-elasticsearch: unable to perform custom mapping content of the table

I am trying to make a custom index of my model to elasticsearch serwer. Somehow I can render only a structure (selected columns) but without a records.

My model:

And then I try to create an index from rails console:

After that on my local elasticsearch server on /leads I can see my custom structure but without any records. How can I fix this issue?

Rails version: 5.2.1 Elasticsearch: 6.4.3 elasticsearch-model/rails gems: 6.0.0

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 投票
1 回答
769 浏览

ruby-on-rails - 通过 elasticsearch-model 使用滚动 api

在我的一生中,我找不到在 Ruby on Rails 和 elastisearch-model(或 rails 或 dsl)gem 中使用 ElasticSearch scroll api 的任何参考。

他们在文档中唯一引用的是直接在客户端上调用滚动,这违背了目的。此外,它不使用客户端或您已经在 Rails 应用程序中设置的任何客户端设置。

我想做这样的事情。

这是在 Kibana 开发工具中工作的 ElasticSearch 查询:

我本以为我可以调用类似的东西

但似乎我需要这样做:

有没有人有更多用户友好的例子?

0 投票
2 回答
652 浏览

ruby-on-rails - 在elasticsearch中设置关键字字段

我将 Rails 从 4 升级到 5.2,还将 elasticsearch 从 2.4 更新到 6.8。

以下是我得到的错误。

这是请求*的样子:

看一下activity_search.rb:

看一下model.rb:

activity_search_facade.rb:

有人可以帮助解决这个错误吗?

请注意elasticsearch-railsgem 版本是 6.0.0。

如果您需要更多代码,请告诉我。

* 如何更改此请求以使其在版本 6 中正常运行?

更新

根据我得到的错误,这可能是什么吗?

curl -X GET 'localhost:9200/development_activities'

我如何将其更改为type: "keyword"?^

0 投票
1 回答
433 浏览

ruby-on-rails - ElasticSearch maxClauseCount 设置为 1024

elasticsearch-rails在 Rails 5 中使用 gem,我正在尝试增加max_clause_count. 我正在使用7.3ElasticSearch 版本。

在我的 elasticsearch.yml 文件中,我添加了以下代码:

在我的初始化程序中,我像这样加载配置:

我仍然可以使用我的一个相当长的查询来重现此错误,当我这样做时,在加载上面的配置后,我仍然收到错误:

{"type":"too_many_clauses","reason":"maxClauseCount is set to 1024"}

将配置打印到终端我得到这个输出:

0 投票
1 回答
232 浏览

elasticsearch - 标点符号不正确的结果 - ElasticSearch

english我有一个名称字段,该字段使用包含零件名称的分析器进行索引(也尝试了标准分析器)。

我的问题是我的一些标题包含标点符号,有些则没有。此外,我的一些查询包含标点符号,而有些则没有。

例如,我的标题为“CenterG 5.2 Drive Belt for model number 4425”。我的查询可能如下所示:“Centerg 5.2 皮带”,如果是这样,那么我的结果将正确显示,顶部显示“CenterG 5.2 Drive Belt for model number 4425”。

但是,如果我的查询不包含标点符号,则该产品不会显示在结果中。对于不包含标点符号的标题和包含的查询,我也有同样的问题。我不确定这应该如何处理。我尝试使用standard我理解无视标点符号的分析器,但这并没有改善结果。它们大致相同。

因此,当我搜索“CenterG 5.2 Belt”或“centerg 52 Belt”时,我希望产品“CenterG 5.2 Drive belt for model number 4425”显示在我的结果顶部。

这是我的映射:

我也尝试过利用没有解决这个问题的 ngram 分析器。

这是我的查询:

0 投票
1 回答
296 浏览

elasticsearch - Elasticsearch 两个 multi_match 查询

我有三个字段,name我正在尝试搜索。我已经提升了任何排名高于. 但是,我仍然有一些情况与包含奇怪标点符号的术语不匹配,因此我想在and fields 字段上进行模糊搜索来完成我的查询。name.ngrammodel_numbernamenamename.ngramname.ngramnamemodel_number

这是我最终想要的查询。如果我删除第二个 multi_match,则查询有效,但不包括模糊搜索。

我想最终像处理 ngram 一样对待模糊搜索,以便非模糊匹配排名第一,模糊匹配排名第二。如何添加允许此操作的第二个 multi_match 查询?

0 投票
1 回答
73 浏览

elasticsearch - 防止关键字填充 Elasticsearch

我正在使用 ES 7.3。我有一个包含标题、部件、型号等的产品索引。我遇到了关键字填充问题,因为某些产品可能在整个文档中多次包含相同的单词、部件或型号。

例如,型号可能在标题中出现两次,也在型号字段中出现。某些产品可能仅在标题中包含型号而不在型号字段中包含。由于该问题,这些产品难以排名。如何防止这种类型的关键字填充?这是我的代码。

字段:

询问:

更新

unique过滤器添加到我的映射中确实可以防止在同一字段上匹配重复值,但不会跨多个字段,这是我需要的。

0 投票
2 回答
247 浏览

ruby-on-rails - Elasticsearch 匹配字段=值(不包含)

我在通过 elasticsearch 搜索时遇到问题。我有product字段索引titlegender

当我进行查询时,default_field: title我只需要获得结果gender=male(不是女性或其他人)

询问:dress AND gender:male

结果包含两种性别:malefemalemale,female

在我看来,gender:*搜索所有包含male但不完全匹配的值。如何正确查询?

我通过 Ruby on Rails 使用它