在阅读 Tyre
文档时,我的印象是您应该使用mapping
或to_indexed_json
方法,因为(我的理解是。)mapping
使用来填充to_indexed_json
。
问题是,我找到了一些同时使用两者的教程。为什么?
基本上,我的应用程序现在可以与一起使用,to_indexed_json
但是我无法弄清楚如何设置某些属性的提升值(因此,我开始查看映射的原因),我想知道同时使用这两个属性是否会产生一些冲突。
尽管mapping
和to_indexed_json
方法是相关的,但实际上它们有两个不同的目的。
该 mapping
方法的目的是为索引内的文档属性定义 映射 。您可能希望将某些属性定义为“
not_analyzed”,这样就不会将其分解为 令牌 ,也不会为该属性设置特定的分析器,或者(如您提到的)索引时间 提升 因子。您还可以定义多
字段 属性, 日期 类型的自定义格式等。
然后使用该 映射 。当 Tire
自动为您的模型创建索引时。
该 to_indexed_json
方法的目的是为文档/模型定义 JSON序列化 。
该默认to_indexed_json
方法不使用你的映射定义,只使用在映射定义的属性-
的基础上,如果你关心不够定义 的映射 ,在默认情况下 轮胎 指标只定义映射属性。
现在,当您想要严格掌握如何将模型实际序列化为JSON以进行 Elasticsearch时
,只需定义自己的to_indexed_json
方法即可(如README指示)。
这个自定义MyModel#to_indexed_method
通常不关心 映射
定义,而是从头开始构建JSON序列化(通过利用ActiveRecord的to_json
,使用JSON构建器(例如jbuilder)或仅构建普通的旧
Hash 并调用Hash#to_json
)。
因此,要回答您问题的最后一部分,请同时使用mapping
和,to_indexed_json
绝对 不会
造成任何冲突,实际上,在Elasticsearch中使用高级功能实际上是必需的。
总结一下:
mapping
方法为搜索引擎定义模型的映射to_indexed_json
方法定义搜索引擎如何查看您的文档/模型。问题内容: 我正在将ElasticSearch与Tire一起使用来对一些ActiveRecord模型进行索引和搜索,并且我一直在寻找索引和搜索关联的“正确”方法。我还没有找到最佳解决方案,所以我想问问是否有人采用他们认为确实有效的方法。 作为一个示例设置(已完成,但说明了问题),假设我们有一本书,带有章节。每本书都有标题和作者,以及许多章节。每章都有文字。我们希望为书的字段和章节的文本建立索引,以
问题内容: 是否可以使用Tire更新elasticsearch设置?我有这个curl命令,我想自动运行。 该值可通过轮胎获得,但我不确定如何应用。 问题答案: 可能,但是很丑:) 在将来的版本中会变得更好…
问题内容: 我有一些使用Tyre gem在Elasticsearch中建立索引的PDF附件。一切都很好,但是我将拥有许多GB的PDF,我们可能会将PDF存储在S3中以进行访问。现在,base64编码的PDF存储在Elasticsearch _source中,这将使索引很大。我想对附件建立索引,但不进行存储,并且我还没有弄清楚正确的方法可以放入Tire的“映射”块中以防止它出现。现在的代码块是这样的
用户模型: 我想添加基于account_id的路由。请帮助如何实现这一点。我看到有两种方法可以指定路由。 在使用路由字段映射期间 使用别名 搜索查询: 我们需要在搜索查询中指定什么吗?当我指定上面指定的映射(带有路由)时,索引不会发生。没有路由,它工作很好。
问题内容: 我在让NEST的DeleteByQuery方法工作时遇到了一些困难。 很简单,查询永远找不到要删除的内容,我也不知道为什么。我正在使用相同的查询来返回记录(使用搜索),并且一切正常。 我只是刚刚开始使用NEST,所以我确定这是一个非常简单的问题,而且我有点昏暗! 任何帮助/建议,不胜感激。 问题答案: 的是上的.NET方法支票是否相等。 如果您更改对它的呼叫,则应该可以使用。
我试图从ElasticSearch查询中检索嵌套数据,基本上是从电影模型中获取: 现在,我尝试了2个轮胎设置,但都只回馈电影片名,而不是评级或类别。例如。这些索引似乎只有: 这是我的电影模型: 我的搜索实验的分支在这里:https://github.com/mulderp/moviedb/tree/categories 我如何使搜索工作的方面,例如体裁-->评级。