Lucene和外部数据库

时间:2013-01-14 17:42:05

标签: java derby lucene

我正在使用Lucene和Derby数据库。 Lucene包含文本索引,Derby包含有关其他用户数据的信息。例如,每个文档都有一个标记。为此,Derby数据库有两个表

TAGS

ID

名称

LUCENETAGS

ID

LUCENEID(Lucene的docID,不是字段)

TAGID

我希望用户能够搜索如下内容:

  

非常有趣的文字和标签:有趣

以标签为Lucene字段的方式更改结构不是一种选择。

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信您只需在Lucene中执行文本搜索,然后根据查询结果将结果过滤到Derby中。

如果几个文档与特定标记匹配,您还可以在数据库中查询要查询的ID,并重写查询,如:

(very interesting text) AND id:(1 2 3 etc.)

可能不可行,但在标签非常稀疏的情况下,可能值得考虑。

我确实想知道为什么无法将字段添加到索引中,从而复制Derby数据库中的存储值。在任何实现中,您选择从所声明的结构中获得所需的内容,您将看到性能更差,并且处理的复杂性也更高,而不是索引中的数据也是如此。