|
Динамический поиск
|
|||
---|---|---|---|
#18+
Всем доброго времени суток ! Есть такая задача , реализовать побуквенный вывод данных из базы , тоесть динамический. Например , юзер ввел "А" ему выдаются все записи из определенной таблицы , которые начинаются на "А", ввел юзер "АБ" , ему выдаю все записи начинающиеся на "АБ". Я чего-то не понимаю , или придется на каждое изменение строки , делать новый запрос в базу ? ... как-то уж совсем печально это выглядит , или возможно при вводе первого символа , получить на стороне сервера все записи начинающиеся с этой буквы , а дальнейший поиск делать по полученным , но это черевато проблемами , например придется отслеживать ситуации , когда строка становится пустой и на сервере обнулять текущие данные и делать новый запрос ... Да и вообще как-то печально выглядит , мож кто подскажет че делать ? ... Эта штука нужна для веб сайта ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:04 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0sпридется на каждое изменение строки , делать новый запрос в базу ? ... как-то уж совсем печально это выглядити в чём печаль? у вас юзер "войну и мир" будет в редактор ввода набирать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:12 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
egorychErik0sпридется на каждое изменение строки , делать новый запрос в базу ? ... как-то уж совсем печально это выглядити в чём печаль? у вас юзер "войну и мир" будет в редактор ввода набирать? Нет ) Просто думал , что есть более деликатное решение , которое бы уменьшало кол-во запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:20 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0s, в вебе так и есть. Можно усложнить проверкой скорости соединения, как в гугле-поиск (выключать чтобы не висло). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:39 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0s, их не так уж и много надо, на самом-то деле. Как правило, 3-4 букв достаточно, чтобы сократить поиск до получения искомого или достичь пустого списка. Вполне себе, имхо, нормальное условие. Сервер БД и нужен для того, чтобы исполнять запросы, кмк :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:41 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
egorych, *Вполне себе, имхо, нормальное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:44 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Вы меня успокоили ) Спасибо ! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2011, 22:46 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0sЯ чего-то не понимаю , или придется на каждое изменение строки , делать новый запрос в базу ? А кэширование зачем? Делаем кэш и радуемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 07:56 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Я плохо написал. Суть в том, что можно поставить кэш и спрашивать запросы оттуда. Во-вторых, искать не по одной букве, а по двум - сразу снизить количество запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 07:58 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
LeonidvА кэширование зачем? Делаем кэш и радуемся. Всё зависит от объема контента, который мы хотим покрыть кешем. P.S. Автор, смотрите в сторону "full text search". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 08:27 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Можно ставить select ... limit N, где N зависит от длины поисковой строки. Чем короче, тем строде лимит. Еще полезно посылать запрос к БД не сразу после ввода символа, а с задержкой в 80-100 мс. Человек почти не чувствует это, зато, при быстром вводе, почти всегда дело доходит до ввода 2-3 символов. Величина задержки между вводом символов сокращается при вводе все более длинной строки. Ну и разные partial индексы никто не отменял.... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 14:29 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Leonidv, просто, тормозит, обычно HTTP (не СУБД). А куда там кеш? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 17:20 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Petro123Leonidv, просто, тормозит, обычно HTTP (не СУБД). А куда там кеш? HTTP??? В смысле передача байтов по каналу или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 17:48 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Leonidv, ну да, транспорт. Т.е. передача результатов запроса в виде нового фильтрованного списка (гугл). Моментально работает кеш DevExpress на клиенте до 10 000 записей (перекачает всё на клиента (TCP)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 18:01 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Petro123Leonidv, ну да, транспорт. Т.е. передача результатов запроса в виде нового фильтрованного списка (гугл). Моментально работает кеш DevExpress на клиенте до 10 000 записей (перекачает всё на клиента (TCP)) Передать 300 байт это жуткая задача для современных телекоммуникаций? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 20:30 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Leonidv, помилуйте, я не ответственный за ТЕЛЕкоммуникации :) Возьмите реальный пример гугл-поиск, и посмотрите КАК там всё это работает и скока там байт. Вам и МСУ указал на проблемы кэша. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 20:55 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Petro123, Объем там будет небольшой , в базе будет < 1000 записей , да и результаты мало пересекаются , в том смысле что , там будут фамилии , имена людей , после ввода 3-4 символов , уже список будет < 10 элементов. p.s. MCY спасибо за наводку ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 22:14 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0s, у Серверов есть такая шутка Если ты сервер, не суетись под клиентом (с) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 22:40 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Petro123, Надо будет запомнить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 22:52 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0sОбъем там будет небольшой , в базе будет < 1000 записей , да и результаты мало пересекаются , в том смысле что , там будут фамилии , имена людей , после ввода 3-4 символов , уже список будет < 10 элементов. и ради этого все затеяно? Оставьте сервер в покое. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 23:18 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
iscrafmErik0sОбъем там будет небольшой , в базе будет < 1000 записей , да и результаты мало пересекаются , в том смысле что , там будут фамилии , имена людей , после ввода 3-4 символов , уже список будет < 10 элементов. и ради этого все затеяно? Оставьте сервер в покое. Ну , жаль конечно , что по объемам гугл не догоняю )) Но все дело в мелочах ... Как говорится "мелочь , а приятно " ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 23:47 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
Erik0siscrafmпропущено... и ради этого все затеяно? Оставьте сервер в покое. Ну , жаль конечно , что по объемам гугл не догоняю )) Но все дело в мелочах ... Как говорится "мелочь , а приятно " да гугл то здесь причем? Загружайте при таких объемах все на клиента и ищите там во всех возможных вариантах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 23:57 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
iscrafm, Я Вас не так понял , сорри ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 00:29 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
iscrafmОбъем там будет небольшой , в базе будет < 1000 записей Если данные редко изменяемы - кешируйте. P.S. Вот тут писал про архитектуру с кешированием: http://www.sql.ru/forum/actualthread.aspx?tid=819193 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 08:51 |
|
Динамический поиск
|
|||
---|---|---|---|
#18+
МСУiscrafmОбъем там будет небольшой , в базе будет < 1000 записей Если данные редко изменяемы - кешируйте. P.S. Вот тут писал про архитектуру с кешированием: http://www.sql.ru/forum/actualthread.aspx?tid=819193 я этого не говорил ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 09:45 |
|
|
start [/forum/topic.php?fid=33&fpage=26&tid=1548053]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 476ms |
0 / 0 |