【问题标题】:SphinxSearch or a spider - which one to choose?SphinxSearch 或蜘蛛 - 选择哪一个?
【发布时间】:2011-02-24 22:25:45
【问题描述】:

我们拥有 SiteA 和 SiteB,它们共享同一个服务器和数据库,我们可以完全控制它们。 SiteC 、 siteD 和 siteE 也是我们拥有的一些网站,但它们位于不同的网络主机上。

我们的目标是为上述所有网站创建统一的搜索功能。也就是说,如果有人在 SiteA 中搜索某个词,搜索结果也会自动得出来自 SiteB、SiteC、SiteD 和 Site E 的结果。搜索结果应显示在找到它们的网站下方。

所有这些网站内容都存储在它们自己的数据库中。

如果我使用 SphinxSearch 来索引上述网站,那么我会要求那些我们无法完全控制的网站设置一个 Web 服务,我可以在其中下载数据库转储或 csv 文件以进行索引。

我不太确定 sphider 将如何在这里发挥作用,所以需要您的意见。

狮身人面像还是蜘蛛?

谢谢!

【问题讨论】:

  • 这两个工具相比有什么优势??

标签: search full-text-search search-engine


【解决方案1】:

Sphinx 是一个全文搜索引擎解决方案,而蜘蛛用于从互联网上获取内容。它们不是彼此的替代品。即使您使用蜘蛛,您仍然必须使用一些全文搜索引擎软件,例如 sphinx 或 lucene/solr。 所以你要先做一个决定:我要不要用 sphinx 来搜索?如果答案是肯定的,那么只剩下一件事了:如何索引内容以进行搜索?

sphinx 支持使用数据库或 XML 作为数据源。数据库作为数据源更受欢迎,因为准备和更新特定格式的 XML 文档非常繁琐(与维护数据库表相比)。所以我想最后你必须将所有数据存储到数据库中。正如您所描述的,所有数据都已在数据库中准备就绪,但有些数据库是您无法控制的。对于您自己的数据库,没有问题。对于你无法控制的数据库,我建议你使用分布式 sphinx 搜索:http://sphinxsearch.com/docs/2.0.6/distributed.html

关键思想是横向分区(HP)搜索的数据 搜索节点,然后并行处理。

分区是手动完成的。你应该

在上设置几个 Sphinx 程序实例(索引器和搜索器) 不同的服务器;

使实例索引(和搜索)数据的不同部分;

在一些searchd上配置一个特殊的分布式索引 实例;

并查询该索引。

此索引仅包含对其他本地和远程索引的引用 - 所以它不能直接重新索引,你应该重新索引它引用的那些索引。

【讨论】:

    【解决方案2】:

    如果您可以要求其他网站的所有者免费为您提供内容,那么就不需要蜘蛛了。只需使用 sphinxsearch 来索引内容。

    如果您无法直接从它们那里获取内容,那么蜘蛛是您的唯一选择。这个问题没什么好考虑的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多