简单的内存全文搜索解决方案

时间:2013-01-27 02:42:20

标签: java full-text-search

我有一个小型网站在Java上运行,可能有十几个降价文件。我想为用户提供全文搜索,以便快速访问这些降价文件。由于它很小,我每次启动Web应用程序时都可以在内存中构建索引。有什么建议吗?

注意

  1. 我想远离任何数据库解决方案,sql或nosql。

  2. 我更喜欢将解决方案作为库提供而不是构建到XX框架中

3 个答案:

答案 0 :(得分:5)

使用其中一个内存数据库,H2或HSQLDB。然后,对于全文搜索部分,只需使用Hibernate Search。它将与任何两个DB的工作,这将让你不必在所有处理Lucene的:你可以标注您的实体,并转到:所有的索引会自动发生,如果你想要做的事情一样升压领域,你可以用一个简单的注释来做到这一点。

答案 1 :(得分:4)

作为一个侧面项目,我已经为java实现了一个简单的内存文本搜索解决方案。

https://github.com/bradforj287/SimpleTextSearch

主要特点:

  • 倒置索引
  • 余弦相似度算法w / TFIDF排名
  • MultiThreadded索引创建和搜索
  • Word Stemming(雪球词干)
  • 自动剥离HTML标记
  • 停用词
  • String tokenizer(Stanford NLP)

可能想看看。

答案 2 :(得分:3)

放入Apache Lucene,这是全文搜索中或多或少的黄金标准。很高兴在记忆中运作。