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

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

注意

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

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

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

https://github.com/bradforj287/SimpleTextSearch

主要特点:

  • 倒指数
  • 余弦相似度算法w / TFIDF排名
  • MultiThreadded索引创建和搜索
  • 词干(雪球词干)
  • 自动剥离HTML标记
  • 停止说话
  • 字符串标记器(斯坦福NLP)

可能想看一看。

使用其中一个内存数据库,H2或HSQLDB。 然后,对于全文搜索部分,只需使用Hibernate Search。 它可以与两个DB中的任何一个一起工作,它将使您不必处理Lucene:您可以只注释您的实体,然后:所有索引将自动发生,如果您想要执行诸如boost字段之类的操作,你可以用一个简单的注释来做到这一点。

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