2011-02-04 3 views
0

Я пытаюсь настроить think_sphinx для поля поиска с автоматическим предложением. На каждом keypress я делаю поиск sphinx в моей базе данных текущего текстового значения в поле. Я установил min_infix_len в 3, я не хочу, чтобы предложения отображались, пока не набрано не менее 3 символов. Проблема связана с многословными запросами. Несмотря на настройку: match_mode =>: фраза, каждое новое слово I, по-видимому, рассматривается как отдельное ключевое слово в поиске sphinx, которое должно выполняться в min_infix_len из 3.Rails thinking_sphinx проблема с нечетким поиском

Итак, если я набираю «Lorem Ipsum», Я получаю автовыполнения для «Лор», «Знаний» и «Лорема». Тогда я не получаю никаких результатов для «Lorem I» и «Lorem Ip». Затем, как только я нажму «Lorem Ips», я снова получаю результаты.

В чем дело? Если это не так: match_mode =>: фраза для, то для чего это?

ответ

0

Я уверен, что min_infix_len оказывает влияние только при индексировании данных в Sphinx. Это не применяется вообще при поиске. Итак: min_infix_len применяется для каждого слова, а не для фраз.

+0

о. я выполнил то, что хотел, установив min_infix_len в 1 и enable_star в 1, а затем добавив звездочку к текстовому полю перед ее поиском. – herpderp

1

Вы можете расширить класс String, с помощью этого метода, который преобразует строку из одного или нескольких слов, звездообразной для поиска строки

def to_star_search 
    "*#{self.strip.gsub(/ +/, '* *')}*" 
end 
Смежные вопросы