你能推荐一个全文搜索引擎吗?

时间:2010-06-06 08:25:54

标签: c++ indexing full-text-search search-engine autosuggest

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

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

  • 略过常见字词,例如theofand等。
  • 支持词干,即搜索run也会找到包含runnerrunningran的文档。
  • 能够在新文档添加到数据库时在后台更新其索引。
  • 能够提供搜索字词建议(例如Google Suggest)
  • 拥有详细记录的API

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

  

文件1 This is a test of text search.

     

文件2 Testing is fun.

以下字词应位于索引中:funsearchtesttestingtext。如果用户在搜索框中输入t,我希望应用能够建议testtestingtext(理想情况下,应用应该可以查询搜索引擎,用于以t开头的10个最常见的搜索词。搜索testing应返回两个文档。

其他要点:

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

你能推荐一个基于C或C ++的解决方案吗? (我简要回顾了CLuceneXapian,但我不确定是否会满足我的需求,特别是查询建议功能的搜索字索引。)

3 个答案:

答案 0 :(得分:4)

另请查看Sphinx

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

他们有一个dll,您可以将它与您的应用程序一起使用,以索引任何内容,并且比您提出的更多。

注意:不是免费的。

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

如果您只是需要为您的单词找到建议,有一些模块只是为了进行沉思,我可以从这里获得参考http://tartarus.org/~martin/PorterStemmer/

例如,如果你有一个像ms sql这样的数据库,所有人都准备好做一些基本的索引,并且有人搜索一个单词,而你什么都没找到,你可以通过自己对这个词进行自我调整,然后重新搜索...