SphinxSearch或蜘蛛 - 哪一个可供选择?

时间:2010-05-28 00:07:11

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

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

目标是为上述所有网站创建统一的搜索功能。也就是说,如果有人在SiteA中搜索一个术语,搜索结果将自动获得SiteB,SiteC,SiteD和Site E的结果。搜索结果应显示在他们找到的网站下。

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

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

我不太清楚sphider会如何在这里发挥作用所以需要你的意见。

狮身人面像还是蜘蛛?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

  

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

     

手动完成分区。你应该

     

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

     

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

     

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

     

并查询此索引。

     

此索引仅包含对其他本地和远程索引的引用    - 因此无法直接重新编制索引,您应该重新索引它引用的索引。