gpt4 book ai didi

ruby-on-rails - 创建一个无数据库的 rails 模型,作为在 elasticsearch 中索引数据的 View

转载 作者:行者123 更新时间:2023-12-03 02:09:47 24 4
gpt4 key购买 nike

我正面临一个我还无法解决的复杂问题。

我将 Rails 4(edge) 与 postgresql 9、ElasticSearch 0.20.6 和 gem Tire (0.5.7) 一起使用。
我有多个链接在一起的表。例如:

代理有很多客户
客户有很多项目
项目有很多文件

我的目标是能够以两种方式索引文件:

  • 首先有一个索引,它只允许在所有文件中轻松快速地搜索。我仅通过使用轮胎就成功地做到了。我的索引有一个类型"file",它就像一个魅力。
  • 我想创建的另一个索引将包含一些文件信息,还有一些客户端和代理的属性。这是一个外部工具,它能够根据项目类别或客户位置等标准获取最佳文件...

  • 当我使用 postgresql 时,我想我可以 do a database view并从那里索引数据。我不确定这样做是否很好,尽管因为 View 会非常复杂,有多个连接。另外,我担心任何更新都会触发完整的数据库重新索引。

    我想知道是否有办法做一个纯轮胎模型并轻松触发它的任何链接表上的索引更新。
    例如,我将索引类型为 files_front 的数据。 .我会有一个模型 FilesFront其中 has_one :file每次我更新文件或任何父文件时,所有受影响的文件都会在 ES 中看到它们的值更新。

    我真的不确定如何做到这一点,所以欢迎任何建议。

    最佳答案

    拥有一个单独的、无表的或独立的模型是一个很好的解决方案。我认为这里的问题是连接 FileFront类到系统的其余部分。实际上,每当您更新 File或任何相关的Client etc. 对象,您需要更新 FileFront目的。

    您实际上可以使用 Model::Persistence到那个。所以对于每个 File你会有一个关联的 FrontFile ,您将在 File 中将其组装为 JSON并在 after_save 中创建/更新打回来。棘手的部分是确保对父对象的更改传播到文件,反之亦然。

    关于ruby-on-rails - 创建一个无数据库的 rails 模型,作为在 elasticsearch 中索引数据的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15972942/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com