full-text-search - Lucene 中的多索引搜索(休眠搜索)

标签 full-text-search lucene hibernate-search

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

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

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

甚至有可能使用原生 Lucene 或 I/m 完全忽略这一点吗?

最佳答案

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

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

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

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

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

——哈代

关于full-text-search - Lucene 中的多索引搜索(休眠搜索),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1098651/

相关文章:

SOLR - 在模式中使用单个文本字段进行全文搜索

java - solr boost函数的目的

elasticsearch - 无需嵌入索引即可在两个实体之间进行休眠搜索

elasticsearch - 休眠搜索索引注释是否支持Elastic Search的 'copy_to'属性

mysql - 通过 Zend Framework 的搜索功能

java - 如何找到所有可以创建全文搜索索引的列?

sql-server - SQL Server 跨多个表的全文查询 - 为什么这么慢?

java - 有没有办法将 redquerybuilder 与 Lucene 一起使用?

java - 如何将 RAMDirectory 集成到 lucene 中的 FSDirectory

java - @SortableField 在嵌套实体中不起作用