4

Lucene Feautures 官方网站声明 lucene 支持“合并结果的多索引搜索”。

是否有可能以某种方式通过休眠搜索来做到这一点?

我的用例:带评论的文章。我想要两个独立的索引:一个用于文章,一个用于评论。我希望能够在其中一条评论中通过匹配找到文章。从用户的角度来看,我希望搜索“查看”文章文本及其评论并返回文章列表。(我知道我可以通过将所有评论存储为文章文档中的字段来实现这一点,但我想对评论中的搜索应用过滤器。)

甚至有可能使用原生 Lucene 还是我/我完全错过了这一点?

4

2 回答 2

4

你的整个解释似乎含糊不清。Hibernate Search 似乎非常适合您的用例,前提是您有一个适当的域模型,这意味着一篇文章以某种方式链接到评论,例如通过 OneToMany 关联。如果文章和评论之间没有关系,你怎么知道评论属于哪篇文章?

拥有这样的域模型将解决您的用例 - 能够在文章和评论中搜索,但返回文章列表。

也就是说,可以为文章和评论保留单独的 Lucene 索引。实际上,如果您为每个类添加@Indexed,则会为每个类创建一个索引。但是,搜索变得更加复杂。

我建议在文章上使用@Indexed,与文章中的评论有正确的映射关系,并在其上使用@IndexedEmbedded。

如果您想要更多帮助,您确实必须发布您的域模型或提供有关您的需求/用例的更多信息。

——哈代

于 2009-07-09T08:52:08.180 回答
2

给每篇文章一个 ID 会更容易。然后将评论存储在文章之外,但有一个字段告诉您评论是关于哪篇文章的。搜索两个索引(或相同的索引,不同字段称为“文章”和“评论”),然后在文章 ID 上合并。这样您可以对文章查询和评论查询的结果分别设置过滤器。

于 2009-07-08T19:39:46.550 回答