有效搜索小文本

时间:2011-04-14 13:46:19

标签: java search lucene

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

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

你们中有谁有一个如何有效地做到这一点的好方法?

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

您的文字需要以某种方式编入索引,以便对其进行搜索。您有两种选择:

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

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

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

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