问题标签 [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.
elasticsearch - ElasticSearch 嵌套查询 - 排除父文档
尝试排除其中一个子文档与查询不匹配的顶级文档。
对于下面的示例,我试图排除其中一个嵌套作业具有current: true
并且与company name: Elastic
. 但由于其中一个嵌套作业文档与current: false
and company匹配name: Elastic
,因此返回此文档。我正在使用嵌套查询,其中必须匹配公司名称和过滤器,其中 current: false。我怎样才能使它不返回以下文件?
ruby-on-rails - Elasticsearch 不索引子文档 - Ruby on Rails
我正在使用 elasticsearch-rails gem,并且我的订单对象在创建时没有被完全索引。这是我的代码:
当我调用 self.index_orders 时,一切都按预期工作。但是,在创建订单时,after_commit 函数不会索引 order_addresses,因为它们是在 as_indexed_json 函数中指定的。
我还没有找到其他人有这个问题。有谁知道如何在 after_create 中索引 order_addresses?
更新
我还没有找到解决这个问题的方法。任何帮助,将不胜感激。
ruby-on-rails - 您如何使用 Elasticsearch::Model.search() 跨多个模型预加载记录?
使用 elasticsearch-rails/elasticsearch-model gems。
我知道您可以在单个模型上使用代理执行以下操作:
MyModel.__elasticsearch__.search(search_hash).records.includes(:my_association)
我需要在包含相同关联的相似模型中进行搜索,这些关联我想要预先加载。尽管使用“未定义的方法”,但会出现以下错误。
Elasticsearch::Model.search(search_hash, [MyModel, MyOtherModel]).records.includes(:my_association)
两个.records
调用似乎都返回一个Elasticsearch::Model::Response::Records
对象,但似乎.includes
只对通过 ES 代理的单个模型有效。
跨多个模型搜索时,有没有办法轻松做到这一点?
ruby-on-rails - Elasticsearch::Transport::Transport::Errors::NotFound ([404] {"error":{"root_cause":[{"type":"index_not_found_exception"
不确定在本地环境中工作时elasticsearch
遇到这个奇怪的错误,我将不胜感激。谢谢
Elasticsearch::Transport::Transport::Errors::NotFound ([404] {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource. type":"index_or_alias","resource.id":"invoices","index":"invoices"}],"type":"index_not_found_exception","reason":"no such index","resource.type" :"index_or_alias","resource.id":"invoices","index":"invoices"},"status":404})
ruby-on-rails - 多对多 ElasticSearch - Rails
我正在使用 elasticsearch-rails gem,并且正在尝试搜索与另一个模型具有多对多关系的模型。
这是我的模型:
我知道 ES 不支持多对多关联,所以我相信我应该能够为每个客户文档索引一个关联位置 ID 的数组。我不知道该怎么做。因此,我希望能够搜索客户数据库并设置过滤器,以便仅搜索与特定位置关联的客户。
我目前没有任何映射。这主要是我需要帮助的地方。
这是我使用以前的项目构建的查询,该项目正确处理了产品数据库的过滤。除了按相关位置过滤外,我想在这里做同样的事情。
提前致谢。
elasticsearch - ElasticSearch 对存储桶结果应用限制
我的情况是,我对 ElasticSearch 结果应用了限制,但它对我不起作用。我已经阅读了 下面的ES 指南 是我的代码:
restaurant_ids 函数返回大约 5.5k 家餐厅,所以在这种情况下,我收到错误“circuit_breaking_exception”,“reason”:“[request] 数据太大,[] 的数据将是 [622777920/593.9mb],大于[622775500/593.9mb]"的限制。这就是为什么我想应用一些限制,这样我一次只能获得几百条记录。
谁能指导我哪里做错了?
ruby-on-rails - ElasticSearch 根据 restaurant_id 及其平均时间显示数据
我对 ElasticSearch 很陌生,我想知道是否可以根据 restaurant_id 显示数据,然后显示确认订单的平均时间。例如,我有文件:
以上是存储在ES中的文档,现在我必须根据restaurant_id显示数据,然后是平均时间。所以现在我使用下面的代码并显示错误“原因”:“[terms] unknown field [avg], parser not found”
elasticsearch - ElasticSearch 缺少聚合定义 [unique_users] 错误
我正在使用 ES 和 Ruby on Rails,我必须列出所有唯一用户,所以下面是我用来获取它的代码。
以下是回复:
这仅显示唯一用户的数量,但此查询不显示电子邮件列表,因此此查询中的问题在哪里。有人可以指导我吗?
现在我正在使用代码,它与用户列表一起工作正常,它很重要。
现在得到上面的代码响应是:
现在一切都很完美,但是响应中有些东西有点令人困惑,所以我必须删除它,即doc_count: 134因为我想保留users_count并删除doc_count。因此,为此我从方法中删除了过滤器:{ match_all: {} },然后出现错误Missing definition for aggregation [unique_users]
ruby-on-rails - ElasticSearch Aggregator with sorting by text/keyword
I have elasticsearch set up for searching across a products catalog's variants. Basically where:
Product has_many variants Variant belongs_to product
And the variant index json / mapping contains the product name.
I am trying to search variants, grouped by product id, bucket size of 1. I am able to do it and sort by min price, max price, etc.
This works:
This is (sort of) what I need next:
My last task is about sorting them alphabetically, but I dont seem to be able to sort by a keyword field (asc/desc) using an aggregator.
ruby-on-rails - 运行测试时的 ElasticSearch Rails resource_already_exists_exception
我正在尝试运行我的一项测试,该测试进行搜索,试图断言在搜索结果中包含记录,但与此同时,我收到一个Elasticsearch::Transport::Transport::Errors::BadRequest
错误:
当我在开发中执行搜索时,它按预期工作,但在测试中抛出这样的错误,在测试中我添加了导入和索引刷新,仅此而已:
任何帮助表示赞赏,作为改进代码的任何提示。
我在用着: