поиск отдельных слов с учением - PullRequest
0 голосов
/ 05 августа 2011

Я пытаюсь выполнить полнотекстовый поиск с помощью codeigniter и доктрины.Моя проблема в том, что Doctrine выполняет поиск только по целым словам.

Например, если я ищу слово "гора", я получаю каждую запись со словом гора.Но если я ищу "гору", я ничего не получаю.

1 Ответ

1 голос
/ 15 марта 2012

У меня была такая же проблема с Symfony 1.4 и Doctrine 1.2 с поведением Searchable, и я столкнулся с этим вопросом.Затем я обнаружил, что вы можете добавить подстановочные знаки (? Или *) к поисковому запросу, которое относится к словам.В вашем случае "гора *" будет соответствовать горе.В моем случае я применил это к каждому поисковому запросу и скрыл его от пользователя.

$results = $table->search('*'.$search_string.'*');

Надеюсь, это кому-нибудь поможет!

- edit -

Немного поспешно выше ... Это прекрасно работает для запросов с одним словом, но снова не работает для нескольких частичных слов.Примерно так должно работать лучше:

$actual_search_string = '*'.implode('* *', explode(' ', $search_string)).'*';
$results = $table->search($actual_search_string);
...