Поиск в базе данных с использованием таблицы поддержки для поиска FULLTEXT

Я реализую функцию поиска для REST API, и я впервые имею дело с поиском в большой базе данных.

Моя таблица расположения MySQL имеет следующие столбцы

| id | name | email | phone | postcode | address | verified |

Пользователь может искать местоположение по name, email, phone, postcode or address,

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

То, что я делал до сих пор, это взятие входной строки и выполнение запроса MATCH … AGAINST для каждого столбца с возможностью поиска, слияние результатов и возврат.

Тем не менее, я бы не стал создавать индексированную таблицу поддержки (location_query), который имеет две колонки.

| location_id | match_query |

и когда Location добавлен, я могу добавить новую строку в location_query, которая имеет значение как

0 | {NAME} {EMAIL} {PHONE} {POSTCODE} {ADDRESS}

а затем просто запустить поиск FULLTEXT по столбцу match_query?

Может ли это работать?

-1

Решение

Вы не предоставили никаких сведений о требованиях к производительности, количестве данных и текущей загрузке пользователей, но я предложил использовать поисковую систему (например, Apache Solr) вместо RDBMS.
Это позволяет точно контролировать стратегии индексации и поиска, а также повысить производительность.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]