有效搜索小文本
我有许多小文本(比如大约500个单词)和两个数据库,每个大约有10,000个条目(关键字)。
我现在想要处理每个文本,并找出文本中包含哪些关键字(保存在2个数据库中的关键字)。
你们中的任何人都有一个如何有效地做到这一点的好方法吗?
在搜索数据库之前,我想处理每个文本并将其编入索引(或者使用lucene),但我真的不知道lucene是否是正确的工具。
Lucene是完成此任务的正确工具。
实现目标的一种方法是使用RAMDirectory索引每个文本,然后使用IndexReader从索引中获取TermEnum。 您现在可以将这些条款与数据库中的关键字进行匹配。
另一种方法是将每个文本索引为lucene文档,然后迭代关键字并获取当前术语的termDocs =>包含当前术语/关键字的所有文本。
您的文本需要以某种方式编入索引才能搜索它。 你有两个选择:
1)将文本加载到MySQL数据库中,并使字段/列全文可搜索
2)正如你所说,用Lucene索引。
然后将您的关键字读入列表,循环遍历它们,并查询Lucene / MySQL。
假设您的数据集不大,我会使用MySQL – 设置起来要快得多。