2015-10-29 4 views
1

Я получаю неточное количество результатов поиска с помощью GSA, я прочитал это article, но не знаю, где использовать «rc = 1», или если я даже хочу (из-за возможных проблем с задержкой). Это то, что у меня есть прямо сейчас, и $ totalItems получает только значение [M] для первого значения [M], которое кажется неточным. Например, первая страница результатов дает [M] => 66 и последней странице результатов дает [M] => 42 (что правильно), вот немного моего кода:Как получить точное значение [M] => из API Google Search Appliance с помощью PHP?

$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] (что кажется точным)?

Как другие люди справляются с этой неточностями?

Первый [М]:

[RES] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [SN] => 1 
       [EN] => 10 
      ) 

     [M] => 66 

Последнее [М]:

[RES] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [SN] => 41 
       [EN] => 42 
      ) 

     [M] => 42 

ответ

0

Как 'Q' и 'клиент' и 'выход', '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'; 

или если я даже хочу (из-за возможных проблем латентности).

гс = 1 даст вам точное количество по сравнению с приблизительной кол. Запрос на точный счет вместо приблизительного подсчета приведет к увеличению накладных расходов. Поэтому использовать его только в случае крайней необходимости рекомендуется.

Вы называете это «неточным». Google называет его «приблизительным». Его все, как мы это видим!

+0

Хм, я просто попробовал это и все еще получаю 66 результатов. См. Обновление до вопроса ... – mutanthumb

2

Параметр rc действительно тот, который вам нужен для получения точного количества результатов.

Но если вы используете значение фильтра по умолчанию, некоторые результаты будут отфильтрованы, и вы не увидите таких результатов.

Вы можете попытаться комбинировать как & rc = 1 & filter = 0 в строке запроса.

Пожалуйста, обратите внимание, с фильтром = 0 вы следующие отключены:

  • фильтрации каталогов (фильтрация документов, исходящими из одной и той же папки)
  • Дублированной фильтрации Snipper (если два документа имеет тот же фрагмент кода генерируется, он будет отфильтрован)
+0

Интересно, что & rc = 1 & filter = 0 предоставили новые «расширенные» результаты, как и при использовании & filter = 0 оба отображаемых результата == значение [M]. Есть ли смысл использовать оба параметра? – mutanthumb

+0

с использованием filter = 0 - хорошая идея, так как она останавливает вложенность подобных результатов, что часто путает пользователей, поскольку они не понимают причин гнездования. – BigMikeW

+0

Да, более высокий результат получается, оценка становится менее точной –