Доктрина - все записи возвращаются, когда в поисковом поведении нет совпадений - PullRequest
0 голосов
/ 20 февраля 2010

Я использую функцию поиска в Doctrine для поиска товаров в моем каталоге. Он отлично работает при поиске ключевых слов, которые соответствуют продукту. Например, ключевое слово «Рюкзак» возвращает все товары со словом «Рюкзак» в заголовке.

Однако, когда выполняется поиск по ключевому слову, которое вообще не соответствует названию, возвращается каждая запись. Например, «ASDF» возвращает все продукты.

Почему это происходит и как я могу это исправить?

1 Ответ

1 голос
/ 21 февраля 2010

У меня была такая же проблема при использовании Lucene. Если я правильно помню, причина этого состояла в том, что lucene возвращает список идентификаторов, которые соответствуют запрашиваемым параметрам. И если ничего не возвращается, то в Doctrine нет критериев для поиска по запросам без предложения where.

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

...