问题标签 [elasticsearch-model]
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 - 在 Rails 中使用 elasticsearch-model 保存特定字段
我在 Rails 4 项目中使用 elasticsearch-model gem 将我的用户存储在 MySQL 和 Elasticsearch 中。在我的项目中,Elasticsearch 部分用于查找具有某些 MySQL 字段(如 geo_point、birthdate、gender 等)的人……但并非我在 MySQL“用户”表中的每个字段都对用户搜索有用。
所以,我想将所有用户字段存储在 MySQL 中,并且只存储用户在 Elasticsearch 中搜索所需的字段。
为了在创建时只存储必填字段,我重写了方法“as_indexed_json”并使用了:
在创建时,一切都很好。但是,当我使用应该只保存在 MySQL 中的字段来更新用户时,无论如何它都会将其添加到 Elasticsearch 中。
例如,我的用户模型有“id”、“gender”、“is_premium”、“status”、“created_at”、“birthdate”、“location”。在 Elasticsearch 中,我只想保存“id”、“gender”、“birthdate”、“location”
我怎样才能做到这一点?谢谢你的帮助。
ruby-on-rails - 如何在 Elasticsearch-rails 和 Elasticsearch-model 中表达这个 SQL?
我使用了 gem elasticsearch-rails 和 elasticsearch-model,我很难在 elasticsearch-rails 中编写这个查询。
在我之前的项目中,我使用了“轮胎模型”,我使用了这样的东西:
filter :bool, must: {and: [{term: {field with options}}, {term: {field with options}}]}
,它适用于轮胎模型
但是如果我在 elasticsearch-rails 中使用这样的东西,它会抛出丢失的过滤错误我写这样的东西来过滤活动记录:
在上述方法中,我想添加带有 bool 选项的组合过滤器。谁能指导我?
ruby-on-rails - rails elasticsearch搜索嵌套的json字段
我将 elasticsearch-model gem 用于具有has_many
关系的模型。为了匹配文档,假设模型是Article
并且关系是has_many categories
。所以我按如下方式编写了客户序列化程序(直接来自文档):
序列化似乎有效。示例文章的 as_indexed_json 的结果包含一个"categories" => {"title"=> "one", "title"=> "two", "title"=> "three"}
块。
我正在苦苦挣扎并且无法在文档中找到的是如何搜索这个嵌套字段。
这是我尝试过的:
从嵌套查询的弹性搜索文档中,我认为它应该如下所示:
但是当我这样做时,r.results.first
我得到一个错误:nested object under path [categories] is not of nested type]
...
我尝试添加将序列化程序中的一行更改为:include: { categories: { type: "nested", only: :title}
但这并没有改变任何东西,它仍然说类别不是嵌套类型。
当然,我尝试只查询没有任何嵌套的字段,如下所示:
但这不会返回任何结果。
全文搜索如下:
返回结果,但当然我只想在类别字段中搜索“一个”。
任何帮助将非常感激!
ruby-on-rails - Elasticsearch rails/ Elasticsearch模型搜索模型关联
我有一个名为的模型Movie
,如下所示:
当我这样做时Movie.first.as_indexed_json
,我得到:
但是当我这样做时,Movie.search("Christopher Lloyd").records.first
我得到:=> nil
。
我可以对索引进行哪些更改以搜索与搜索的演员相关的电影?
ruby-on-rails - 用于自动完成的 Elasticsearch 嵌套查询
我想确保我以正确的方式思考这个问题。我正在尝试使用 Elasticsearch 自动完成嵌套项目。我有一个列表,一个列表有很多项目。我想使用 ES 返回匹配的项目名称,如果它们存在于当前列表中,则通过传递列表名称和项目名称以在 Elasticsearch 中搜索,对它们进行更强烈的加权。
理论上我可以简单地单独索引项目并以这种方式搜索它们,但我宁愿通过列表文档搜索它们,以便我可以控制相关性。
我不知道如何返回与放入的内容几乎匹配的项目。这是我的设置...(使用 Elasticsearch-Rails 和 Elasticsearch-Model 的 Rails)
索引映射:
JSON:
这是我调用的搜索方法:
这是一个示例查询...
这是结果...
因此,我将“疯狂的胶水”视为列表中的一个项目,但它是众多项目之一 - 当有人开始输入项目名称时,我可以在这里开箱即用地用于自动完成目的
有没有办法使用嵌套查询、过滤器或其他东西来做我想做的事情?对 Elasticsearch 来说相对较新,所以我可以在最终解决方案上使用一些帮助。如果我没有以正确的方式考虑这一点而应该简单地索引项目,我也可以这样做,但只是好奇是否有办法使这项工作!
编辑 - 这是进入 Elasticsearch 的查询:
elasticsearch - 在elasticsearch中搜索字幕数据
具有以下数据(简单 srt)
在 Elasticsearch 中索引它的最佳方法是什么?现在有一个问题:我希望搜索结果突出显示链接到时间戳指示的确切时间。此外,还有多个 srt 行重叠的短语(final approach
例如上面的示例)。
我的想法是
- 将 srt 文件索引为列表类型,时间戳是索引。我相信这与重叠多个键的短语不匹配
- 创建仅索引文本部分的自定义标记器。我不确定 elasticsearch 能在多大程度上突出显示原始内容。
- 仅索引文本部分并将其映射回弹性搜索之外的时间戳
还是有另一种选择可以优雅地解决这个问题?
ruby-on-rails - 从大 JSON 文件索引/导入数据
有没有人尝试从 JSON 文件向 ES 添加/创建索引。我正在寻找可以将大量数据从 JSON 文件直接“导入”到 ES 的解决方案。
到目前为止,我发现了两个插件。
首先是用于 Elasticsearch 的 FileSystem River。这个 ES 插件的问题是插件与最新版本的 ES 或其他插件不兼容。无论如何,我无法让它发挥作用。
我的 JSON 文件是有效文件,因此文件文件没有问题。
第二个插件Elasticdump。用于备份、从备份恢复和轻松将数据传输到其他分类器的出色 ES 插件。但是直接从文件列表中“导入”/索引是没有好处的。
ES中也有Bulk Api,但尚不清楚它是否可用于从文件“导入”。
有什么想法/例子/方向吗?
elasticsearch - Elasticsearch - 将文档拆分为单独索引的含义
假设我有 100,000 个来自不同客户组的文档,它们的格式相同,信息类型相同。
来自各个客户组的文档会在一天中的不同时间刷新。有人建议我为每个客户组提供自己的索引,这样当我的个人客户索引在本地刷新时,我可以为该客户创建一个新索引并删除该客户的旧索引。
将数据拆分为多个索引并使用别名进行查询的含义是什么?具体来说:
- 它会增加我的服务器硬盘要求吗?
- 它会增加我的服务器 RAM 需求吗?
- 通过查询别名查询所有索引,elasticsearch 会不会比较慢?
感谢您提供任何帮助或建议。
ruby-on-rails - Rails Elasticsearch-model 模型映射 - raw 和 not_analyzed
我在我的应用程序中使用 Elasticsearch-rails gem。我需要模型中的索引映射看起来像您在下面看到的 JSON(仅缩短为仅包含相关部分)。我不明白的部分与“名称”有关。如果这是我需要的样子,该映射将如何设置?
JSON 映射我想将 Rails 模型输出
当前 Rails 模型映射
如何将模型中“名称”的索引设置为看起来像 JSON?
非常感谢!
ruby-on-rails - elasticsearch无法在ruby中查询路径
我有一个弹性搜索索引“事件”-在该索引中有一个类型“事件”。
事件对象有一个“场地”,它具有各种属性,包括一个“名称”——所以简化的结构是:
现在,我正在使用 elasticsearch-rails - 使用查询 dsl 列出事件、搜索等一切正常 - 但是如果我想列出具有特定名称的场地的所有事件怎么办?
我假设这样的事情应该是可能的:
但我收到以下错误:
其次是包含大量此类内容的大量堆栈跟踪:
ParseExceptions 提示格式错误的 json - 但我不确定为什么。
简单的搜索
工作正常,所以我猜这只是查询的结构错误。
我尝试过切换单引号/双引号,尝试更密切地关注此页面上的示例:
https://www.elastic.co/guide/en/elasticsearch/guide/current/denormalization.html
一切都无济于事,想知道是否有其他人遇到过这种情况,并可以建议如何在 ruby 中工作。