sanchezzzhak
@sanchezzzhak
Ля ля ля...

Как задать в SphinxQL несколько Option?

Сам запрос
SELECT id, post_type, weight() FROM post_ru 
WHERE MATCH('@(name,full_description) Samsung') 
AND ( system_id >=1 AND system_id<=16 ) LIMIT 0,30 
OPTION 
field_weights=(name=10,full_description=1) 
ranker=expr('sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25'))


Я хочу задать помимо ranker еще и вес для полей field_weights

Но я получаю ошибку
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1064 sphinxql: syntax error, unexpected IDENT, expecting $end near 'ranker=expr('sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25') ) ;'

По отдельности все работает
  • Вопрос задан
  • 4148 просмотров
Решения вопроса 1
sanchezzzhak
@sanchezzzhak Автор вопроса
Ля ля ля...
В общем перечисляем - это дело через запятую с пробелом
OPTION field_weights=(name=10,full_description=1), max_matches=10000, ranker=expr('sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25')


Для тех кто будет использовать!
max_matches=10000 также нужно задать в конфиге searchd потом перезапустить searchd, иначе результат получим 0 документов.

Любые изменения с searchd требует перезапуск сервиса.
Тестил все на shinxql версия 2.2.3 beta на пыхе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы