【问题标题】:postgres full text searchpostgres 全文搜索
【发布时间】:2009-07-19 11:02:00
【问题描述】:

我正在做一个基于 asp.net mvc 框架的网络项目。作为 db 我正在使用 postgre SQL。问题是如何在我的应用程序中组织搜索。一种选择是使用 .net 库,例如 lucene.net。另一种选择是使用 Postgre 全文搜索。那么最好的选择是什么?

【问题讨论】:

    标签: postgresql full-text-search


    【解决方案1】:

    我没有在生产环境中运行过 postgres,但是我在一个测试数据库上使用过它,其中包含大量(我认为)数据。索引大约 600,000 行平均 3 个单词的文本字符串会创建一个 120MB 的全文索引。 每个搜索词的第一个索引之后,查询非常快。看起来每个术语的索引必须从磁盘拉到内存中。我还没有找到一种在启动时将整个索引拉入内存的方法。一些最初的缓慢可能与磁盘 IO 有关,因为我在单个笔记本电脑 HD 上运行。我也不确定 120MB 的索引是否需要 120MB 或更多的 DB 内存。

    对于生产应用程序,我们使用 Lucene for Java,它的性能非常好 - 具有几 GB 索引数据的亚秒级响应。我看到的 Lucene 的优点是 1)它独立于 DB 和 2)可分发。对于#1,这可能不是问题,但这意味着无论您的底层数据库是什么,您都可以使用相同的索引代码。对于#2,这取决于应用程序有多大。 Lucene(尤其是 Hadoop)被设计为多线程的,因此您可以将索引存储在共享驱动器上并让多台机器同时运行搜索(请注意,索引仍然是单线程的)。你是否想要这个取决于你的架构是什么。您希望拥有 1 个大型 DB 还是 1 个小型/中型 DB 以及一些支持它的小型索引服务器?

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多