我使用GSA得到的搜索结果数量不准确,我读过这篇文章,但不确定在哪里使用"rc=1",或者我是否想使用(因为可能存在延迟问题)。这就是我现在所拥有的,$totalItems只得到第一个[M]值的[M]值,这似乎是不准确的。例如,结果的第一页产生[M]=>66,结果的最后一页产生[M]=>42(这是正确的),下面是我的代码:
$url = 'https://search.state.edu/search?q='.$q.'&client='.$client.'&output='.$form.'&oe=UTF-8&ie=UTF-8&ud=1'.(is_null($sort) ? "" : "&sort=$sort").'&site='.$site.'&access=p&entqr=3&entqrm=0&start='.$start.'&limit='.$limit.''.'&getfields=thumbnail';
$result = simplexml_load_file($url);
$totalItems = $result->RES->M;
我应该在查询中的哪里插入"rc=1",或者有没有办法提取所有记录,这样我就可以搜索最后一个[M](这似乎是准确的)?
其他人如何处理这种不准确的情况?
第一[M]:
[RES] => SimpleXMLElement Object
(
[@attributes] => Array
(
[SN] => 1
[EN] => 10
)
[M] => 66
最后[M]:
[RES] => SimpleXMLElement Object
(
[@attributes] => Array
(
[SN] => 41
[EN] => 42
)
[M] => 42
rc参数确实是获得准确结果数量所需的参数。
但是,如果您使用默认的筛选值,一些结果将被筛选,您将看不到那么多结果。
你可以试着把两者结合起来;rc=1&查询字符串中的filter=0。
请注意,如果过滤器=0,您将禁用以下内容:
- 目录筛选(筛选来自同一文件夹的文档)
- 重复的snipper筛选(如果两个文档生成了相同的snippe,则会对其进行筛选)
与"q"、"client"answers"output"一样,"rc"也是另一个参数。因此,只需添加"rc"作为另一个参数/查询字符串,并将值默认为1。像这样的
$url = 'https://search.state.edu/search?q='.$q.'&client='.$client.'&output='.$form.'&oe=UTF-8&ie=UTF-8&ud=1'.(is_null($sort) ? "" : "&sort=$sort").'&site='.$site.'&access=p&entqr=3&entqrm=0&start='.$start.'&limit='.$limit.''.'&getfields=thumbnail&rc=1';
或者我是否愿意(因为可能存在延迟问题)。
rc=1将给出与近似计数相对应的精确计数。请求精确计数而不是近似计数会增加性能开销。因此,建议仅在绝对必要时使用。
你称之为"不准确"。谷歌称之为"近似"。这就是我们所看到的一切!