Ищем базовый класс поиска PHP / MySQL - PullRequest
6 голосов
/ 08 октября 2010

Noob-ish вопрос: я ищу легкий, но приличный способ php для поиска во всех полях таблицы MySql, независимо от структуры . Сначала я попробовал сам по себе с выбором mysql по умолчанию, но это слишком просто. Я ищу что-то, что должно по крайней мере упорядочить результаты по наилучшему соответствию (подсветка ключевых слов тоже подойдет).

Я удивлен маленькой информацией, которую я нашел, гуглявшейся вокруг. До сих пор я обнаружил реализацию Zend Framework Lucene , но она кажется слишком сложной (создание отдельного индекса) для моих нужд. Прежде чем копаться в этом, мне было интересно, нет ли более легкого пути.

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

Потому что поиск очень сложная вещь.Подумай о том, что ты спрашиваешь.Вам нужна крошечная поисковая система, которая может просто выяснить, как составлены ваши таблицы, что имеет значение и в каком порядке все будет происходить. Если вы сможете это изобрести, вы разбогатеете и, вероятно, будете работать в Google.* Lucene, как вы упомянули, или Sphinx search (http://sphinxsearch.com/) - это здорово.MySQL также имеет встроенный полнотекстовый поиск, который вы можете найти по адресу http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Но все они требуют настройки и реализации.Они не просто «узнают», что вы хотите.

Самое близкое, о чем я могу подумать, - это попробовать пользовательский поиск Google (http://www.google.com/cse/).Это не смотрит на вашу базу данных, а вместо этого создает паук на вашем сайте и индексирует ваши страницы после их динамического объединения.Вам не нужно беспокоиться об индексе, потому что все это сделано для вас в Google.Конечно, вы все еще не можете настроить рейтинг (Google определяет его), и вы отказываетесь от контроля над данными, но я думаю, что это настолько близко к «готовому» решению, насколько вы собираетесь найти.

1 голос
/ 09 октября 2010

Я фанат Sphider (http://sphider.eu) поисковая система.

Это относительно легкий, простой в настройке, и он делает несколько сайтов. Как и в случае пользовательского поиска Google, он будет выполнять прямой поиск не по вашим таблицам, а по вашим страницам после их динамического создания.

Sphider - это не корпоративное решение, но оно будет работать на ~ 10 000 страниц без чрезмерного снижения производительности.

...