Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
какой самый эффективный способ в таком битмапе: 101011101000110
определить, что 1 находится на позициях: 1,3,5,6,7,9,13,14
?
итерацией там аж 2 for + 1 if получается
21 авг 19, 14:29    [21954450]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
Выбирай
21 авг 19, 14:35    [21954462]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48164

Замени один for на таблицу масок. Никак ты не получишь N результатов быстрее чем за O(N).

Posted via ActualForum NNTP Server 1.5

21 авг 19, 14:36    [21954464]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
забыл упомянуть, что 64 битами тут не ограничивается
строка может иметь более миллиона 0/1
21 авг 19, 15:18    [21954520]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
ИМХО быстрее всего таблицу использовать из 256 элементов, где каждый элемент это вектор с индексами.
Индекс Значение
0
10
21
30 1
42
50 2
......
255 0 1 2 3 4 5 6 7

Дальше побайтно прогонять через таблицу.

Можно по два байта за раз, тогда таблица будет 65536 элементов.
21 авг 19, 15:27    [21954534]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
а сколько может быть индексов в таком векторе?
у меня скорее наоборот - 1 вектор с индексами (но на лям индексов), а не 255
21 авг 19, 16:03    [21954562]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
1 байт - 8 бит, т.е. в индекс до 2^8 (0...255), в значении до 8 элементов.
21 авг 19, 16:06    [21954565]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48164

полудух
строка может иметь более миллиона 0/1

Сугубо всё равно, только цикл будет уже по строке, а внутри него куча if-ов по таблице
масок. Плюс можно распараллелить по кускам строки.

Posted via ActualForum NNTP Server 1.5

21 авг 19, 16:12    [21954572]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48164

Dimitry Sibiryakov
внутри него куча if-ов

И да, по байту будет тормозить, лучше сразу данные держать в uintptr_t.

Posted via ActualForum NNTP Server 1.5

21 авг 19, 16:17    [21954584]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
ну а так если:
vector<int> cnt_num_f_str01(string &str01)
{
    int cnt = 1;
    vector<int> idV;
    for (char &c : str01)
    {
//      cout << c << ' ' << cnt << endl;
        if (c == '1')   {idV.push_back(cnt);}
        ++cnt;
    }

    return idV;
}

//##############################################################################
int main(int argc, char *argv[])
{
    system("clear");

    string str = "010101010101";
    cnt_num_f_str01(str);

    return 0;
}
21 авг 19, 17:20    [21954674]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух,
Критерии эффективности? Память, скорость?
Ну и с двумя циклами я не понял. Это как?
Вроде ваш код с которого начинать надо.
21 авг 19, 20:19    [21954814]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
полудух
ну а так если

Это как бы не битмап вовсе, а строка ноликов и единичек, т.е. 1 байт отображает 1 бит, избыточность в 256 раз. Я бы для начала поковырял откуда это недоразумение взялось и там бы порядок навел.
21 авг 19, 20:26    [21954820]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
Dima T
полудух
ну а так если

Это как бы не битмап вовсе, а строка ноликов и единичек, т.е. 1 байт отображает 1 бит, избыточность в 256 раз. Я бы для начала поковырял откуда это недоразумение взялось и там бы порядок навел.
+1))
21 авг 19, 20:54    [21954842]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48164

Dima T
1 байт отображает 1 бит, избыточность в 256 раз.

8 раз.

Posted via ActualForum NNTP Server 1.5

21 авг 19, 21:36    [21954860]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
L.Otujktd
Member

Откуда:
Сообщений: 71
полудух
ну а так если:
vector<int> cnt_num_f_str01(string &str01)
{
    int cnt = 1;
    vector<int> idV;
    for (char &c : str01)
    {
//      cout << c << ' ' << cnt << endl;
        if (c == '1')   {idV.push_back(cnt);}
        ++cnt;
    }

    return idV;
}

//##############################################################################
int main(int argc, char *argv[])
{
    system("clear");

    string str = "010101010101";
    cnt_num_f_str01(str);

    return 0;
}

Имхо неэффективно с точки зрения выделения памяти-при разных входных значениях будет теряться разное время на реалллокацию/копирование. Можете промерять время выполения на разных наборах м убедиться. Я бы сделал буфер размером с макс.длину строки и работал бы с ним(записывал/читал бы результат), и никаких stl-классов
21 авг 19, 21:39    [21954862]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
Dima T
избыточность в 256 раз

опять накурился Картинка с другого сайта.
Я бы для начала поковырял откуда это недоразумение взялось и там бы порядок навел.

отсюда
порядок там не навести
можно кое-что улучшить, например, ф-ю в постгрю перенести, чтобы не гонять туда огромный список ID
ну и вроде всё.
21 авг 19, 21:40    [21954863]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
L.Otujktd
Я бы сделал буфер размером с макс.длину строки и работал бы с ним(записывал/читал бы результат), и никаких stl-классов

вот только операция одноразовая
21 авг 19, 21:44    [21954865]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух,

А ты хитрый манипулятор! С 1 поста было всем очевидно что ты подсчитываешь биты в регистре.
Потом мы узнали что "аж до миллиона битов". Потом мы узнали что тебе нормлёк и строковыми
операциями посчитать. А потом ты вообще проговорился что дескыть под постгрес да под интернет
магазины.

Ну что. Может мы сразу это перенесем в Разработку Инфо систем ?
22 авг 19, 01:04    [21954956]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
я спрашиваю здесь, потому что тут самые эффективные алгоритмы
22 авг 19, 01:25    [21954958]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Малыхин Сергей
Member

Откуда: г. Курск
Сообщений: 720
данные же не пересекаются написать пиксельный шейдер для видеокарты и оно те распаралелит аутоматом на все конвейеры видеокарты.
22 авг 19, 01:47    [21954960]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
я спрашиваю здесь, потому что тут самые эффективные алгоритмы
он прав. Эффективность всегда относительная.
Вот нолики и единички в символьном виде передавать неэффективно). Согласись.
22 авг 19, 07:16    [21954997]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
Малыхин Сергей,
+1))
Можно разбить стринг на куски и потоками пройтись параллельно в кусках.
Странная задача, поэтому лень думать.
22 авг 19, 07:19    [21954998]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
полудух
отсюда
порядок там не навести
можно кое-что улучшить, например, ф-ю в постгрю перенести, чтобы не гонять туда огромный список ID
ну и вроде всё.

Почитай про EAV модель, обычно ее для этих целей применяют.
22 авг 19, 07:29    [21955000]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Напомнило мой топик https://www.sql.ru/forum/1242903/tyapnichnyy-poisk-tovarov-po-naboru-atributov
22 авг 19, 09:11    [21955054]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
)) все в мире уже давно написанно, и решения найдены).
По теме можно сказать что код выше от ТС годен к употреблению.
А оптимизацию раньше времени не проводят. Нет ограничений.
22 авг 19, 09:51    [21955098]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Давайте обсудим недостатки решения которое приведено в статье https://habr.com/ru/post/261137/
22 авг 19, 10:34    [21955160]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Напомнило мой топик https://www.sql.ru/forum/1242903/tyapnichnyy-poisk-tovarov-po-naboru-atributov

ну так эта тема про решение твоей проблемы Картинка с другого сайта.
а советы фронтендеров с фреймворками для меня имеют нулевую ценность, поэтому у меня в их разделе 0 тем Картинка с другого сайта.
22 авг 19, 11:01    [21955194]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Давайте обсудим недостатки решения которое приведено в статье https://habr.com/ru/post/261137/

если что не устраивает, есть ещё монга и эластик
но как по мне решение идеальное
на самом деле тут редис то вроде и не нужен (надо тестить)
в постгре можно ф-ю держать, она также в памяти отработает
22 авг 19, 11:04    [21955196]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Постгрес никогда не считался быстрой системой. Такова его архитектура. Поэтому. Есть у меня сомнения.

По поводу редиски я не против но нужен внятный механизм расширения бизнес модели этих фасетов
и классификаторов.

Вангую что девочка-контент-менеджер магазина просто ушатает эту систему постоянно (2-3) раза в час
закидывая туда новые типы товаров и их атрибутов поиска.

Если механика расширения (на ходу!) изначально заложена то гуд. Если нет - то система будет постоянно
ребилдится и как следствие недоступна.

Вангую также что девочка закинет туда 100500 классов (из Экцеля ага) просто так на всякий случай.
на будущее. И эти пустые атрибуты навсегда займут место в битовой маске. И не будет никакой
возможности в будущем их утрамбовать обратно.

К каким последствиям приведет пустое неиспользованое захватывание бит в маске вы можете
посчитать. Это память сервера Redis. А память обычно очень быстро кончается.

Вот теперь давайте обсуждать эти поинты. И если эти сценарии невозможны - то почему.
22 авг 19, 11:13    [21955207]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton
Постгрес никогда не считался быстрой системой. Такова его архитектура
он упорно гнет решение расширить постгри и в его оперативке решать задачи.

полудух
в постгре можно ф-ю держать, она также в памяти отработает
22 авг 19, 11:23    [21955214]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
PetroNotC Sharp
mayton
Постгрес никогда не считался быстрой системой. Такова его архитектура
он упорно гнет решение расширить постгри и в его оперативке решать задачи.

Я где-то в глубине души даже готов согласиться. Но почему за более чем 20 лет эволюции, Postgres
не предоставил нам коробочного решения для фасетного поиска?

Варианты. 1) Это не работает в Postgresql. 2) Гибридные решения с Redis работают эффективнее.
22 авг 19, 11:43    [21955240]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton
Варианты. 1) Это не работает в Postgresql. 2) Гибридные решения с Redis работают эффективнее.

3. Фасетный поиск это не задача реляционных БД.
22 авг 19, 11:56    [21955259]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
PetroNotC Sharp
mayton
Варианты. 1) Это не работает в Postgresql. 2) Гибридные решения с Redis работают эффективнее.

3. Фасетный поиск это не задача реляционных БД.

А полнотекстовый? А ГИС?
22 авг 19, 12:05    [21955276]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
ГИС это отдельные картриджи в сиквел, оракле и постгри.
Полнотекстовый насколько помню в java используют не саму Рсубд.
22 авг 19, 12:09    [21955283]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Может полудух хочет кардтридж под Постргрес. Чем его идея тогда хуже оракловой?
22 авг 19, 12:17    [21955296]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton
Может полудух хочет кардтридж под Постргрес. Чем его идея тогда хуже оракловой?
может. Пусть делает.
Мы обсудили почему за 20 лет нет этого до сих пор.
Это есть но не в бд.
Когда что то пишешь с нуля, надо понимать - зачем.
22 авг 19, 12:33    [21955324]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Я думаю что поиск в БД по списку денормализованных атрибутов - не согласуется с чистой теорией.
Это даже не 1НФ. Но есть потребности бизнеса в том чтобы искать какую-то хрень например

SELECT * from TOVAR where contains(hashtags,'Samsung','HDMI',......и еще штук 20 атрибутов)

и искать быстро. На предельной скорости. Полнотекстовые движки это решают фильтром Блума + точной проверкой после
предварительной выборки.

Это даже инкапсулировано в некоторые файловые форматы бигдаты такие как Apache ORC.

Кстати в одном из семинаров по постргресу главный постгресщик рассказывал историю возникновения JSONB.
До этого был другой подход. Просто в хранении списка ключевых слов и в текстовом индексировании. Я думаю
что это может быть то что нужно полудуху. Пускай он погуглит по легаси-плагинам. Или опять-же JSONB+index.
22 авг 19, 12:55    [21955354]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton
SELECT * from TOVAR where contains(hashtags,'Samsung','HDMI',......и еще штук 20 атрибутов)
надо еще доказать что это долго.
Пример
https://www.booking.com/searchresults.ru.html?aid=315714&label=hotel-17190-cy-BYwqOZylBAFd_pFvFJS5*QS261061452601:pl:ta:p1:p2:ac:ap1t1:neg:fi:tikwd-45059702856:lp9040992:li:det:dm&sid=e86994e98710d3de6b5454fa3f600536&sb=1&src=searchresults&src_elem=sb&error_url=https://www.booking.com/searchresults.ru.html?aid=315714;label=hotel-17190-cy-BYwqOZylBAFd_pFvFJS5%2AQS261061452601%3Apl%3Ata%3Ap1%3Ap2%3Aac%3Aap1t1%3Aneg%3Afi%3Atikwd-45059702856%3Alp9040992%3Ali%3Adet%3Adm;sid=e86994e98710d3de6b5454fa3f600536;tmpl=searchresults;checkin_month=9;checkin_monthday=28;checkin_year=2019;checkout_month=10;checkout_monthday=3;checkout_year=2019;city=-2738120;class_interval=1;dest_id=-2738120;dest_type=city;dtdisc=0;from_sf=1;group_adults=2;group_children=0;highlighted_hotels=17190;inac=0;index_postcard=0;label_click=undef;nflt=pri%3D2%3Bhr_24%3D8%3Bht_id%3D204%3Breview_score%3D80%3B;no_rooms=1;offset=0;postcard=0;room1=A%2CA;sb_price_type=total;shw_aparth=1;slp_r_match=0;src=searchresults;src_elem=sb;srpvid=0da65b5061f1016b;ss=%D0%90%D0%B9%D0%B8%D1%8F-%D0%9D%D0%B0%D0%BF%D0%B0;ss_all=0;ssb=empty;sshis=0;ssne=%D0%90%D0%B9%D0%B8%D1%8F-%D0%9D%D0%B0%D0%BF%D0%B0;ssne_untouched=%D0%90%D0%B9%D0%B8%D1%8F-%D0%9D%D0%B0%D0%BF%D0%B0&;&highlighted_hotels=17190&ss=Айия-Напа&is_ski_area=0&ssne=Айия-Напа&ssne_untouched=Айия-Напа&city=-2738120&checkin_year=2019&checkin_month=9&checkin_monthday=29&checkout_year=2019&checkout_month=10&checkout_monthday=3&group_adults=2&group_children=0&no_rooms=1&from_sf=1&nflt=pri=2;hr_24=8;ht_id=204;review_score=80;
22 авг 19, 13:09    [21955368]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
PetroNotC Sharp, я не понял к чему эта ссылка.
Я с твоего позволения не буду на нее нажимать.
Можешь прояснить к чему она? Что там внутри?
22 авг 19, 13:10    [21955371]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
Формирование параметров вебмагазина букинга по товарам.
На форуме ссылок с вирусами нет.
Видно что параметров куча и все они не битовые маски.
Можно 20 парам поставить в where и все они отработают на ура.
То есть твоё число 20 имхо мало чтобы были проблемы.
22 авг 19, 13:31    [21955409]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Постгрес никогда не считался быстрой системой. Такова его архитектура. Поэтому. Есть у меня сомнения.

По поводу редиски я не против но нужен внятный механизм расширения бизнес модели этих фасетов
и классификаторов.

Вангую что девочка-контент-менеджер магазина просто ушатает эту систему постоянно (2-3) раза в час
закидывая туда новые типы товаров и их атрибутов поиска.

Если механика расширения (на ходу!) изначально заложена то гуд. Если нет - то система будет постоянно
ребилдится и как следствие недоступна.

Вангую также что девочка закинет туда 100500 классов (из Экцеля ага) просто так на всякий случай.
на будущее. И эти пустые атрибуты навсегда займут место в битовой маске. И не будет никакой
возможности в будущем их утрамбовать обратно.

К каким последствиям приведет пустое неиспользованое захватывание бит в маске вы можете
посчитать. Это память сервера Redis. А память обычно очень быстро кончается.

Вот теперь давайте обсуждать эти поинты. И если эти сценарии невозможны - то почему.

там есть один нюанс, которого в статье нет
нужна агрегация
потому что только агрегация даст последовательную цепочку ID, которым соответствуют позиции 01 в битмапе (они же последовательно идут)
иначе неизбежны пробелы.
с одной стороны доп.костыль, а с другой - нет никаких проблем с обновлением в любой точке
чё угодно можно выкинуть, чё угодно вставить
и никакие девки не страшны Картинка с другого сайта.
лишние атрибуты конечно надо выкидывать, а как ещё
только вот атрибуты хранятся в справочнике и их можно автоматически включать в фильтр

памяти там 625 КБ
автор
плюсы такого решения:
1) Жрёт мало памяти. У нас > 50000 товаров, около 100 значений фильтров, то есть 50000 * 100 = 5 000 000 бит = всего 625 килобайт памяти.
2) Очень быстро. Сложность побитовой операции O(N), тем не менее, строки у нас не миллионами байт измеряются, а перемножить пару-тройку битмапов ио 50000 бит — задача пары микросекунд для процессора. Overall, в худшем случае (перемножение всех фильтров), замеряя разницу времени в PHP до отправки команды в REDIS и после получения результата — 40мс (это с доп. функцией из п.3, далее). Вполне реалтаймовая генерация страницы, для веба пойдёт. Если кажется много — просьба кешируйте результат, но нас это удовлетворило вполне.

mayton
Постгрес никогда не считался быстрой системой. Такова его архитектура. Поэтому. Есть у меня сомнения.

во1, это не так. Откуда такое заявление взялось?
во2, речь про операции в памяти. Мелкая таблица с атрибутами измеряется в килобайтах и будет в памяти всю дорогу. Накинуть на неё операцию AND - займёт, по идее, столько же, сколько и в редиске.
Вопрос только в алгоритмах, но там же стандартная библиотека должна быть.
mayton
Но почему за более чем 20 лет эволюции, Postgres не предоставил нам коробочного решения для фасетного поиска?

ты же говорил, что любитель послушать лекции по постгре, так там Бартунов регулярно говорит, что людей мало, людей не хватает, люди вы где, ау?, люди, дайте людей!, вэлком люди, у нас куча задач, нужны люди, люди, ЛЮДИ11!
через одну повторяет Картинка с другого сайта.
mayton
Кстати в одном из семинаров по постргресу главный постгресщик рассказывал историю возникновения JSONB.
До этого был другой подход. Просто в хранении списка ключевых слов и в текстовом индексировании. Я думаю
что это может быть то что нужно полудуху. Пускай он погуглит по легаси-плагинам. Или опять-же JSONB+index.

я про JSONB ещё года 2 назад всё изучил и тесты с монгой видел
JSONB не то.
22 авг 19, 14:32    [21955527]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
PetroNotC Sharp
mayton
SELECT * from TOVAR where contains(hashtags,'Samsung','HDMI',......и еще штук 20 атрибутов)
надо еще доказать что это долго.
Пример
(мусор удалён)

вы там с Димой один косяк на двоих чтоли курите Картинка с другого сайта.
вот так фильтр выглядит: /?f=ap:5_3_5;bh:28_99_33;ck:7_9_22
22 авг 19, 14:34    [21955529]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Я думаю что поиск в БД по списку денормализованных атрибутов - не согласуется с чистой теорией.
Это даже не 1НФ. Но есть потребности бизнеса в том чтобы искать какую-то хрень например

денормализация и поиск по ID - это самый быстрый вариант что-то найти
22 авг 19, 14:37    [21955542]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
нужна агрегация
потому что только агрегация даст последовательную цепочку ID, которым соответствуют позиции 01 в битмапе (они же последовательно идут)
иначе неизбежны пробелы.
с одной стороны доп.костыль, а с другой - нет никаких проблем с обновлением в любой точке
чё угодно можно выкинуть, чё угодно вставить
и никакие девки не страшны Картинка с другого сайта.
лишние атрибуты конечно надо выкидывать, а как ещё
только вот атрибуты хранятся в справочнике и их можно автоматически включать в фильтр

Ничего не понял про агрегацию. Агрегация это применение формулы типа min, max, sum .e.t.c.
Приведи пример твоей агрегации.
22 авг 19, 14:39    [21955551]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3025
полудух
Dima T
избыточность в 256 раз

опять накурился Картинка с другого сайта.
Я бы для начала поковырял откуда это недоразумение взялось и там бы порядок навел.

отсюда
порядок там не навести
можно кое-что улучшить, например, ф-ю в постгрю перенести, чтобы не гонять туда огромный список ID
ну и вроде всё.


если оттуда, то вы собрались пользоваться Редисом? если да, то там есть операции работы с множествами, битами и т.д.
22 авг 19, 14:45    [21955561]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
mayton
Я думаю что поиск в БД по списку денормализованных атрибутов - не согласуется с чистой теорией.
Это даже не 1НФ. Но есть потребности бизнеса в том чтобы искать какую-то хрень например

денормализация и поиск по ID - это самый быстрый вариант что-то найти
да. Но магазин плохо ложиться на данную модель. Отсюда костыли в виде EAV, xml, json,...
22 авг 19, 14:50    [21955573]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
во1, это не так. Откуда такое заявление взялось?
во2, речь про операции в памяти. Мелкая таблица с атрибутами измеряется в килобайтах и будет в памяти всю дорогу. Накинуть на неё операцию AND - займёт, по идее, столько же, сколько и в редиске.
Вопрос только в алгоритмах, но там же стандартная библиотека должна быть.

Это заявление появилось после многих лет наблюдений за Ораклом.
Потом я понаблюдал как работает PG. Поюзал его. Почитал про внутренне
устройство таблиц. И сдалал для себя выводы.
22 авг 19, 14:50    [21955575]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
ты же говорил, что любитель послушать лекции по постгре, так там Бартунов регулярно говорит, что людей мало, людей не хватает, люди вы где, ау?, люди, дайте людей!, вэлком люди, у нас куча задач, нужны люди, люди, ЛЮДИ11!

Да. Я слушал лекции Бартунова. Я сочувственно кивал.
Но какое это имеет отношение ко мне чьорт вась возьми, сударь!
22 авг 19, 14:52    [21955580]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
я про JSONB ещё года 2 назад всё изучил и тесты с монгой видел
JSONB не то.

У тебя есть уже бенчмарк в котором твой магазин заходит атрибутами в JSONB?
22 авг 19, 14:53    [21955582]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
вы там с Димой один косяк на двоих чтоли курите Картинка с другого сайта.
вот так фильтр выглядит: /?f=ap:5_3_5;bh:28_99_33;ck:7_9_22
не знаю никакого димы и твоих примеров)))). LOL
Это же не из моего урл?
Говори толком.
У меня урл вроде обычный where.
Дай твой урл из сети.
Будет конкретика.
22 авг 19, 14:58    [21955584]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
PetroNotC Sharp
полудух
пропущено...

денормализация и поиск по ID - это самый быстрый вариант что-то найти
да. Но магазин плохо ложиться на данную модель. Отсюда костыли в виде EAV, xml, json,...

EAV - не обеспечивает нужной скорости сбора информации. Фактически EAV эффективен на коротких
точечных транзакциях типа security, metadata где мы берем ID принципала и смотрим какие напрмиер
у него права и привилегии есть. Если мы по толстому EAV (магазин) будем постоянно бомбить поисковыми
реквестами от UI фронта интернет магазина - то база умрёт.

Я готов спорить что умрёт на продуктовой нагрузке и при той архитектуре которую я имею в виду.
22 авг 19, 15:00    [21955587]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
У меня тоже к нему куча наезда)).
Это костыль к Рсубд для движка магазина.
22 авг 19, 15:05    [21955593]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
на это ЛЮДИ нужны, а их нет. Сам такой поиск у них не в приоритете.
FTS и так есть. И кстати, в постгресе редиску тоже можно прикрутить.
также как у них есть битмапы на любую длину и операции по ним.

Ну и пускай нужны. Я-то тут причем?

По поводу FTS. Насколько я понимаю он потребности фасетного поиска не покрывает.
Если-бы покрывал - господин на хабре не стал-бы писать статью про Редисочный поиск.
22 авг 19, 18:47    [21955868]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
откуда у тебя кириллица взялась во WHERE?
ну причем тут кодировка или ищем по ID или названию отеля.
Вроде главное что тут битовой маской не пахнет и битмапом. Или пахнет?
И если пахнет, то в каком месте?))))
Вот что главное.
22 авг 19, 19:10    [21955889]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Прошу прощения. Вместо квотировать сообщение я нажал редактировать. Старая копия не сохранилась.
22 авг 19, 19:13    [21955892]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
)
Хде прогер движка форума который должен был ТРИ раза спросить: "вы уверены?")))
22 авг 19, 19:23    [21955901]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Да мы давно просили. Главный грохнул ПТ и с тех пор ни с кем ни общается.
22 авг 19, 19:28    [21955906]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух,
Вот такое в урл
checkin_month=9;checkin_monthday=28;checkin_year=2019;checkout_month=10;checkout_monthday=3;checkout_year=2019;city=-2738120;class_interval=1;dest_id=-2738120;dest_type=city;dtdisc=0;from_sf=1;group_adults=2;group_children=0;highlighted_hotels=17190;inac=0;index_postcard=0;label_click=undef

Конечно, там есть и строки-стринги)
22 авг 19, 19:38    [21955918]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Прошу прощения. Вместо квотировать сообщение я нажал редактировать. Старая копия не сохранилась.

бл?*:! ну спасибо
22 авг 19, 19:58    [21955934]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
денормализация по сути

PetroNotC Sharp
полудух
откуда у тебя кириллица взялась во WHERE?
ну причем тут кодировка или ищем по ID или названию отеля.
Вроде главное что тут битовой маской не пахнет и битмапом. Или пахнет?
И если пахнет, то в каком месте?))))
Вот что главное.

когда ищут по названию отеля, это отдельный input с поиском "налету"
фильтр к ней не имеет отношение
разумеется, если делать такие кривые "фильтры", там никакой битмап не прикрутишь.
22 авг 19, 20:01    [21955937]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Прошу прощения. Вместо квотировать сообщение я нажал редактировать. Старая копия не сохранилась.

кстати, а какого у тебя есть кнопка редактировать, а у нас нет??
22 авг 19, 20:02    [21955938]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
При грамотном шардинге или партишенинге мы можем бизнес модель резать на кусочки.
Например checkout_year=2019 сразу отсечет нам ненужные года. Ну и хеш партицирование.
22 авг 19, 20:05    [21955942]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
mayton
Прошу прощения. Вместо квотировать сообщение я нажал редактировать. Старая копия не сохранилась.

кстати, а какого у тебя есть кнопка редактировать, а у нас нет??

У меня - перчатка Таноса.
22 авг 19, 20:06    [21955943]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
когда ищут по названию отеля, это отдельный input с поиском "налету"
это не понял.
Реально в букинге не на лету, т.к. перезапрос страницы на Enter.
И отель будет не конкретный, а просто справа в списке "товаров".
Его дополнительно надо будет там найти.
Криво это или нет, не задумывался. Не с чем сравнить.
Поисковый запрос не должен искать конкретный отель.
Он сохраняется у юзверя и может лежать годами.
22 авг 19, 20:16    [21955956]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух,
Имхо, фасетный можно применять если у тебя запрос дольше 100мс.
Если нет, то можно не заморачиваться.
22 авг 19, 20:18    [21955958]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
PetroNotC Sharp
полудух,
Имхо, фасетный можно применять если у тебя запрос дольше 100мс.
Если нет, то можно не заморачиваться.

Любая база имеет тенденцию к росту. И эти 100мс с каждым днем растут.
22 авг 19, 20:27    [21955968]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
Конечно.
автор
Фасетный поиск позволяет перемещаться по многомерному информационному пространству через объединение текстового поиска с постепенным сужением выбора в каждом измерении[

Ровно как букинге. Текстовый поиск плюс многомерное уточнение.
22 авг 19, 20:42    [21955979]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
mayton
Давайте обсудим недостатки решения которое приведено в статье https://habr.com/ru/post/261137/

Я так понимаю ТС в курсе тех алгоритмов, но ищет чудо, а все кто говорит что чуда не будет обзывает обкурившимися.
22 авг 19, 20:52    [21955989]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
Dima T
mayton
Давайте обсудим недостатки решения которое приведено в статье https://habr.com/ru/post/261137/

Я так понимаю ТС в курсе тех алгоритмов, но ищет чудо, а все кто говорит что чуда не будет обзывает обкурившимися.

так ты сюда вбрасываешь даже не вникая в тему
эту ссылку сюда принёс я, так что да, я в курсе
чудо я не ищу, по факту я сейчас тут будущим магазино-строителям раскрываю глаза на качественный фильтр - отвечаю на вопросы
ты же мне советуешь EAV на первой странице, которое для фильтров где-то на последнем месте
учитывая, что я свой фреймворк написал и несколько CRM на заказ, я несколько в курсе про EAV
про ссылки и указатели так долго троллил, что аж жЫр с монитора закапал.
могу предложить другие варианты: невнимательный, рассеянный, тролльжЫрный Картинка с другого сайта.

PetroNotC Sharp
полудух
когда ищут по названию отеля, это отдельный input с поиском "налету"
это не понял.
Реально в букинге не на лету, т.к. перезапрос страницы на Enter.
И отель будет не конкретный, а просто справа в списке "товаров".
Его дополнительно надо будет там найти.
Криво это или нет, не задумывался. Не с чем сравнить.
Поисковый запрос не должен искать конкретный отель.
Он сохраняется у юзверя и может лежать годами.

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

ну вот поисковая строка, справа от неё 2 селекта "Заезд/Отъезд" + ещё опции.
поисковая строка сразу же выдаёт селектор аяксом, в нём выбирается пункт, у пункта есть ID и текст
спрашивается - НАХРЕНА текст пихать в URL?! Почему не ID?
КАК можно было такую длинную строку мусора сгенерить из такого маленького фильтра, это же талант нужен!
там всего-то должно было быть: /?f=id:22;in:2019-08-25;out:2019-09-10;mat:2;ch:1;num:1
а они чего сделали Картинка с другого сайта. дичь какая
на след.странице есть "Место/название объекта", так они даже оттуда слово воткнули в GET Картинка с другого сайта.
даже если они хотели, чтобы клиент, глядя на этот урл, мог увидеть название отеля...
как он его там увидит за всем этим мусором? Там один label занимает четверь.
22 авг 19, 22:08    [21956049]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
ну и на второй странице, слева, длинная колонка тех самых чекбоксов (опять же дичь - там 5 экранов вниз скроллить надо, а когда выбираешь один внизу, то страница обновляется и кидает обратно наверх Картинка с другого сайта.), которые должны быть просто цифрами
но это было бы слишком просто...
22 авг 19, 22:14    [21956055]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
PetroNotC Sharp
Криво это или нет, не задумывался. Не с чем сравнить.

https://fcenter.ru/product/type/5?vend=7¶m=1585_766_754&offset=0
22 авг 19, 22:16    [21956056]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух, дружище , сбавь обороты. Здесь - тихий добрый форум и никто никого не обличает.
22 авг 19, 23:02    [21956077]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
полудух
PetroNotC Sharp
Криво это или нет, не задумывался. Не с чем сравнить.

https://fcenter.ru/product/type/5?vend=7¶m=1585_766_754&offset=0
основа фасетных фильтров в циферках в скобочках после фильтра.
По ссылке я этого не увидел.
И давайте различать интерфейс и функционал.
- если фильтр город=Москва, то нафига отправлять ID москвы вместо москвы?
Можно и порассуждать об этом.
полудух
глядя на этот урл, мог увидеть название отеля...
да не смотрит на урл никто.
22 авг 19, 23:13    [21956083]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
ну вот поисковая строка, справа от неё 2 селекта "Заезд/Отъезд" + ещё опции.
поисковая строка сразу же выдаёт селектор аяксом, в нём выбирается пункт, у пункта есть ID и текст
спрашивается - НАХРЕНА текст пихать в URL?! Почему не ID?
КАК можно было такую длинную строку мусора сгенерить из такого маленького фильтра, это же талант нужен!
там всего-то должно было быть: /?f=id:22;in:2019-08-25;out:2019-09-10;mat:2;ch:1;num:1
а они чего сделали Картинка с другого сайта. дичь какая
на след.странице есть "Место/название объекта", так они даже оттуда слово воткнули в GET Картинка с другого сайта.
даже если они хотели, чтобы клиент, глядя на этот урл, мог увидеть название отеля...
как он его там увидит за всем этим мусором? Там один label занимает четверь.

Если серъезно заниматься оптимизацией трафика - то нужно смотреть не в request а в response.
Там действительно вот где много избыточного. GraphQL в помощь. А эстетика URL никого не
парит потому что по хорошему она не нужна. Она может быть скрыта за приложением
типа thin-client и может строиться специальным билдером параметров.
23 авг 19, 07:40    [21956158]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Dima T
Member

Откуда:
Сообщений: 13936
полудух
так ты сюда вбрасываешь даже не вникая в тему

Еще бы ты тему расписал. Сначала у тебя был битмап, потом он вдруг оказался строкой нулей и единичек, причем строка это какой промежуточный результат непонятно чего.

Как посчитать единички в строке ты уже сам ответил 21954674, для ускорения можно только параллелить, и то не факт что значительное ускорение получишь.
Возможно быстрее будет искать с помощью strchr().
Еще можешь вектору заранее побольше памяти выделить, чтобы он часто перевыделением не занимался.
idV.reserve(1000000);

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

Но непонятно почему надо именно строку эту трансформировать в массив индексов? Почему сразу не получить массив в процессе расчета? Тем более что это СУБД, а в СУБД удобнее массивами(таблицами) оперировать, а не строки парсить.
23 авг 19, 08:38    [21956170]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
Dima T,
Согласен. Ответ уже был.
А если расширять до архитектуры, то ТС колкий как ёжик)))).
Если в сторону до фасетного поиска, то он не имеет отношения к битмапу.
Это наличие просто пачки фасетных запросов.
Как то так.
23 авг 19, 09:02    [21956181]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Эта задача идеально параллелится на технологиях map-reduce. Чем больше физических вычислительных нод вы внесёте в кластер - тем быстрее получите ответ.
23 авг 19, 09:09    [21956186]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
mayton,
Автор не особо любит фреймворки(
23 авг 19, 09:43    [21956204]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
Это скорее принцип. Или шаблон.
23 авг 19, 09:51    [21956217]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
PetroNotC Sharp
основа фасетных фильтров в циферках в скобочках после фильтра.
По ссылке я этого не увидел.

там какой-то глюк в JS
если так зайти, то при выборе чекбоксов он пишет, сколько найдено

И давайте различать интерфейс и функционал.
- если фильтр город=Москва, то нафига отправлять ID москвы вместо москвы?

ну здрасьте...
ID проще найти в БД
его проще валидировать
он не портит эстетику урла (если ссылку с букинга отправить другу в мобил, то можно навсегда потерять друга.
Я уж молчу, что по ней страшно переходить (клиент потерян))
от слова "Москва" компам только лишний гемор и никакого профита.

да не смотрит на урл никто.

ага, до тех пор, пока им кидаться не начнут (а это самый горячий способ привлечения клиента, на минуточку)
23 авг 19, 10:38    [21956257]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
mayton
Если серъезно заниматься оптимизацией трафика

да причём тут трафик...
23 авг 19, 10:41    [21956262]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41914
полудух
mayton
Если серъезно заниматься оптимизацией трафика

да причём тут трафик...

А при чем здесь эстетика URL? Я на URL вообще не смотрю почти никогда.
23 авг 19, 10:42    [21956263]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 734
постгрес я всё-таки немного переоценил
там нет такого простого setbit, как в редиске...
23 авг 19, 10:42    [21956265]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3025
PetroNotC Sharp
полудух
вы там с Димой один косяк на двоих чтоли курите Картинка с другого сайта.
вот так фильтр выглядит: /?f=ap:5_3_5;bh:28_99_33;ck:7_9_22
не знаю никакого димы и твоих примеров)))). LOL
Это же не из моего урл?
Говори толком.
У меня урл вроде обычный where.
Дай твой урл из сети.
Будет конкретика.


зы. а про косяк так ничего не написал, ай да П.
23 авг 19, 10:54    [21956285]     Ответить | Цитировать Сообщить модератору
 Re: самый эффективный способ посчитать позиции в битмапе?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 1508
Модератор: Закрыто
23 авг 19, 11:04    [21956298]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / C++ Ответить