问题标签 [tire]
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.
ruby-on-rails - Tire + Elasticsearch:如何搜索值范围?
到目前为止喜欢轮胎和弹性搜索,但无法弄清楚如何在范围之间搜索值,例如:
- 年龄从年龄到
- 18 至 20
并返回年龄在这两个范围之间的所有个人资料?我有一个整数列 Profile.age
到目前为止不完整的功能
ruby-on-rails - 轮胎未找到部分单词(搜索 2 个字段)
我想做的事:
- 我有一个模型“项目”,其中包含我希望弹性搜索搜索的 2 个字段:标题和描述。
- 我希望搜索找到部分单词,例如:bicycl 应该与自行车、自行车等匹配...
现在的情况:
- 搜索只显示完美匹配
这是我现在在我的 Item 模型中拥有的内容:
ruby - 映射 ElasticSearch GeoPoint 字段
我们存储看起来像这样的文档:
我们需要announcement.location.slug
成为not_analyzed
(毕竟这是一个蛞蝓)
但是映射不会,我们有这些设置:
注意:语法中的相同映射curl
也不起作用,但对 SO 的可读性较差,所以我发布了 Ruby 代码。
似乎geo_point
正在覆盖文档该部分的所有其他映射。文档似乎同意。
我确信有一种方法可以使用该lat_lon
选项,但我找不到任何关于它如何工作的文档。(我假设一个人用设置映射个人lat
和lon
字段lat_lon
)
也有可能,我曾希望使用字段multi
类型,但这似乎不适用于主文档属性的整个子树。
如何在不必更改整个数据模型的情况下继续操作?
ruby-on-rails - 轮胎和 Elasticsearch SearchRequestFailed SearchPhaseExecutionException
我用弹性搜索实现了轮胎。在本地,我的项目运行良好,搜索索引也没有问题。但是当我将我的应用程序部署到我的服务器时,我收到了以下错误消息:
Tire::Search::SearchRequestFailed (500 : {"error":"SearchPhaseExecutionException[未能执行阶段 [query_fetch],完全失败;shardFailures {[hDTlT_K_Sl6P5regwKNJyg][articles] [0]: QueryPhaseExecutionException[[articles][0]: query[ConstantScore(NotDeleted(cache(_type:article)))],from[0],size[25],sort[!]: 查询失败[无法执行主查询]]; 嵌套: IOException[无法排序对于每个文档具有多个值或每个字段具有多个标记的字符串类型]; }]","status":500}):
我相信我的文章存储在我的索引中,因为创建它们时我没有收到任何错误。我还尝试使用以下方法手动运行相同的查询:
我得到了几乎相同的回应:
{"error":"SearchPhaseExecutionException[未能执行阶段 [query_fetch],完全失败;shardFailures {[hDTlT_K_Sl6P5regwKNJyg][articles][0]:QueryPhaseExecutionException[[articles][0]:query[ConstantScore(NotDeleted(cache(_type: article)))],from[0],size[10],sort[!]: Query Failed [Failed to execute main query]]; 嵌套: IOException[Can't sort on string types with more than one value per doc , 或每个字段多个标记]; }]","status":500}
那么有人可以指出我正确的方向吗?我复制了我在本地机器上使用的确切 sam 配置。太奇怪了,它在服务器上不起作用。
我在这里想念什么?
非常感谢提前
编辑:
我发现我正在尝试执行的排序导致了这个问题。这也与我的文章对象到弹性搜索的映射有关。
我试图排序的领域的东西放在 not_analyzed 我是对的吗?如果我只映射一个字段,是否需要显式映射我的所有字段?
ruby-on-rails - 如何将轮胎(elasticsearch)中的构面添加到 has_many 关联
我想向 has_many 关联添加方面。
我正在从 PostgreSQL 全文搜索迁移到弹性搜索。
目前我有以下 SQL 查询来进行搜索(PostgreSQL 方式):
我查看了关于类似问题的 SO 答案(HABTM 协会)
并用类似的方法实现了代码
-Sentence AR类
但是这段代码不起作用。
调用 API 后出现错误:
{
}
在这里,JSON 错误被解析为更“人性化的可读形式”:
知道如何在轮胎中正确实现 has_many 关联吗?
PS是的,我在更改轮胎映射后运行了 rake 任务。
编辑:
好的。我500
通过更改代码中的一行来修复错误(术语 => 术语)。
但是现在我的搜索结果是空的?有人知道怎么修这个东西吗?也许我应该使用其他类型的匹配(我目前正在使用boolean
+must
组合)。
ruby-on-rails - 轮胎(弹性搜索)无比较
对于轮胎(ElasticSearch 包装器 gem),您如何查询和过滤出某个属性具有 nil/null 值的索引记录。例如,如果我有这种关系
我已将文章编入索引,但我想避免使用topic_id = nil拉回记录。我尝试了这段代码,但没有奏效。
ruby-on-rails - RSpec & Tire gem: 测试 Tire::Results::Collection
尝试理解围绕轮胎 gem 进行测试的语法。
此控制器规范(默认来自脚手架模板)失败
因为
如何编写规范以使其期望轮胎结果集合而不是活动记录对象数组?或者,有没有更好的方法来解决这个问题?
FWIW-
和模型:
ruby-on-rails - 轮胎宝石:如何访问 Elasticsearch 的“高亮”属性?
我有一些在 Elasticsearch 中被索引的 Rails 模型(通过 Tire gem)。我可以索引新文档并查询现有索引。
我似乎无法从我的 Rails 应用程序中获取附加到记录的亮点。但是,当我直接highlight
通过curl
.
当我尝试访问highlight
我的记录属性时,我得到:undefined method 'highlight' for #<Report:0x007fe8afa54700>
但是如果我使用curl
我可以看到highlight
返回到轮胎......
模型中的搜索方法:
ruby-on-rails - id 字段的 Elasticsearch 构面值
我在带有轮胎的轨道上使用弹性搜索。
我的代码:
我必须查询数据库以检索 elasticsearch 返回的所有品牌的名称。有没有办法从elasticsearch返回这些值(brand_name)?
ruby-on-rails - 轮胎宝石:在 Elasticsearch 中索引 Rails 父/子关系
我很难理解 Tire 的语法、Elasticsearch 的语法以及它们是如何映射在一起的。
我已经通过轮胎成功地在 Rails 应用程序中索引了 PDF。但是我需要将完整的报告分解为单独的页面,以便查询可以更加细化。将 PDF 拆分为单独的页面并将它们添加到belongs_to
完整报告模型的页面模型很容易。我正在努力的是如何设置映射以及在哪里?!?我想利用 Elasticsearch 的Parent Field映射来实现这个最终目标。
希望有人可以让我直截了当。
报告模型(如果我将整个 PDF 索引为 ,这对我有用:attachment
):
页面模型: