1

考虑以下查询:

/solr/select?q=linux

它返回这个 XML 响应:

<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">0</int>
        <lst name="params">
            <str name="q">linux</str>
        </lst>
    </lst>
    <result name="response" numFound="10943" start="0">

从这里我们可以看到有 10943 个文档与我们的查询匹配。但是,请考虑使用分组的相同查询:

/solr/select?q=linux&group=true&group.field=tag

它返回这个 XML 响应:

<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">10</int>
        <lst name="params">
            <str name="group">true</str>
            <str name="group.field">tag</str>
            <str name="q">linux</str>
        </lst>
    </lst>
    <lst name="grouped">
        <lst name="tag">
            <int name="matches">10943</int>
            <arr name="groups">
                <lst>
                    <str name="groupValue">linux</str>
                    <result name="doclist" numFound="1224" start="0">

从这里我们可以看到有 10943 个文档满足我们的查询(显然,它与第一个示例中的查询相同)。我们还可以看到我们有 1224 个带有“linux”标签的文档。但是,没有提到有多少匹配组。因此,不能使用分页来呈现标签列表,因为无法计算需要多少页。

如何获得返回的组数,以计算可用的分页页数?

谢谢。

4

1 回答 1

4

对于组数,请使用 groups.ngroups 请求参数,该参数将给出分页组数的计数。

文档:-

group.ngroups
true/false
If true, includes the number of groups that have matched the query. Default is false.
于 2012-11-01T04:09:52.247 回答