Задачка поиска по нескольким полям
3064
8
Добрый день!
А вот как программистское сообщество думает - как может решаться следующая задача (а она решаема - такое же есть!):
есть БД с записями книг, среди полей которых есть title и author
есть поле поискового запроса
Если в запросе только название или только автор - то без проблем - делаем условие OR и всё
А вот если введут "Филатов про федота стрельца" или "Пушкин про федота стрельца"?
Как надо разбить поисковый запрос и искать части запроса в полях?
Михаил_1
Как надо разбить поисковый запрос и искать части запроса в полях?
Не надо разбивать, это слишком сложная задача. Проще объединить автора и название в одно поле и искать уже там. А полное совпадение названия или автора с частью запроса - это дополнительный + при ранжировании результатов поиска.
Михаил_1
Искать надо отдельные части и по количеству совпадений давать "оценку". Чем выше оценка - тем выше результат в таблице найденного.

Кстати, как планируете решать задачу поиска "Про Федота-стрельца Пушкина" ?
Я намекаю на то, что правильнее прикрутить готовые решения для полнотекстового поиска. Вы такого сами явно ен напишете, да и зачем, если это уже сделали.
Гугль в помощь.

Кстати, что за БД? нормальные БД уже имеют унутрях полнотекстовый поиск.
KSergey
В том-то и дело, что не представляю, как вычленить из запроса различные варианты автора (а там в любом месте запроса и склонения, и инициалы в разном порядке, и имя-фамилия, и фамилия-имя etc etc...)
БД - ADABAS. На ней система уже крутится, но сильно специфическая форма поиска (служебная, а надо упростить для обычных пользователей) для поиска нужно задавать, в каком именно поле искать. Есть поиск по всем полям, но как-то он не так работает...
Буду думать. Или искать решения (но тут специфика - я с одного сайта посылаю POST-запрос на другой сайт).
Или тупо сделаю чекбоксы по каким полям искать:улыб:
Михаил_1
Начните с гугля "как мне на сайте сделать полнотекстовый поиск"
ну или не на сайте
или так "поиск yandex для моего сайта как сделать"

Кстати, если вы банально опубликуете "реквизиты" всех книга на отдельных страницах - яндекс уже хорошо вполне проиндексирует
А что, в этом вашем АБИБАСе нет полнотекстового поиска? Что-то мне подсказывает, что это вообще его основная функция.
Михаил_1
БД - ADABAS. Есть поиск по всем полям, но как-то он не так работает...
Не хочу показаться грубым., но может, все таки, почитать документацию?
IEEE
Да, придется, наверное. Правда найти еe, как понял - нетривиальная задача.
Не поделитесь линком?
Михаил_1
Вроде как к СУБД и среде разработки шла документация в комплекте.