Doctrine для поиска поведения против Zend Lucene в Symfony - PullRequest
2 голосов
/ 21 декабря 2010

Мне нужно искать ключевые слова в 2 таблицах, простая вещь

Я не определился с тем, использовать одно или другое?Любое предложение производительности мудрый?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

Как упомянул cuhuak, Lucene - это полнотекстовый поиск. Поскольку он написан на Java, вам также необходим Java-сервер (например, Tomcat). Если вам не нужен дополнительный сервер, возможно, стоит рассмотреть реализацию Zend Lucene (как отмечено в комментариях Мэтта Гибсона). С дополнительным сервером и если у вас только маленький хост, это МОЖЕТ не быть хорошей производительностью. Кроме того, Lucene нуждается в гораздо большей конфигурации и настройке, чем решения Doctrine.

С точки зрения производительности: Lucene создан для индексации миллионов слов и поиска по ним за миллисекунды. С миллионами слов в вашей «обычной» РСУБД все будет медленно. Вы также можете настроить поиск полного текста в базе данных, но это снова требует настройки и знания, что делать.

Итак, в общем, мысль: если сайт маленький (с точки зрения поиска), используйте подход Doctrine, если вы планируете получать серьезные объемы данных, используйте Lucene.

2 голосов
/ 21 декабря 2010

Lucene был разработан для полнотекстового поиска. Вам нужен этот функционал?

Если вам нужны только ключевые слова, используйте функцию поиска Доступно для поиска легче, чем Lucene.

Также рассмотрите возможность использования sfDoctrineActAsTaggablePlugin

...