Sunspot:Delta 索引是如何工作的?

发布于 2024-11-24 18:20:55 字数 363 浏览 1 评论 0原文

我正在研究太阳黑子作为我们项目的可能索引解决方案。但有一件事,我没有找到任何信息:如何处理数据的更新。如果我“设置”了我想要索引的类,solr 服务器如何收到有关对象更改的通知?

另外,考虑以下场景:

我有一个“has_many”同义词的类艺术品,我会这样构建我的索引:

Sunspot.setup(Artwork)
  text :synonyms do
    synonyms.map { |s| s.name }
  end
end

给定一件艺术品“蒙娜丽莎”,其同义词“La Gioconda”和“不是那么大的微笑”。当我现在更新最后一个同义词时,solr 会收到通知吗?它会重建“蒙娜丽莎”的索引吗?

I am investigating Sunspot as a possible indexing solution for our project. There is one thing, I don't find any information about though: How are updates to the data handled. If I have "setup" the class I wish to index, how does the solr server get notified about changes to the object?

In addition, consider the following scenario:

I have class Artwork which "has_many" Synonym and I would construct my index this way:

Sunspot.setup(Artwork)
  text :synonyms do
    synonyms.map { |s| s.name }
  end
end

Given an artwork "Mona Lisa" with the synonyms "La Gioconda" and "Not so big smile". When I now update the last synonym, would solr be notified and would it rebuild the index for "Mona Lisa"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云淡风轻 2024-12-01 18:20:55

如果您使用 Sunspot::Rails 和 ActiveRecord 模型,则有一个生命周期挂钩,每当模型保存时,它就会自动更新 Solr 中的记录数据。但是,上面看起来您正在使用纯 Sunspot,在这种情况下,您需要设置自己的生命周期挂钩,例如:

after_save { |artwork| Sunspot.index(artwork) }

对于更新依赖模型需要更新的任何情况,您还需要自己的生命周期逻辑Solr 中的父文档(例如直接更新到上面的 Synonym 模型)。

If you're using Sunspot::Rails and an ActiveRecord model, there is a lifecycle hook that will automatically update the record's data in Solr whenever the model is saved. However the above looks like you're using pure Sunspot, in which case you'll need to set up your own lifecycle hook, e.g.:

after_save { |artwork| Sunspot.index(artwork) }

You'll also need your own lifecycle logic for any situation in which updating a dependent model needs to update the parent document in Solr (e.g. updates directly to the Synonym models above).

日记撕了你也走了 2024-12-01 18:20:55

不,Solr 不存在这样的自动通知。由于同义词存储在 txt 文件中,因此您必须重新启动 solr 服务器,然后重新索引。任何 solr 配置都是相同的情况。

No, there is no such automatic notification exist with Solr. As the synonyms are stored in the txt file, you will have to restart solr server and then reindex. The same case with any solr configuration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文