Mysql搜索与搜索工具(CloudSearch,Sphinx,Solr ..)用于非文本搜索

时间:2013-07-22 11:46:20

标签: search solr full-text-search sphinx amazon-cloudsearch

我们有一个1M行的分类数据库,我们在其上进行大量过滤搜索。我们不做任何关键字搜索(不喜欢或任何事情),我们所做的就是根据标准(价格,房间数量,位置等)过滤行。

由于我们没有进行任何关键字搜索,我质疑是否应该使用搜索服务器?

有什么想法?

2 个答案:

答案 0 :(得分:2)

这是一个常见的MySQL问题,因为MySQL全文搜索非常差并且由于多种原因而受限制。几乎所有其他搜索技术都会大大提升搜索功能,功能和速度。缺点是你必须维护一个单独的系统并保持索引同步,这可能是一个痛苦/昂贵/容易出错。

这实际上是PostgreSQL真正发光的一个领域,因为它内置的搜索功能广泛,高度可配置,而且速度非常快。另外,使用简单的数据库触发器可以使索引保持最新。

如果搜索是您系统的重要组成部分,并且您正在搜索的所有内容都在数据库中,那么转移到PG可能比学习/维护专用搜索引擎更有意义。

答案 1 :(得分:1)

大多数搜索服务器不仅会搜索,还会比数据库更快地过滤大量数据。因此,如果您需要更好的性能,请使用搜索服务器。

要考虑的另一件事是开发成本:任何搜索服务器都需要一些努力来配置它并与系统集成。

我对Sphinx有一些经验,我喜欢它。现在我正在尝试将其实时索引与ORM集成,并避免任何数据库过滤。 Sphinx将搜索和过滤数据,返回找到的ID,InnoDB将只按ID选择数据(MySQL,特别是InnoDB表,它的确非常快)。

问问自己“数据库性能对我们来说是否足够?”并做出决定。