如何在Solrnet/Solr(Lucene)中实现分组?

如何在Solrnet/Solr(Lucene)中实现分组?,lucene,solr,lucene.net,solrnet,Lucene,Solr,Lucene.net,Solrnet,我有根据PageID(UniqueKey)索引的Lucene文件。一个文档可以有多个页面。现在,一旦用户执行一些搜索,它就会给我们提供匹配搜索条件的页面 我正在使用Lucene.NET2.9.2 我们有两个问题 1-文件大小约为800GB,有1.3亿行(页),因此搜索速度非常慢(所有查询都需要一分钟以上的时间(我们一次只需返回有限的行) 为了克服性能问题,我转向SOLR,它解决了性能问题(这很奇怪,因为我没有使用SOLR提供的任何额外功能,如切分等-所以可能是Lucene.NET 2.9.2与J

我有根据PageID(UniqueKey)索引的Lucene文件。一个文档可以有多个页面。现在,一旦用户执行一些搜索,它就会给我们提供匹配搜索条件的页面

我正在使用Lucene.NET2.9.2

我们有两个问题

1-文件大小约为800GB,有1.3亿行(页),因此搜索速度非常慢(所有查询都需要一分钟以上的时间(我们一次只需返回有限的行)

为了克服性能问题,我转向SOLR,它解决了性能问题(这很奇怪,因为我没有使用SOLR提供的任何额外功能,如切分等-所以可能是Lucene.NET 2.9.2与JAVA的同一版本相比并不真正等同于性能???),但现在我遇到了另一个问题

2-单个“lucene文档”是一页,但我想显示“按”“真实文档”分组的结果。我应该返回多少结果应该基于“真实文档”而不是“页面”进行配置(因为我想这样向用户显示)

假设我想要20个“真实文档”,其中所有页面都符合搜索条件(如果一个文档有100个页面,而另一个文档只有1个页面,这并不重要)

从SOLR论坛上我可以得到的是,它可以通过SOLR-236补丁(字段崩溃)来实现,但我无法将补丁正确地应用于trunk(给出了很多错误)

这对我来说真的很重要,我没有太多时间,所以请有人给我发一个SOLR 1.4.1二进制文件并应用这个补丁,或者如果有其他方法,请指导我


我真的很感激。谢谢!!

如果你对崩溃补丁有问题,那么Solr问题跟踪器是报告它们的渠道。我可以看到,所以我建议参与它的开发


这就是说:我建议如果你的应用程序需要搜索“真实文档”,那么就围绕这些“真实文档”,而不是它们的单独页面建立索引。

如果你唯一的要求是显示页码,我建议你使用荧光笔或进行一些定制开发。你可以存储起始文档的字号d在自定义结构中结束每个页面,知道匹配的单词在整个文档中的位置,您可以知道它出现在哪个页面。如果文档很大,您将获得良好的性能改进。

您也可以查看一下,我还没有测试过它,但据我所知,它也解决了崩溃问题。

@Mauricio Schef费尔:实际上,我们的要求是,我们需要显示查询匹配的页码。