2015-02-11 7 views
1

Я с трудом реализует функцию поиска для веб-системы на основе я работаю, я первым использовать MySQL Как с % подстановочные знаки%, но это не то, что я в поисках хочу показать, затем я нахожусь Полный поиск индекса текста, он очень хорошо работает, но имеет проблему при отображении объединенных нескольких таблиц с внешним ключом, которые я не знаю обходных решений, затем я пришел с MySQL с sphinx,PHP MySQL реализует функцию поиска

Могу ли я попросить любой совет наилучшим образом/технологии для внедрения поиск функции для поиска сложных таблиц базы данных

+1

Просьба представить примеры. – deW1

+0

Я задавал вопросы о функции поиска mysql [ссылка] (http://stackoverflow.com/questions/28270244/laravel-search-multiple-words-separated-by-space) [link] (http: // stackoverflow. com/questions/28448152/php-mysql-full-text-search-multiple-table-join-by-id) можете ли вы любезно дать совет о том, какой лучший способ/технологии реализовать функцию поиска для поиска сложной базы данных таблицы с использованием php и mysql thanks – user4006175

+1

Фактически вы не указываете, какая конкретная «проблема» у вас была.Просто потому, что вы не нашли обходного пути, не означает, что его нет. – barryhunter

ответ

2

Проверить Apache Solr search server

Apache Solr official website

этой технология позволит решить все ваши проблемы, связанные с поисковым

+0

это для php – Densol

+0

@ Densol да solr может работать с php также, на самом деле я из java-фона, поэтому я не пробовал его с php, но он поддерживает вы можете google для более подробной информации .. –

1

Я предполагаю, что общий ответ здесь вы хотите «поиска индекса» - индекс, специально предназначенный для выполнения запросов. Репозиторий, в котором есть все необходимые данные для ответа на запросы.

RDBMS (как MySQL) очень хорош для нормализации данных, настройки данных в компактном и удобном для обновления формате (т. Е. Сведение к минимуму дубликатов) - это здорово для хранения. Но запросы страдают, так как им приходится делать гораздо больше работы, чтобы «объединить» все требуемые данные.

... но для поиска денормализованной структуры может быть лучше всего. (Больше, но проще - поэтому быстрее «Поиск»

Есть много способов сделать что

  1. Материализованного вид, как указано в вашем другом потоке php mysql full text search multiple table joined by id -.. Держит все это в MySQL

    .
  2. Использование внешнего приложения Существует много примеров: Lucene (варианты включают Solr и ElasticSearch), SphinxSearch и многие другие. Это обычно работает аналогичным образом - создание выделенной копии данных для упрощения запросов .

  3. Используйте внешний провайдер. Ther - множество систем поиска «как сервис» (в основном обертки вокруг программного обеспечения, упомянутого в предыдущих сообщениях)

  4. Создание собственного! Его можно построить систему самостоятельно, используя только обычные таблицы mysql. По сути, реализация инвертированного индекса, вероятно, будет самой простой.

Что вы используете вплоть до личных предпочтений (например, внешнее приложение больше работы для настройки, но в целом это более мощный)

Смежные вопросы