问题标签 [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 投票
3 回答
231 浏览

elasticsearch - 获取可用公寓查询

概述

我有预订的公寓。我的索引将保留作为嵌套字段,其中包含 start_date 和 end_date 的日期字段。

我正在使用耐嚼的红宝石 - 但我认为这并不重要。只需要让我的查询正确。

目标

我想获取在给定日期没有预订或根本没有预订的所有可用公寓。

当前查询

不幸的是返回所有公寓:

索引设置

0 投票
1 回答
431 浏览

elasticsearch - 使用开始日期和结束日期查询以获取可用日期

我正在尝试创建一个查询,该查询返回在该日期(或日期范围)没有预订或根本没有预订的可用产品。这让我疯狂。

这是我当前的索引设置映射:

和查询:

当有多个预订时,它会返回所有预订。

我希望有人能看到那里的错误。也许我在大局中遗漏了一些东西。

0 投票
1 回答
188 浏览

ruby-on-rails - 合并弹性搜索查询和过滤器无法正常工作

我必须合并才能查询和过滤。在合并查询和过滤器之后,我们在弹性搜索 2.4 中使用 filter_mode(:must) 做到了这一点。

现在 filter_mode 和 query_mode 不兼容。我正在使用“和”合并查询。我正在使用耐嚼在 Rails 框架中使用弹性搜索

现在 query_string 产品 1 结果。所以过滤器应该产生该结果的一个子集。

相反,当我这样做时query_string.filter(term: { domain_id: domain_id })

它产生 44 个结果。我的主要目标是合并两个查询以过滤 domain_id 上的结果。当我将 domain_filter 写为查询时,它产生了过滤结果

上面合并的查询会产生正确的结果。但我认为这样使用它是错误的。我想使用 ES 过滤器。有人可以帮我弄这个吗?

使用 query_string.and(domain_filter) 生成的详细查询

以上产生了错误的结果

预期的:

0 投票
1 回答
316 浏览

elasticsearch - 弹性搜索空白“应该”返回结果

我正在should对索引运行任何空列表的查询。我希望它返回 0 个结果,因为没有should要匹配的查询/过滤器:

(语法很耐嚼,但非常接近常规 ES)

但是,它会返回索引中的所有文档。这是预期的行为吗?有没有办法让我should: []总是返回 0 个文档?

0 投票
1 回答
201 浏览

ruby-on-rails - elasticseach 如何在请求正文中添加搜索类型

我有一个查询,我使用 search_type 作为

效果很好,并给出了我想要的结果。

我也可以像这样在正文中指定解释:

但我想在正文中将 search_type 指定为 dfs_then_fetch 。如果我做

它引发错误:

为什么我不能在正文中指定搜索类型以及如何解决?我需要它在正文中,因为我正在使用不允许传递 URL 的第三方宝石耐嚼。

0 投票
2 回答
658 浏览

ruby-on-rails - Elasticsearch 查询没有返回正确的数据

我正在使用Chewy gem 来集成Elasticsearch集成到我的 Rails 项目中。Listing我为一个名为 ( ) 的模型和我使用 Chewy es dsl 的搜索界面设置了索引。

Listings_index.rb

列表搜索.rb

第一个问题是过滤器apt_type_filter。它不会返回正确的数据。

第二个问题是当我使用sorting我得到一个 ES BadRequest 错误的方法对数据进行排序时:

这是 Chewy 的索引Query对象的输出:

任何帮助都会很棒。谢谢。

0 投票
0 回答
301 浏览

ruby-on-rails - 在一个环境中使用 Chewy gem 的 Rails 4 应用程序上的 ElasticSearch Fielddata 错误,但在另一个环境中没有

我们有一个 Rails 4 应用程序在两个类似的环境中运行,staging并且production.

最近,这个错误开始出现在本地开发环境和暂存环境中,但在生产环境中没有发生。

我知道ElasticSearch 文档解释了如何解决这个错误。但是,我想知道在这些环境中触发错误的原因是什么,因为使用的 ES 配置和查询在登台和生产中是相同的。

0 投票
2 回答
1038 浏览

ruby-on-rails - 如何使用点符号访问 Chewy 结果?

我正在使用Toptal 的 Chewy gem来连接和查询我的 Elasticsearch,就像 ODM 一样。

我将Chewy与 Elasticsearch 6、Ruby on Rails 5.2 和 Active Record 一起使用。

我已经像这样定义了我的索引:

我的模型:

这里的问题是,当我使用 Chewy 执行任何查询时,客户数据会被反序列化为哈希而不是对象,并且我不能使用点符号来访问嵌套数据。

如何使用点符号 ( result.customer.name) 访问嵌套关联?或者反序列化对象(例如结构)中的嵌套数据,这允许我使用点表示法?

0 投票
0 回答
98 浏览

ruby-on-rails - Chewy gem 将 Elasticsearch 日期类型反序列化为字符串

当使用 Chewy 从 ES 检索结果时,日期类型的结果作为 Ruby 字符串返回。

我的索引的定义就像:

检索结果时:

有没有办法自动反序列化 Ruby 日期对象中的这个日期字段,而不必使用 显式映射结果Time#parse

0 投票
1 回答
242 浏览

ruby-on-rails - 在 Rails 应用程序中使用耐嚼的 gem 更新用户索引失败

我的 Rails 应用程序中有一个用户正在尝试手动索引。在我正在做的控制台中:

但索引的结果是:

...注意让我认为命令没有运行的空白字段?我是否正确运行 update_index 命令?