2

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

标签

ID

姓名

LUCENETAGS :

ID

LUCENEID(Lucene 中的 docID,不是字段)

TAGID

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

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

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

谢谢!

4

1 回答 1

0

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

如果很少有文档与特定标签匹配,您还可以在数据库中查询要查询的 ID,然后将查询重写为:

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

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

不过,我确实想知道为什么不能将字段添加到索引中,从而复制 Derby 数据库中的存储值。在您选择从声明的结构中获取所需内容的任何实现中,与数据在索引中也可用的情况相比,您会发现性能要差得多,处理起来也更加复杂。

于 2013-01-14T22:49:34.310 回答