Доктрина 2. Использование построителя запросов для запроса переменного числа полей / ассоциаций для расширенного поиска - PullRequest
0 голосов
/ 07 июля 2011

Я пытаюсь создать функцию репо для поиска объекта, который имеет несколько ассоциаций.У меня вопрос, как эффективно это сделать?Если у меня есть объект проекта со связью, например, с объектом пользователя, и я позволяю моим пользователям искать проекты по имени проекта, имени пользователя, компании-пользователю и т. Д. И т. Д. В этом случае мне может понадобиться присоединиться к пользователю.сущность для того, чтобы установить, где пункты.Однако мне это не всегда нужно, поэтому мне нужно настроить соединение, только если кто-то хочет найти свойства объекта пользователя.Должен ли я просто выполнить условное задание stmt, чтобы увидеть, ищутся ли какие-либо свойства сущности пользователя, и только потом вызывать методы соединения и и где в qb?Или есть другой способ сделать это?Thx!

1 Ответ

1 голос
/ 07 июля 2011

Использование условных выражений и добавление объединений и где должно работать нормально для базовой функции поиска, как вы описали.

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

Если вам нужно что-то более сложное или вам нужна более высокая производительность, вам, вероятно, следует подумать о том, чтобы использовать реальный механизм полнотекстового поиска, такой как Lucene, или Solr и ElasticSearch, возможно, проще использовать из PHP, чем необработанный Lucene самостоятельно.

...