问题标签 [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 回答
532 浏览

ruby-on-rails - 功能分数属性可根据点击次数对搜索进行排名,这不适用于弹性搜索和 rails

我在我的文档模型中实现了函数 score 属性,其中包含一个单击字段,该字段跟踪每个文档的视图数量。现在我希望搜索结果获得更高的优先级并根据每次搜索的点击次数显示在顶部

我的 document.rb 代码

搜索视图在这里

当我搜索 Estamp 时,我得到的结果按以下顺序排列:

很明显,当 Notary 和 Estamp 获得更多点击时,它并没有出现在搜索的顶部。我怎样才能做到这一点?

这是我在控制台上运行它时得到的。

POST _search

这里文档的分数没有根据点击更新

0 投票
1 回答
419 浏览

ruby-on-rails - 弹性搜索同义词 - Rails

我正在将 Ruby on Rails 与 elasticsearch-rails gem 一起使用,并且我正在尝试使用同义词过滤器。我一直在关注此处发布的问题以获取指导(我的实现按预期工作,除了同义词部分):

https://github.com/elastic/elasticsearch-rails/issues/63

这是我的代码:

这是我在控制器操作中搜索的代码:

我有名称字段设置为“wheel”的记录,但是当我搜索“roller”时,我得到 0 个结果并且没有错误。我希望此时检索名称为“wheel”的记录。我还完全删除了索引,并确认它已被删除并重新创建了我的索引,以确保我不只是面临索引问题。我现在不确定该怎么做。任何帮助,将不胜感激。

这也是我的 as_indexed_json 方法

谢谢

更新:

我还尝试将以下代码(建议在下面的答案中)添加到我的控制器搜索操作中。

我在搜索操作中用这个代码代替了我的原始代码,但是当我搜索“roller”这个词时,这仍然没有产生任何结果。我仍然可以搜索“wheel”并检索几个结果,但我对指定的同义词没有运气。

更新:

这是在产品名称字段中包含单词“wheel”的文档之一。

更新:

这是我的产品映射

0 投票
1 回答
572 浏览

ruby-on-rails - 在模块中使用未定义的方法

我的 rails 模块中有一个方法,这是我的模块

顺便提一句。当我第一次尝试执行此方法(setting_index)时出现错误。 在此处输入图像描述

但是当我试图再次执行时,这个错误就消失了..在此处输入图像描述

任何人都可以解决这个问题并给我一个明确的答案...感谢您的关注:)

0 投票
2 回答
989 浏览

ruby-on-rails - 向 ElasticSearch 查询添加过滤器

我正在尝试创建一个查询,用户可以在其中搜索品牌字段等于某个字符串的 ES 文档。这是我目前拥有的查询,但没有过滤。我正在将 elasticsearch-rails 与 Ruby on Rails 一起使用。

出于测试目的,我为过滤器静态分配了品牌名称。在这种情况下,用户应该会看到品牌名称为“NordicTrack”的搜索关键字的结果。

此查询给了我以下错误:

我不确定为什么这不起作用。任何帮助,将不胜感激!

0 投票
1 回答
641 浏览

ruby-on-rails - ElasticSearch - 将术语数组传递给过滤器

我有一个查询,我想将动态数量的术语传递给过滤器。反正有没有把它作为一个数组传递?我尝试了几种不同的方法,但总是以来自 elasticsearch 的格式错误的请求错误告终。我将 Ruby on Rails 与 elasticsearch-rails gem 一起使用。这是我的查询:

我想传递一个这样的数组:

像这样进入“必须”声明:

但是,这会导致 ES 出现格式错误的请求错误。

0 投票
1 回答
281 浏览

ruby-on-rails - ElasticSearch - 如果没有结果,再次查询

我有一个在产品目录上运行良好的查询。我的查询当前在 multi_match 中使用了模糊性,但如果相同的查询(没有模糊性)没有返回任何结果,我希望搜索使用模糊性选项。这可以在查询中完成吗?(使用 Rails 5)

这是我当前的查询:

0 投票
2 回答
1299 浏览

ruby-on-rails - 在 Rails 中限制 Elasticsearch 结果计数

我正在使用 elasticsearch-rails 和 will_paginate gem 使用 Elasticsearch 运行 Rails,并且运行良好。

我遇到的唯一问题是我的记录数已超过 10.000,这会在有人单击时出现错误“结果窗口太大,从 + 大小必须小于或等于:[10000] 但为 [10200]”在分页链接的最后一页。

现在我不想弄乱 index.max_result_window 因为我的数据集要大得多,而且我真的不需要访问者能够查看每个页面并进行记录。

所以基本上我只想对我的结果设置一个 10.000 的限制,但我没有运气让它工作。

这是我在控制器操作中的查询:

我将@response 提供给 will_paginate 使用

我尝试在不同的地方使用 .limit(10000) 并为 will_paginate 提供一个 total_entries 值,但似乎没有任何效果。

你们有什么想法吗?

谢谢!

0 投票
1 回答
872 浏览

ruby-on-rails - Ruby on Rails - ElasticSearch 结果窗口太大

我正在使用 elasticsearch-rails gem。

当用户在我的分页中单击更高页码的链接时,我收到以下错误。这是错误:

我在哪里设置 index.max_result_window 或者这甚至是解决这个问题的正确方法?

0 投票
1 回答
941 浏览

ruby-on-rails - Elasticsearch-rails 多匹配查询不起作用

我快厌倦ES了。没有任何工作。话虽如此,这是我与 ES 的下一个问题。

我正在使用 elasticsearch-rails gem。

当我运行 curl 命令时,我可以使用 multi_match 进行查询并获得如下预期结果:

使用做同样事情的 ruby​​ 代码,我得到 0 个结果。我不明白。

地址型号:

控制器动作:

每次调用搜索函数时我都重新索引的唯一原因是仅出于调试目的。这是控制台输出。

0 投票
0 回答
183 浏览

elasticsearch - 无模式索引搜索

我有一组数据遵循以下类似的数据结构:

我有一个使用标准分析器的无模式索引(没有自定义映射)。

A我从有 52 条记录的服务器中提取数据。它成功地被索引到索引中。然后,我使用该instance字段(例如"ins55")对索引进行匹配搜索。instance与此值匹配的所有 52 条记录均按预期返回。正如预期的那样,我还可以看到 52 个文档。

然后我从B服务器添加另外 198 条记录。它成功地被索引到索引中。我可以看到现在有 250 个文档,正如索引中所预期的那样。然后,我使用与来自服务器instance的数据(的)匹配的字段对索引进行匹配搜索。在预期的 52 条记录中,只有 22 条记录返回。A"ins55"

有人可以告诉我为什么所有 250 个文档都列在索引中,但它没有返回匹配的预期记录数吗?