Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> поиск с предварительным выводом результата, какова логика правильной работы?
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Подскажите пожалуйста, каков правильный алгоритм поиска по БД (21 000 записей) в режиме online, т.е. - начинаю набирать слово и сразу же появляются предварительные результаты?
Мое видение:
1. отправляем AJAX запрос к php по событию onchange в input
2. В php проверяем - если буковок больше 3-х то начинаем искать в БД при помощи fulltext(MyISAM), иначе ничего не делаем.
3. Тащим из базы все записи где есть эти 4 буквы (вот здесь вопрос - стоит ли тащить все или как то это делается по другому? )
4. Выводим их в списке select под input (пока не знаю как это делается, возможно не так?)
5. По выбору из select - выводим на страницу


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 13 дней


jquery autocomplete


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 21 день
Карма: 167




смотря, что ты делаешь, если "опережающий ввод", то нет, если полнотекстовый поиск, то почти так

1 и 2 Количество букв проверяй сразу в браузере.

3 не все, а например самые свежие или самые популярные с лимитом например 30 поисков и процент релевантости тоже можно ограничить, тут нюансов много.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Спасибо большое! Пойду изучать - первое (jquery autocomplete) и второе (полнотекстовый поиск)! Больше склоняюсь ко второму варианту, но пока не могу понять как вывести результаты в input (похоже придется объединять оба в один), думаю разберусь!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Все вроде нашёл, собрал в кучу (jquery autocomplete,полнотекстовый поиск ) - В общем получилось примерно так


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 21 день
Карма: 167




arbuzmaster, не получилось

в поиске я набираю "кам" ни одной КАМеры, зато всякого .... полные штаны, далее нажимаю найти, и мне пишет что "по вашему запросу ничего не найдено"
приехали

P.S. автокомплит, он же опережающий ввод, должен работать с первой буквы


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Цитата (Valick @ 18.10.2016 - 23:33)
arbuzmaster, не получилось

в поиске я набираю "кам" ни одной КАМеры, зато всякого .... полные штаны, далее нажимаю найти, и мне пишет что "по вашему запросу ничего не найдено"
приехали

P.S. автокомплит, он же опережающий ввод, должен работать с первой буквы

Да действительно если вводить только "кам" то выдает какую то ерунду, но если добавить еще "е"("каме") то выводит все записи с камерами, как исправить не знаю?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 21 день
Карма: 167




1 Всё скорее всего от невнимательности, по умолчанию полнотекстовый поиск исключает из результата выборку результат которой 50% и более от общего числа строк. Очень часто такое случается при экспериментах с ПП при маленькой БД. Там много еще "мулек", но надо себя заставить читать внимательнее и целиком.

2 Автокомпликт, должен предлагать варианты уже с первой введённой буквы, например я ввожу букву "к", а он мне "камера", "курятник", "кастрюля", но слова эти должны быть основаны на серьёзной статистике, а не взяты с потолка из словаря.

Я хочу сказать что поиск и всё что с ним связано (в том числе и эргономика) это предельно сложно. Ведь никому не нужен поиск, который постоянно "не угадывает" и искомый результат выдаёт где-нибудь на 20-той странице.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Спасибо, понятно, будем копать дальше!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 15 дней
Карма: 21




Цитата (Valick @ 19.10.2016 - 12:01)
1 Всё скорее всего от невнимательности, по умолчанию полнотекстовый поиск исключает из результата выборку результат которой 50% и более от общего числа строк. Очень часто такое случается при экспериментах с ПП при маленькой БД. Там много еще "мулек", но надо себя заставить читать внимательнее и целиком.

Прочитал внимательно и целиком на MySQL.ru и понял, что при вводе "кам" ничего находиться не будет, так как
Цитата

Для разбивки текста на слова MySQL использует очень простой синтаксический анализатор. ``Словом'' является любая последовательность символов, состоящая из букв, чисел, знаков `'' и `_'. Любое ``слово'', присутствующее в стоп-списке (stopword) или просто слишком короткое (3 символа или меньше), игнорируется.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса