问题标签 [chewy-gem]

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

ruby-on-rails-4 - 使用耐嚼将 Rails 应用程序连接到 elasticsearch

我正在使用耐嚼的 gem 将 ES 绑定到我的 rails 应用程序。我是耐嚼的新手,所以当我尝试索引模型的字段时遇到问题。该字段是数据库中的文本字段,我在模型中将其序列化为哈希。散列是动态的,并且可能在表单中包含 0 到 n 个元素。字段名称是items任何帮助将不胜感激。

当我做define_type时,如何在我的索引类中索引这样的字段?

这是我的索引器

我的模型

0 投票
1 回答
99 浏览

ruby-on-rails - 如何创建 { x = y | y = z | z = 0 } 从哈希中动态阻塞?

尽管上下文可能无关紧要,但我使用 Chewy gem 使用以下代码过滤 Elasticsearch 结果:

我正在寻找一种方法来循环遍历每个元素,property_ids而不是调用property_ids[0],property_ids[1]等,由单独的分隔or。在实际使用property_ids中不会是固定长度。

0 投票
1 回答
807 浏览

ruby-on-rails - 无法在使用耐嚼宝石的关系搜索结果中突出显示

我正在将耐嚼的 gem 用于带有 Rails 的 elasticSearch。我有相关文档,我想在结果中同时显示突出显示的字段和其他一些字段。

当我返回搜索结果时,突出显示“主”记录中的匹配项,但“相关记录”中没有(不确定正确的术语是什么)。

我的 search_index.rb 看起来像这样:

查询看起来像这样

当我在标题上找到匹配项时,title 方法会返回突出显示术语的标题文本。但是,我总是将 play_List_items 作为没有突出显示的哈希数组返回。

当我使用“to_a”进行序列化时,我看到在 _data 中一个名为“highlight”的字段的散列,其中包括突出显示,但它只有匹配的字段,所以我不知道如何显示关联的 thumb_square (出现在_data.source中)与 item_title 一起突出显示。

我不知道这是否与耐嚼的宝石或一般的弹性搜索有关。

0 投票
2 回答
1005 浏览

ruby-on-rails - Chewy Gem - 查询以获取包含特定日期的日期范围

我在 Rails 应用程序上使用 ElasticSearch 和耐嚼的 GEM。我会帮忙翻译一下:

使用有嚼劲的过滤器。我尝试长时间完成这项工作,但没有成功。

任何形式的帮助都会很棒。

谢谢

0 投票
0 回答
135 浏览

ruby-on-rails - 我可以在带有 ElasticSearch 的 Angular 视图中使用 Rails ActiveRecord Magic 吗?

我想我已经知道了这个问题的答案,但我还是要问它。

我有一个 rails 应用程序,并将 angular 集成到应用程序的一个区域中以获得一些魔力。为了添加到组合中,我正在集成 Chewy gem 以使用 ElasticSearch。

所以,使用这个例子:

我有一个具有以下字段的演示模型:

  1. ID
  2. 场地编号
  3. 演示文稿 ID
  4. 评分

我有一个 Presentations 视图,它通过 Presentation 部分循环,并且我在使用 Angular 做基本相同的事情,我正在循环通过 Presentation 指令。

现在,使用普通的 ERB,当我在 ERB 视图中拉出演示文稿列表时,我可以:<%= presentation.venue.name %>显示场地名称。

我想知道的是,就像我说的那样,我想我已经知道了这个问题的答案,当我循环通过我的 Presentation 指令时,通过这个角度路线,即使它是一个 _presentation.html.erb 文件我可以' t 使用活动记录关系,因为 javascript get 在 html 之后呈现。

因此,在我的角度指令模板中,我将在哪里有presentation.venue.name,我需要一个角度函数来将其拉入,对吗?

有什么方法,当我通过 ElasticSearch/Chewy 提取数据时,我也可以提取这些数据吗?这是我唯一相信的其他选择?

0 投票
1 回答
251 浏览

ruby-on-rails - 从搜索结果链接到模型元素(Chewy、Rails)

我已经实现了对用户模型的搜索(使用 Chewy gem 的 Elasticsearch)。

意见/搜索/search.html.erb:

路线.rb:

我需要的是为每个搜索结果行添加一个指向用户的链接。(如何将 Chewy 用户索引与用户页面连接起来)

更新:

我将 search.html.erb 中的最后一段更改为:

搜索结果现在可以点击,但我收到以下错误:

ProfilesController#show 中的 ActiveRecord::RecordNotFound 找不到具有 'id'=#UsersIndex::User:0x007fa1050ebed0> 的用户

我的profiles_controller.rb:

0 投票
2 回答
1746 浏览

ruby-on-rails - 使用 Chewy Gem 获得 10 多个结果 - ElasticSearch & Rails

使用耐嚼的宝石,如果我运行:

它总是返回 10 次。

我知道这是一个 ElasticSearch 默认值,并且我已经阅读了这个问题,它说我应该将sizeURL 上的参数设置为一个大数字,以获取所有事件。

问题是我似乎无法找到在哪里设置 URL 参数以在耐嚼的 gem 上为 elasticSearch 服务器的请求设置 URL 参数,以便它会在内部执行这样的获取请求:

更新:

嗯......在我发布我的问题几分钟后,我似乎找到了解决方案。如果我使用这样的limit功能:

我似乎得到了我期望的发生次数。现在我问,这是正确的方法吗?

0 投票
1 回答
802 浏览

ruby-on-rails - Rspec - Chewy 的绕过策略

耐嚼的文档建议设置:bypass测试策略,其中:

但我得到一个:

这里我的spec_helper.rb

这里有什么建议吗?

提前致谢

耐嚼版本:0.6.2

导轨版本:4.1.7

rspec 版本:3.1.0

0 投票
1 回答
210 浏览

elasticsearch - 弹性搜索和耐嚼:根据项目内容使结果唯一

对不起,标题不够清晰,但我不确定如何用一个简单的句子表达我的问题。

解释一下:我目前工作的应用程序有多种类型的对象,可以链接到标签,由用户添加。目前,每个标签都是数据库中的不同条目。

例如,我有: - 对象 1 标记为:tag1、tag2 - 对象 2 标记为:tag2、tag3 - 对象 3 标记为:tag1、tag3、tag4

标签的表格如下所示:

标签的值也在弹性搜索中被索引(使用耐嚼的 gem),因此应用程序在标签上提供了一些自动完成功能。

主要问题是,当搜索 'ta' 时,Elastic 搜索会返回列表:tag1, tag2, tag2, tag3, tag1, tag3, tag4 这会造成一些麻烦。假设我们有 100 个对象用“tag1”标记,第 101 个对象用“tag2”标记。如果我搜索“ta”,则不会返回“tag2”(因此不会被建议)。

我想要的是搜索查询返回:tag1,tag2,tag3,tag4(我不太关心所说的顺序),所以基本上根据索引标签的值统一结果,而不是整个对象。我希望我的问题足够清楚:)

提前致谢 :)

可能会有所帮助,这里是用于声明索引和索引元素的代码(是的,索引了两个字段,但是已经很难用一个字段来解释了;))

0 投票
1 回答
1336 浏览

ruby-on-rails - 如何使用耐嚼的 gem 使用 elasticsearch 滚动 api?

我在我的 ROR 应用程序中使用 'chewy' gem 进行弹性搜索。但是我没有找到 elasticsearch scroll api 的任何文档。当我跳转到记录的最后一页时,我遇到了错误。

有什么方法可以在耐嚼的 gem 中实现 elasticsearch scroll api,还是有其他选择?