У меня есть индекс сфинкса, и я запрашиваю через sphinx QL с фасетами …
Это мой сфинкс ql запрос:
SELECT ID FROM index_search WHERE MATCH('refrigerator') ORDER BY WEIGHT() DESC LIMIT 0,20
OPTION max_matches=5000
FACET CATEGORY_ID
FACET MANUFACTURER_ID
FACET STORE_ID
FACET VALUE_ID LIMIT 5000;
SELECT MIN(MIN_PRICE), MAX(MIN_PRICE) FROM index_search WHERE MATCH('refrigerator');
SHOW META
Теперь это возвращает результаты, как это:
Array
(
[0] => Array
(
[0] => Array([id] => 3256)
...
[19] => Array([id] => 3242)
)
[1] => Array
(
... category filters ...
)
[2] => Array
(
... manufacturer filters ...
)
[3] => Array
(
... store filters ...
)
[4] => Array
(
[0] => Array
(
[value_id] => 0
[count(*)] => 1146
)
...
[999] => Array
(
[value_id] => 221820
[count(*)] => 1
)
)
[5] => Array
(
[0] => Array
(
[min(min_price)] => 0.000000
[max(min_price)] => 0.000000
)
)
[6] => Array
(
[0] => Array
(
[Variable_name] => total
[Value] => 5000
)
[1] => Array
(
[Variable_name] => total_found
[Value] => 5099
)
[2] => Array
(
[Variable_name] => time
[Value] => 0.009
)
[3] => Array
(
[Variable_name] => keyword[0]
[Value] => refriger
)
[4] => Array
(
[Variable_name] => docs[0]
[Value] => 5099
)
[5] => Array
(
[Variable_name] => hits[0]
[Value] => 9053
)
)
)
Как вы можете видеть, он показывает только первые 1000 значений фасетов для фильтра VALUE_ID … хотя я знаю, что он имеет гораздо больше значений для него …
Об этом сообщили об ошибке, и я нашел это решение:
http://sphinxsearch.com/forum/view.html?id=14339
И я получил Сфинкс, обновленный до следующей версии:
Sphinx 2.3.1-id64-beta (r4926)
но все тот же …
Как я могу проверить, исправлена ли эта ошибка в моей установке sphinx ??
Задача ещё не решена.
Других решений пока нет …