简单的内存全文搜索解决方案
我有一个在Java上运行的小网站,可能有十几个降价文件。 我想为用户提供全文搜索,以便快速访问这些降价文件。 由于它很小,我每次启动Web应用程序时都可以在内存中构建索引。 有什么建议吗?
注意
-
我想远离任何数据库解决方案,sql或nosql。
-
我更喜欢解决方案是作为库提供而不是构建到XX框架中
作为一个副项目,我已经为java实现了一个简单的内存文本搜索解决方案。
https://github.com/bradforj287/SimpleTextSearch
主要特点:
- 倒指数
- 余弦相似度算法w / TFIDF排名
- MultiThreadded索引创建和搜索
- 词干(雪球词干)
- 自动剥离HTML标记
- 停止说话
- 字符串标记器(斯坦福NLP)
可能想看一看。
使用其中一个内存数据库,H2或HSQLDB。 然后,对于全文搜索部分,只需使用Hibernate Search。 它可以与两个DB中的任何一个一起工作,它将使您不必处理Lucene:您可以只注释您的实体,然后:所有索引将自动发生,如果您想要执行诸如boost字段之类的操作,你可以用一个简单的注释来做到这一点。
下载Apache Lucene,这是全文搜索中或多或少的黄金标准。 很高兴在记忆中运作。