2

我目前正在开发一个网站,允许用户上传演示文稿、文档和电子书(例如 scribd 和 slideshare),所以我需要能够搜索文件的内容。我目前正在从 txt 文件中的文件中提取文本。当我使用 MySQL 时,我正在考虑 2 个选项:

  1. 将纯文本存储在单独的表中,并使用 mysql 的全文索引对其进行搜索。
  2. 使用倒排索引来存储单词并通过它们进行搜索。(2 个新表 - 单词和多对多与文档表)。现在在这种情况下,我可以做些什么来处理与结果更相关的重复词。

该文本将仅用于搜索。(1) 的问题是电子书的文本可能很大,因此我考虑将其限制为(例如)50kb 或更少。(2) 电子书也有很多单词的问题,同样可以限制。

那么,您能否指导我找到索引文本并能够进行快速全文搜索的最佳方法。在这种情况下,我需要充分利用 mysql。

4

1 回答 1

1

我决定按照 Rob Di Marco 的建议使用 Sphinx。事实证明,它是目前最快的(和开源的)全文搜索引擎。我在编译和让 SphinxSE 不要崩溃 mysql 时遇到了一些麻烦,所以我现在使用包含该插件的 MariaDB。

由于实时索引,我选择了 1.10 版本。这意味着如果您只添加一行,则无需等待索引器事物来重建整个索引。(我知道 main+delta 解决方法,但这更容易配置和使用 SphinxQL )

另请参阅与 SphinxSE 和 RT 索引相关的一些问题

于 2011-02-12T22:15:06.997 回答