|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2003
Сообщений: 243
|
Да... распределённые базы - это нелегко. Тогда может имеет смысл вообще сделать отдельную таблицу для полнотекстового поиска - и в неё складывать
|
|
|||||
Цитата:
|
|
|||||
igor82
Блин, ну неужили непонятно. Вот смотри:
Строку запроса мы разбиваем на слова. Потом считаем количество слов. Далее мы цикл прогоняем столько раз, сколько у нас слов. При каждом проходе цикла мы проверяем наличие такого слова в БД. Вот и всё . Помойму ничего военного нет. И нестоит сильно голову ломать
__________________
Mr_Andruha |
|
|||||
Цитата:
Прежде всего огромное спасибо что дал ответы на вопрос...Честно - спасибо.....Но дело в том что так как ты показал выше никто не далает...И вывод записей не скопом нужен а опред образом.... |
|
|||||
Цитата:
Пользователь ввел в строку поиска фразу 'ford спойлер фары' Мы разбиваем строку на 'ford', 'спойлер', 'фары' Нам нужно чтобы вывелись записи (если есть) где есть например ford и фары, ford и спойлер и т.д....Проблема в том что если мы ставим просто OR то база данных может вывести например FORD КОЛЁСНЫЕ ДИСКИ так как она найдет совпадения для 'ford'...а нам нужно чтобы она выводила записи где прежде всего встречаются эти слова вместе а потом уже остальные |
|
|||||
Регистрация: Apr 2003
Сообщений: 243
|
Уточнение:
Вы же работаете с SQL. Записи выводятся из таблицы по определению - это же реляционная модель. Как Вы собираетесь консолидировать эти РАЗНЫЕ таблицы? |
|
|||||
((
Последний раз редактировалось kompadre; 23.06.2004 в 04:28. |
|
|||||
Последний раз редактировалось kompadre; 23.06.2004 в 04:33. |
|
|||||
О! Блин. Прошлые два поста либо мускул либо мой браузер глючил и отсылалась утф-каша.
Вобщем так, мой дорогой друг. Либо ты обьясняеш конкретно в чем загвоздка (вот запрос а вот ошибка) либо ты нечего не добьешься (. А вообще, раз уж ты заведуеш огромной базой данных почему-бы тебе самому не найти ответы на твои неудобопонятные вопросы? Это-же так приятно! =) Последний раз редактировалось kompadre; 23.06.2004 в 04:39. |
|
|||||
Вот смотрите ещё раз....
В таблице t1 предположим есть поля 'product_name' , 'car_name'..... Предположим в таблице есть записи: product_name | car_name ------------------------------------------ спойлер | ford фары | ford колёсный диск | ford глушитель | ford Наша цель осуществить поиск по этой таблице....Предположим что пользователь ввел фразу для поиска 'ford спойлер фары'. Что мы делаем 1) разбиваем фразу на слова 'ford' , 'спойлер', 'фары' 2) Пишем стандартный запрос : SELECT t1.* FROM `table_1` t1 WHERE (t1.product_name='ford' OR t1.car_name='ford') OR (t1.product_name='спойлер' OR t1.car_name='спойлер') OR (t1.product_name='фары' OR t1.car_name='фары') ТАК ВОТ - этот запрос правильно работать не будет так как помимо ФАР и СПОЙЛЕРОВ выведутся ещё и глушители с дисками (это недопустимо)...А как построить запрос таким образом чтобы сначало вывелись результаты где втречается по возможности вся связка слов, или по крайней мере их сочетание например: ford фары ИЛИ ford спойлер.... |
Часовой пояс GMT +4, время: 23:50. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|