Хотите заменить полный текст, и% foo% search чем-то лучше (и быстрее) - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть сайт (встроенный в php), где у меня есть примерно миллион записей в таблице mysql.Существует очень сложный «расширенный» поиск, который позволяет искать, сортировать и упорядочивать данные сотнями, если не тысячами различных способов.

К сожалению, поиск в MySQL не так хорош и очень медленный.Средний поиск в настоящее время занимает 5 секунд, и единственный способ, с помощью которого я могу настроить функцию сайта, - это кэшировать все запросы в течение недели (в настоящее время существует более 1,1 миллиона файлов кэша только для поисковых запросов).У меня есть «нечеткий поиск в гетто», который я реализую с помощью функции soundex ().

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

Я посмотрел на сфинкса, но там нет нечеткого поиска, который я бы использовалочень хотелось бы иметь.

1 Ответ

0 голосов
/ 25 сентября 2010

SQL не предназначен для тех типов запросов, которые вы выполняете, конечно, не в масштабе. Моя рекомендация будет следующей:

Индексируйте все ваши таблицы в Apache Solr Индекс. Solr - это поисковый сервер FOSS, построенный с использованием Lucene, который может легко запрашивать индекс в миллисекундах или меньше. Он поддерживает практически любой тип запроса: нечеткий, подстановочный знак, близость и т. Д.

Поскольку Solr предлагает RESTful (HTTP) API, его легко интегрировать в любую платформу, на которой вы находитесь.

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