如何获得准确的[M]=>;通过PHP从Google Search Appliance API获得的值


How to get an accurate [M]=> value from the Google Search Appliance API with PHP?

我使用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将给出与近似计数相对应的精确计数。请求精确计数而不是近似计数会增加性能开销。因此,建议仅在绝对必要时使用。

你称之为"不准确"。谷歌称之为"近似"。这就是我们所看到的一切!