Мой сайт ищет данные в тяжелых базах данных. Должен ли я использовать Lucene для поиска или написания собственного алгоритма? - PullRequest
1 голос
/ 16 февраля 2012

Я пишу веб-сайт, который индексирует большие объемы данных в базы данных (каждая содержит около 800 таблиц в каждой базе данных), и этот веб-сайт позволяет выполнять поиск в базе данных по различным элементам.Должен ли я использовать что-то вроде Lucene или просто написать свой собственный алгоритм поиска?Я использую PHP и MySQL.Хотя я могу фильтровать свои запросы SELECT и создавать алгоритм поиска, я просто хотел узнать, должен ли я использовать Lucene, потому что я просто индексирую вещи в базе данных.Также, пожалуйста, предложите что-нибудь, что может мне помочь.Забыл упомянуть, что хотя у меня есть 800 столов, они будут довольно маленькими по размеру.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Lucene - это зрелая, проверенная библиотека с открытым исходным кодом.

Я бы определенно сказал: постарайтесь использовать ее как можно чаще, она, вероятно, будет лучше и будет занимать меньше времени, чем реализация вашей собственной библиотеки.
Если есть определенная функциональность, которую не предоставляет lucene - вы всегда можете создать свой собственный вариант lucene, чтобы позаботиться о нем.

Не стоит недооценивать важность сообщества в использовании таких продуктов lucene:Помощь почти всегда доступна на форумах Lucene [и SO], а библиотека постоянно тестируется и поддерживается из-за большого количества пользователей!

1 голос
/ 16 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...