Page 1 of 5

Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 10:45 am
by btraf
В конфиге сфинкса прописали цифру побольше, но софт все равно выдает только 1000.

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 12:05 pm
by admin
scj/includes/libs/sphinx.php

$this->_maxmatches = 1000;

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 1:29 pm
by btraf
Есть только sphinxapi.php
Поменял в нем значение, все равно выдает только 1000 максимум

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 1:48 pm
by admin
Без кеша так же ?

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 2:09 pm
by btraf
Запрашиваю с параметром skip_cache=true все равно только тыща

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 4:59 pm
by admin
если без скрипта в шеле сделать

search keyword

то должно писать что-то вроде

index 'scj_index': query 'балбал': returned XXXXX matches

сколько возвращает ?

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 5:08 pm
by btraf
returned 1000 matches of 20177 total in 0.002 sec

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 5:09 pm
by admin
Тут как вы понимаете скрипт никак не влияет.
Те 1000 возвращает именно сфинкс.
Что говорит админ на это ?

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 6:09 pm
by btraf
Вот от админа ответ:

На сервер настроено глобально max_matches=100000
Также учтите, что помимо настройки в конфигурации searchd на сервере, ограничение действует по-умолчанию в API. Вырезка из документации:
CAVEAT EMPTOR! Note that there also is another place where this limit is enforced. max_matches can be decreased on the fly through the corresponding API call, and the default value in the API is also set to 1,000. So in order to retrieve more than 1,000 matches to your application, you will have to change the configuration file, restart searchd, and set proper limit in SetLimits() call. Also note that you can not set the value in the API higher than the value in the .conf file. This is prohibited in order to have some protection against malicious and/or malformed requests.

http://sphinxsearch.com/docs/current.ht ... ax-matches

К примеру используя консольную утилиту search лимит можно увеличить с помощью параметра -l :
(root@server)-(07:46 PM Wed Sep 04)-(/home/ftpaccess/domain.com/www/scj)
# search -c /usr/local/etc/sphinx.conf -l 4000 -i domain_scj_index mature | grep returned
index domain_scj_index': query 'mature ': returned 4000 matches of 4297 total in 0.001 sec

В Вашем случае лимит необходимо увеличить используя функцию SetLimits(). Адресуйте это разработчику скрипта

Re: Поиск сфинксом, как получить более 1000 результатов?

Posted: Wed Sep 04, 2013 6:32 pm
by admin
Сорри , мой ответ был неверный.
Дабы ограничить как-то выдачу по коротким запросам стоит лимит в 1000.
Его можно повысить в конфиге

$config['sphinx_results_limit'] = ...;