Как получить точный [M] = & gt; значение из API Google Search Appliance с 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

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

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

[M] => 42

1

Решение

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

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

Вы можете попробовать объединить оба &RC = 1&фильтр = 0 в вашей строке запроса.

Обратите внимание, что с filter = 0 вы отключите следующее:

  • Фильтрация каталогов (фильтрация документов из одной и той же папки)
  • Дублирующая фильтрация фрагментов (если два документа имеют один и тот же созданный фрагмент, он будет отфильтрован)
2

Другие решения

Как и «q», «client» и «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 даст вам точное количество по сравнению с приблизительным количеством. Запрос точного количества вместо приблизительного увеличит производительность. Поэтому рекомендуется использовать его только в случае крайней необходимости.

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

0

По вопросам рекламы [email protected]