【问题标题】:How can I set the value of objectID in algolia rails?如何在 algolia rails 中设置 objectID 的值?
【发布时间】:2015-07-31 06:43:28
【问题描述】:

我在我的 rails 应用程序中使用了 algolia gem。我目前正在将 3 种不同的模型组合到一个索引中,以组合搜索我们的案例研究、博客文章和视频。

我遇到了麻烦,因为索引一个模型会覆盖另一个模型中的对象,因为 Algolia 似乎使用 rails 生成的 ID 映射到 objectID 列。

posts.rb

algoliasearch auto_index: false, if: :open?, index_name: "combined_#{Rails.env}" do
    attribute :objectID do
      "p#{id}"
    end
end

video.rb 和 case_studies.rb

以同样的方式,我尝试为视频设置attribute :objectID to "v#{id}",为案例研究设置attribute :objectID to "c#{id}"

这种虚拟属性样式不起作用,所以我尝试在数据库上创建一个实际的字符串列并以这种方式重新索引无济于事。

如果有人在这里有任何想法,我将不胜感激,但我的能力不足。

【问题讨论】:

    标签: ruby-on-rails-4 indexing algolia


    【解决方案1】:

    您可以在每个模型中使用custom ObjectID

    模型内部

    def custom_algolia_id
      "v#{id}"
    end
    
    algoliasearch id: :custom_algolia_id do
      attribute :title, :length
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2010-09-24
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      相关资源
      最近更新 更多