搜索引擎Lucene vs数据库搜索

时间:2011-01-09 10:22:48

标签: mysql lucene search-engine

我正在使用MySQL数据库并且一直在使用数据库驱动的搜索。数据库引擎和Lucene搜索引擎的优缺点是什么?我想就何时何地使用它们提出建议?

4 个答案:

答案 0 :(得分:30)

我建议你阅读Full Text Search Engines vs. DBMS。单行将是:如果您的大部分用例是全文搜索,请使用Lucene。如果您的大部分用例是连接和其他关系操作,请使用数据库。您可以使用混合解决方案来处理更复杂的用例。

答案 1 :(得分:25)

如果要对文本文档(任意长度)进行索引并在这些文档中搜索文本,请使用Lucene,返回与搜索查询匹配的文档的排序列表。 典型的例子是Google等搜索引擎,它使用像Lucene这样的文本索引器来索引和查询网页内容。

在像Mysql这样的数据库上使用Lucene进行索引和搜索文本的优点是:

  • 面向开发人员 - 用多种语言分析,解析和索引文本信息(例如词干,复数,同义词,标记化)的工具。 Lucene也非常适合文本搜索。
  • 为用户 - 高质量的搜索结果。 Lucene使用非常好的similarity function(比较每个文档的搜索查询),其核心是余弦相似度和反向术语/文档频率。这样可以获得良好的搜索结果,而且前期只需要很少的调整。

很多useful info on Lucene here

答案 2 :(得分:2)

我们在工作中使用Sql Server来进行一些使用全文搜索的查询。在大量数据的情况下,Sql在FullText搜索返回的结果集与查询的其余部分之间建立内部联接,如果数据库在低功率机器上运行(20GB数据为2GB ram),则可能会很慢。将相同的查询切换到Lucene可以大大提高速度。

答案 3 :(得分:1)

Lucene搜索具有索引的优势。 This帖子可以帮助您了解lucene。