【问题标题】:Configuring Sphinx to index a dynamic set of tables配置 Sphinx 以索引一组动态表
【发布时间】:2011-03-19 02:04:07
【问题描述】:

我正在设置一个新的 WordPress 3.0 多站点实例,并希望在数据库服务器上使用 Sphinx 来为主要网站提供动力搜索。理想情况下,该主站点将提供搜索其内容(帖子、页面、cmets、会员资料、活动更新等)以及作为网络一部分的所有其他站点的能力。因为我们会定期向网络添加新站点,所以我希望能够将这些新生成的表动态添加到 Sphinx .conf 文件中(而不是每次添加新站点时都编辑文件并重新索引网站)。

不幸的是,MySQL doesn't seem to support wildcards when specifying the table(s) 在查询字符串中。 best solution I've come across for grabbing a dynamic set of tables is grepping 但我很确定我不知道如何在 .conf 文件中执行此操作(除非可以通过魔法魔法)。

是否可以动态指定要添加到 Sphinx 索引的表?或者这会导致我使用错误工具的性能问题吗?

【问题讨论】:

    标签: mysql wordpress search sphinx


    【解决方案1】:

    您可以尝试动态修改 .conf 文件。

    【讨论】:

      【解决方案2】:

      您可以从聚合了许多表的 MySQL 视图中进行查询。您必须在每次更改博客列表时重新创建视图,但我相信所有的钩子都可以支持这一点,并且构造视图查询应该很容易。

      更大的问题可能是尝试为 Sphinx 中的帖子找到合适的唯一记录 ID。它必须是一个直接的 INT,但是来自不同博客的帖子 ID 会相互冲突。

      【讨论】:

        【解决方案3】:

        我认为您可以在 MySQL 中对感兴趣的表(例如帖子、cmets 等)创建触发器(INSERT/UPDATE/DELETE),并将数据迁移到由 Sphinx 实时索引的集中式全局表。

        重点是如何自动创建这些触发器?您可以运行 cron 作业来扫描 MySQL 中的新表,或者我相信您可以编写一个简单的 Wordpress 插件,该插件会在博客被激活时挂钩。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-11
          • 1970-01-01
          相关资源
          最近更新 更多