【问题标题】:Using Solr with MySQL将 Solr 与 MySQL 一起使用
【发布时间】:2011-06-04 00:20:12
【问题描述】:

我在这里浏览了一些关于 MySQL 和分面搜索的问题,我看到一个建议使用 Solr 的回复。

在我的 MySQL 数据库中,我有许多用于产品、供应商、消息、用户等的表 - 所有表都是相互关联的。我将如何使用 Solr 对产品进行分面搜索?据我了解,我必须继续从 MySQL 提供 Solr 产品数据——但我该如何处理索引数据呢?添加新产品后是否立即建立索引?我要批量索引吗?如何处理 Solr 准确表示在我的 MySQL 数据库中找到的数据? (插入、删除等)

提前致谢。

【问题讨论】:

  • 您的应用程序内置什么语言和框架?有很多优秀的 Solr 客户端(例如 Sunspot for Ruby 应用程序)可以非常透明地处理这种非规范化和更新。
  • 我目前在 PHP 中使用 CodeIgniter 框架。有什么可以推荐给我的吗?

标签: mysql solr faceted-search


【解决方案1】:

SOLR 是一个 JAVA 应用程序,但您可以使用任何提供 HTTP GET/POST 功能的语言来访问它。

如果您有需要,请参考http://wiki.apache.org/solr/DataImportHandler 但在开始索引部分之前,请先阅读 lucene.apache.org /solr /tutorial.html 上的教程

【讨论】:

    【解决方案2】:

    如果使用数据导入处理程序,请使用delta import command

    【讨论】:

    • 请在 Jarekrozanski 的回复中查看我的问题。谢谢。
    【解决方案3】:

    看看data import handler。除了批量更新,您还可以通过调用update request handler 来触发更新。您必须从您的应用程序中调用它,但您也可以创建适合您需要的自定义更新请求处理程序。

    【讨论】:

    • 如何处理删除?据我了解,数据导入处理程序主要处理插入和更新。谢谢。
    • 选中此项以处理 Solr 中的删除。 stackoverflow.com/questions/1555610/…
    • 添加、更新和删除由更新处理程序处理。操作取决于发送的 XML 消息。检查此资源:wiki.apache.org/solr/…。在极端情况下,您可以编写将附加到数据库表上插入/更新/删除触发器的存储过程。但是,如果您的数据库之上有应用程序,我会在其中添加索引维护逻辑。
    • 请注意,如果您有大量使用大量索引的大型索引,您可能会考虑使用多核。在这种情况下,您允许在构建/更新第二个核心时搜索一个核心。一旦满意,或者在给定的时间间隔内,您可以将次要交换为主要并开始构建主要(例如使用数据导入处理程序进行批量更新)。 wiki.apache.org/solr/CoreAdmin#SWAP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2013-02-26
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多