LINUX.ORG.RU

Поиск.

 , ,


0

1

Есть таблица, в которой есть поля: login, firstname, lastname.

Нужно организовать поиск по ним.

Пользователь может вводить следующее:

linus42
Linux T
Linux Torldvalds
Torldvalds
и другое.

То есть не понятно, что он ввел, т.к может ввести часть логина, имени, фамилии, имени и фамилии, фамилии и имени, полный логин, полное имя ...

В общем я не могу составить алгоритм, как узнать, что он ввел, чтобы слать нужный запрос в базу, а то делать кучу OR в sql на поиске не хочу.

man полнотекстовый поиск

disarmer ★★★
()
Ответ на: комментарий от MyTrooName

если я правильно понимаю, то

WHERE MATCH (login, firstname, lastname) AGAINST ('Linux Torldvalds');
ничего не найдет, т.к у нас указано и имя и фамилия, которые в разных колонках.

henewuge
() автор топика
Ответ на: комментарий от henewuge

в тупом варинте то что ввел юзер бъется на токены по пробелам и для каждого токена выполняется то что ты показал.

Deleted
()

см. soundex, metaphone чтобы искать по созвучию

MKuznetsov ★★★★★
()

Если я твоё ТЗ правильно понял, тебе в сторону solr/fredhopper смотреть надо. Хотя, если честно, я толком не понял, чего тебе надо - запости уж текст курсача/лабы.

cherry-pick
()
Ответ на: комментарий от henewuge

просто догадка, но, вероятно, надо запилить FULL TEXT INDEX по составному ключу

ты ж не собирался без индекса искать?

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от henewuge

нет, умный вариант тебе тут подсказывают с первого поста

Deleted
()

Уже как минимум 2 человека не знают, как пишется фамилия их бога. Ололо

anonymous
()
Ответ на: комментарий от anonymous

ты тут первый ему статус бога присвоил, и может даже единственный, кто знает, как писать его фамилию

MyTrooName ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.