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

btraf
Posts: 101
Joined: Fri Jul 26, 2013 1:42 pm

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

Post by btraf »

В конфиге сфинкса прописали цифру побольше, но софт все равно выдает только 1000.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

scj/includes/libs/sphinx.php

$this->_maxmatches = 1000;
Don't forget to run script update
btraf
Posts: 101
Joined: Fri Jul 26, 2013 1:42 pm

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

Post by btraf »

Есть только sphinxapi.php
Поменял в нем значение, все равно выдает только 1000 максимум
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Без кеша так же ?
Don't forget to run script update
btraf
Posts: 101
Joined: Fri Jul 26, 2013 1:42 pm

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

Post by btraf »

Запрашиваю с параметром skip_cache=true все равно только тыща
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

если без скрипта в шеле сделать

search keyword

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

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

сколько возвращает ?
Don't forget to run script update
btraf
Posts: 101
Joined: Fri Jul 26, 2013 1:42 pm

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

Post by btraf »

returned 1000 matches of 20177 total in 0.002 sec
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Тут как вы понимаете скрипт никак не влияет.
Те 1000 возвращает именно сфинкс.
Что говорит админ на это ?
Don't forget to run script update
btraf
Posts: 101
Joined: Fri Jul 26, 2013 1:42 pm

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

Post 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(). Адресуйте это разработчику скрипта
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Сорри , мой ответ был неверный.
Дабы ограничить как-то выдачу по коротким запросам стоит лимит в 1000.
Его можно повысить в конфиге

$config['sphinx_results_limit'] = ...;
Don't forget to run script update
Post Reply