2

能推荐一个全文搜索引擎吗?(最好是开源的)

我有一个包含许多(虽然相对较短)HTML 文档的数据库。我希望用户能够通过在我的 C++ 桌面应用程序中输入一个或多个搜索词来搜索这个数据库。因此,我正在寻找与我的应用程序集成的快速全文搜索解决方案。理想情况下,它应该:

  • 跳过常用词,例如the, of,and等。
  • 支持词干提取,即搜索run也能找到包含runner,runningran.
  • 能够在将新文档添加到数据库时在后台更新其索引。
  • 能够提供搜索词建议(如 Google Suggest)
  • 有一个记录良好的 API

为了说明,假设数据库只有两个文档:

文件 1This is a test of text search.

文件 2Testing is fun.

索引中应包含以下单词: fun, search, test, testing, text. 如果用户t在搜索框中输入,我希望应用程序能够建议testtesting并且text(理想情况下,应用程序应该能够在搜索引擎中查询以 开头的 10 个最常见的搜索词t)。搜索testing应该返回两个文档。

其他要点:

  • 我不需要多用户支持
  • 我不需要复杂查询的支持
  • 数据库驻留在用户的计算机上,因此应在本地执行索引。

你能推荐一个基于 C 或 C++ 的解决方案吗?(我已经简要回顾了CLuceneXapian,但我不确定它们是否能满足我的需求,尤其是查询搜索词索引以获取建议功能)。

4

3 回答 3

4

也看看狮身人面像

于 2012-01-08T10:15:17.813 回答
3

您可以将 Clucene 用于 c/c++,将 sphider 用于 php。两者都是免费的,但需要时间来设置和使用,但不难理解。

于 2010-06-13T11:21:32.340 回答
2

我非常成功地使用了dtSearch模块。

他们有一个 dll,您可以在应用程序中使用它来索引任何内容,并且可以做比您要求的更多的事情。

注意:不是免费的。

我没有看到您要求免费的问题,所以我写了我喜欢的一个。dtSearch 启发了我,我为我的网站创建了我的语言 Ellinika 的索引器,因为没有找到我正在寻找的语言。

如果您只需要为您的文字找到建议,则有一些模块仅用于 steeming,我从这里得到参考http://tartarus.org/~martin/PorterStemmer/

例如,如果你有一个像 ms sql 这样的数据库,已经准备好做一些基本的索引,有人搜索一个词,你什么也没找到,你可以自己搜索这个词,然后再搜索......

于 2010-06-06T08:36:29.360 回答