1

我们有一个使用 postgres 数据库的应用程序,它有大约 50 个表。每个表包含大约 300 万条记录(平均)。这些表时不时地用新数据更新。现在,我们想在我们的应用程序中实现搜索功能。一次需要在一个表上执行搜索(不需要连接)。

我已经阅读了有关 postgres 全文支持的信息,这看起来很有希望。但与它相比,Solr 似乎超级快。我可以将现有的 postgres 数据库与 Solr 一起使用吗?如果表得到更新,我是否需要重新索引所有内容?

4

2 回答 2

2

绝对值得一试 Solr。我们将许多涉及在多个表上的 JOIN 查询以及对不同字段进行排序的 MySQL 查询移至 Solr。我们对 Solr 的搜索速度、排序速度、分面功能和高度可配置的文本分析/标记化选项感到非常满意。

If tables get updated would I need to re-index everything again?

不,您可以运行增量导入仅重新索引您的新文档和更新的文档。请参阅https://wiki.apache.org/solr/DataImportHandler

开始使用https://lucene.apache.org/solr/4_1_0/tutorial.html以及其中的所有链接。

于 2013-02-27T06:17:48.290 回答
1

既然没有人跳进来,我会回答的。

恐怕这一切都取决于。这取决于(至少)

  • 每个“文档”中的文本有多大
  • 您希望搜索的灵活性如何
  • 数据库和文本搜索之间需要多少集成
  • 多快才够快
  • 你对两者都有多少经验

当我有一个需要一些文本搜索的数据库时,我只是使用了 PG 的内置选项。如果我没有对数据库的超级用户访问权限,或者已经在运行大型 Java 设置,那么 Solr 可能会很有吸引力。

于 2013-02-26T20:30:49.913 回答