8

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

笔记

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

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

4

3 回答 3

5

使用内存数据库之一,H2 或 HSQLDB。然后,对于全文搜索部分,只需使用 Hibernate Search。它可以与两个数据库中的任何一个一起使用,并且完全不必处理 Lucene:您可以只注释您的实体,然后继续:所有索引都将自动发生,如果您想做诸如提升字段之类的事情,你可以用一个简单的注释来做到这一点。

于 2013-01-27T02:53:19.867 回答
5

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

https://github.com/bradforj287/SimpleTextSearch

主要特征:

  • 倒排索引
  • 带 TFIDF 排名的余弦相似度算法
  • 多线程索引创建和搜索
  • 词干提取(雪球词干分析器)
  • 自动去除 HTML 标签
  • 停用词
  • 字符串标记器(斯坦福 NLP)

可能想看看。

于 2015-08-10T21:08:41.450 回答
3

加入 Apache Lucene,全文搜索中或多或少的黄金标准。很高兴在内存中操作。

于 2013-01-27T02:54:40.380 回答