【问题标题】:Lucene and External DBLucene 和外部数据库
【发布时间】:2013-01-14 17:42:04
【问题描述】:

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

标签

身份证

名字

LUCENETAGS

身份证

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

标签ID

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

非常有趣的文字和 tag:fun

不能选择以标记为 Lucene 字段的方式更改结构。

谢谢!

【问题讨论】:

  • 到底是什么问题?

标签: java derby lucene


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我在 Luke 中尝试过 id 字段,但它不起作用。您知道 Lucene 中 Doc ID 的构建字段吗?另一个问题是我应该扩展哪个类来解析自定义字段并像那样替换它?在旁注中,我还没有开发后端,所以这是我不能改变它的唯一原因,但我同意你 100% ;)
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 2016-05-01
  • 2022-01-16
  • 1970-01-01
  • 2016-02-20
  • 2012-09-20
  • 2012-03-06
  • 1970-01-01
相关资源
最近更新 更多