2016-03-21 3 views
1

В моем индексе в SphinxSearch я бы хотел, чтобы на первом месте находилось точное совпадение фазы поиска. Но я получил точную математику на 6-й позиции.Поиск в точном соответствии Sphinx

Например:

SELECT id, WEIGHT() 
FROM `products_elit_cs` 
WHERE MATCH('BKR5EK') 
ORDER BY WEIGHT() DESC 
OPTION ranker=sph04 

возвращается [sphinxsearch результат]

id weight() 
199001 7528 
279018 7528 
385989 7528 
4513542 7528 
4759603 7528 
58449 7527 
297335 6528 
4759601 6527 
5030474 6527 
341879 4527 

, но исходные данные [результат MySQL]

id active_number_cs 
58449 BKR5EK 
199001 BKR5EKU 
279018 BKR5EKUP 
297335 BKR5EKB-11 
341879 V-23 BKR5EK 
385989 BKR5EKC 
4513542 BKR5EKUD 
4759601 BKR5EKPB-13 
4759603 BKR5EKUC 
5030474 BKR5EKPB-11 

Обратите внимание, что запись с идентификатором 58449 является точная математика.

Мы используем версию 2.1.6 сфинкса.

ответ

1

Я предполагаю, что у вас есть enable_star=0 да? http://sphinxsearch.com/docs/archives/manual-2.1.6.html#conf-enable-star

хотел бы предложить изменения к enable_star=1, а затем добавить expand_keyword=1 http://sphinxsearch.com/docs/archives/manual-2.1.6.html#conf-expand-keywords

Это позволит ранжировать точные совпадения выше. Возможно, нужно поэкспериментировать с различными выражениями ранжирования. http://sphinxsearch.com/docs/archives/manual-2.1.6.html#weighting

Смежные вопросы