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') ) ;'

По отдельности все работает
  • Вопрос задан
  • 4158 просмотров
Решения вопроса 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 на пыхе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы