Solr 仅从查询返回特定行(例如每10行:#1、#11、#21…)

Solr 仅从查询返回特定行(例如每10行:#1、#11、#21…),solr,solrj,Solr,Solrj,我只需要从Solr索引中获取特定的(第n行)。例如,如果完整结果包含10000行,则我只希望接收每个100项bucket的第一行和最后一行 项目1和100 项目101和200 项目201和300 此分组是动态的,取决于结果的数量。因此,如果总共只有5000个结果行,则bucket大小是50而不是100。我可以计算实际的索引,但问题是如何从Solr获取这些索引 没有可直接用作查询参数的索引字段。实际上,我正在搜索“名称以a开头”(或其他字母),并希望收到以a开头的第一个项目、以a开头的第100个项

我只需要从Solr索引中获取特定的(第n行)。例如,如果完整结果包含10000行,则我只希望接收每个100项bucket的第一行和最后一行

项目1和100 项目101和200 项目201和300

此分组是动态的,取决于结果的数量。因此,如果总共只有5000个结果行,则bucket大小是50而不是100。我可以计算实际的索引,但问题是如何从Solr获取这些索引

没有可直接用作查询参数的索引字段。实际上,我正在搜索“名称以a开头”(或其他字母),并希望收到以a开头的第一个项目、以a开头的第100个项目、以a开头的第101个项目等


查询参数有“rows”和“start”,但它们不能跳过项,所以我需要使用一个单独的查询来获取每个项,这是低效的。我还想实现一个过滤查询,只过滤掉项目2…99,192…199,但我不知道如何实现它。

我不知道有什么简单的方法可以做到这一点,但这将减少需要来回传递的数据量:使用通常的
start
参数执行常规查询,但告诉Solr仅返回每个文档的ID字段(通过)。在客户机代码中,存储第一个和最后一个文档的ID,并使用
start
的下一个值重复查询。一旦到达搜索结果的末尾,就有了所需文档ID的列表。运行一个新的查询,给它您想要返回的文档ID列表,这一次得到完整的文档。

您想要的排序是什么?首先,我想问您为什么有这样的要求。它看起来更像是逻辑而不仅仅是搜索。你们不能用另一种方式索引数据吗?我正在创建一个按字母顺序排序的数据索引页面。假设我有一个机场索引:(实际上我没有,但这是一个更容易得到的例子)。现在,我需要创建子页面的链接,每个子页面的名字和姓氏为:亚琛-阿布扎比-阿夫顿阿富塔拉-艾灵拉帕拉普岛等。因此,当用户选择“亚琛-阿布雷奥霍斯”时,她将显示所有之间的机场,包括这些机场。因此,第一个Solr查询应该返回索引中的一些选定项:Aachen、Abreojos、Abu Dhabi等。而且,修改索引不是很容易,我更喜欢一个可以与现有索引结构一起工作的解决方案。我将很快调查安萨里的建议。