Я знаю, что моя логика здесь будет ужасной, так что несите меня. По сути, когда пользователь заполняет форму, состоящую из 3 ящиков ввода (представляющих 3 разных столбца в базе данных), я хочу выполнить поиск, в котором будут выполняться ключевые слова из заполненных полей и искать все другие профили пользователей (составляющие первого имя, опыт, мечты и изображение профиля) в таблице базы данных, содержащей не менее X% ключевых слов из полей ввода исходного пользователя.PHP MYSQLI Поисковый запрос с использованием массива в качестве ссылки
Я решил представить ключевые слова в массиве, так как это то, чем я больше всего знаком с точки зрения организации элементов. Используя этот массив в качестве ссылки, поиск будет сканировать таблицу users
для всех пользователей, чья информация профиля содержит X% ключевых слов в ссылочном массиве.
Массив уже подготовлен, но теперь мне нужно руководство относительно того, подходит или нет способ, которым я хочу закончить задачу, подходящий/действительный.
EDIT 1: Простите меня, если неясно, позвольте мне попробовать более разрозненный способ изобразить задачу.
- Пользователь заполняет 3 уникальных текстовых поля.
- Пользователь сохраняет введенные данные, в которых эти данные хранятся в базе данных (
users
таблицу конкретны) - Пользователь переходит в «Найти другие» страница
- пользователь нажимает на кнопку «Найти»
Запрос принимает пользовательская информация из 3 текстовых областей, фильтрует их индивидуально, а затем сжимает их в один массив ключевых слов.
- Другой запрос будет искать всю базу данных и отображать профили других пользователей, чьи профили содержат X% слов, соответствующих ключевым словам в массиве.
- Пользователь видит профили других пользователей с похожими словами в информации об их профилях.
массив, который будет содержать ключевые слова:
$compressed_array = array_merge($filtered1, $filtered2, $filtered3);
ваш вопрос непонятно. не могли бы вы немного понять, чего вы пытаетесь достичь? В идеале предоставление некоторого (псевдо) кода? – Burki
@Burki Я бы включил код, который я рассматриваю для проведения поиска, но я никогда не выполнял никаких задач, связанных с поиском, в этом масштабе и чувствовал себя потерянным. –
то, что вы описываете, должно быть технически возможным. Самая большая потенциальная проблема - производительность: в зависимости от количества записей, которые вы обрабатываете, ваши запросы будут очень медленными. Некоторые из них можно преодолеть, указав индекс в своих столбцах.Если вы планируете иметь большой объем записей, прочитайте на [Solr] (http://lucene.apache.org/solr/). – Burki