如何在 algolia rails 中设置 objectID 的值?
How can I set the value of objectID in algolia rails?
我在 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}"
这种虚拟属性样式不起作用,所以我尝试在数据库上创建一个实际的字符串列并重新编制索引,但无济于事。
如果有人在这里有任何想法,我将不胜感激,我 运行 很低。
您可以在每个模型中使用 custom ObjectID。
在你的模型中
def custom_algolia_id
"v#{id}"
end
algoliasearch id: :custom_algolia_id do
attribute :title, :length
end
我在 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}"
这种虚拟属性样式不起作用,所以我尝试在数据库上创建一个实际的字符串列并重新编制索引,但无济于事。
如果有人在这里有任何想法,我将不胜感激,我 运行 很低。
您可以在每个模型中使用 custom ObjectID。
在你的模型中
def custom_algolia_id
"v#{id}"
end
algoliasearch id: :custom_algolia_id do
attribute :title, :length
end