2015-09-09 4 views
0

Я установил sphinx на свой сервер, проиндексировал его и выполнил запрос успешно. Я использую sphinxrt код от https://github.com/andrew-s/codeigniter-sphinxrt для поиска, но он всегда дает мне поиск точной фразы. Я не могу искать, как в sql, например query.I также создал поиск в php-файле с кодом Sphinxql foolz, и он отлично работал, давая мне результат, как у нас. Я просто хочу получить такой же результат и в codeigniter.Sphinx search in codeignign

+0

, пожалуйста, поделитесь фактическим кодом, в котором вы работаете. – barryhunter

+0

$ result = $ this-> sphinxrt-> search ('people', array ('search' => 'john', 'limit' => 100, 'start' => 0)); Это то, что я использую для поиска. – HKumar

+0

Если вы ищете ни одного слова «john», как вы получаете соответствие фразе? Это не фраза? Подумайте, вам нужно более точно объяснить, в чем заключается ваша проблема. – barryhunter

ответ

0

Я проверяю код в библиотеке для sphinxrt. Вы найдете функцию с именем _escape ($ string), просто измените возвращаемое значение как return '\'^' . (string)$string . '*\'', затем он будет искать wild card для любого значения, начинающегося или заканчивающего ключевым словом.

+0

. Обратите внимание, что^это оператор запуска поля, а не подстановочный знак. Таким образом, это потребует первого слова вашего поискового запроса, чтобы быть первым миром в этой области. Последнее слово в запросе (также первое, если только одно ключевое слово!) Будет иметь * в конце. Таким образом, можно совместить слова слов. – barryhunter

+0

Да, вы правы. Я просто проверяю это. Не могли бы вы рассказать мне, что мне нужно получить, например, «% $ name%». – HKumar

+0

Его очень трудно точно мини-LIKE, как это, сфинкс - это нечто совсем другое, его обратный индекс, основанный на токенизированных словах. т.е. входные данные маркируются и сохраняются. Не просто как простая строка (например, varchar в базе данных). Ближайшим будет '' * {$ string} * "', который является совпадением фразы в сочетании с подстановочными знаками. Но все равно будут подчиняться правилам charset_table, а не точному совпадению характеристик. – barryhunter

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