有效搜索小文本

我有许多小文本(比如大约500个单词)和两个数据库,每个大约有10,000个条目(关键字)。

我现在想要处理每个文本,并找出文本中包含哪些关键字(保存在2个数据库中的关键字)。

你们中的任何人都有一个如何有效地做到这一点的好方法吗?

在搜索数据库之前,我想处理每个文本并将其编入索引(或者使用lucene),但我真的不知道lucene是否是正确的工具。

Lucene是完成此任务的正确工具。

实现目标的一种方法是使用RAMDirectory索引每个文本,然后使用IndexReader从索引中获取TermEnum。 您现在可以将这些条款与数据库中的关键字进行匹配。

另一种方法是将每个文本索引为lucene文档,然后迭代关键字并获取当前术语的termDocs =>包含当前术语/关键字的所有文本。

您的文本需要以某种方式编入索引才能搜索它。 你有两个选择:

1)将文本加载到MySQL数据库中,并使字段/列全文可搜索

2)正如你所说,用Lucene索引。

然后将您的关键字读入列表,循环遍历它们,并查询Lucene / MySQL。

假设您的数据集不大,我会使用MySQL – 设置起来要快得多。