|
|
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
Забыл группировку товаров, то что он в группе товаров Телевизоры\Телевизоры ЖК Tovar tov_idtov_name1ТВ Gnusmas 40" FullHD Category cat_idcat_name2Диагональ3Разрешение6Телевизор7Телевизор ЖК Value val_idcat_idval_name4239"-43"53FullHD86Телевизор97Телевизор ЖК Attribute tov_idval_id14151819 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:01 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
Еще подумал, удобнее для выборок так хранить Tovar tov_idtov_name1ТВ Gnusmas 40" FullHD Category cat_idcat_name2Диагональ3Разрешение6 Группа товаров Value val_idcat_idval_name4239"-43"53FullHD86Телевизор96Телевизор ЖК Attribute tov_idval_id14151819[/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:29 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
Хм.. я немного не так использовал Category. Чуть позже отпишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2016, 22:45 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
1) Здарова други. Я немного был занят на неделе и задачей не занимался. По сабжу я не отказываюсь от своих ресёрчей но пока беру паузу. Ничего пока не готово. Забегая вперед я хочу сказать что я планировал используя биткарты или хеши превнести некий дополнительный атрибут в таблицу tovar но при этом дать положительную (иногда ложно-положительную) вероятность для срабатывания поискового предиката Код: sql 1. Ложные срабатывания предиката - отсекаются на 2-й фазе фильтрации через EAV, но я надеюсь что это будет менее чем 3% от общего объема выборки что само по себе очень круто. Здесь я могу пойти по ложному пути Паниковского создания движка для Full Text Search но нет (!) я этого не хочу. FTS слишком крут и избыточен. Мне хватит и списка атрибутов. 2) Против Диминой модели я не имею ничего против просто у меня таблица категорий это были категории товаров а не атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 21:18 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
maytonЗабегая вперед я хочу сказать что я планировал используя биткарты или хеши превнести некий дополнительный атрибут в таблицу tovar но при этом дать положительную (иногда ложно-положительную) вероятность для срабатывания поискового предиката Код: sql 1. Не понимаю где ты эти биткарты обрабатывать собрался? На стороне SQL-сервера нет встроенных средств для этого. Тащить их сначала на клиента, как-то алгоритмически обрабатывать, получать набор TOV_ID и дозапрашивать с фильтром по нему тоже сомнительный алгоритм. Я про биткарты думал. Полностью занести все характеристики товара в биткарту можно и она будет небольшая по размеру. Можно сформировать биткарту фильтра и сравнить ее со всеми биткартами товаров, тоже не сложно. Но на двойном выборе начнутся проблемы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. т.е. Код: sql 1. Тут надо уже две биткарты фильтра. При совпадении с любой товар считается подходящим. И чем больше групп с несколькими галками, тем больше карт-фильтров, причем прогрессия геометрическая. Например 3 категории по 2,3,3 галки дадут 2*3*3 = 18 карт-фильтров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 07:28 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
Дима. Я-же писал в введении. Что-бы я здесь хотел обсудить. Возможные алгоритмы и структуры данных которые помогут ускорить поиск по модели EAV. Можно - доработки к PG и MySQL. Можно - различные варианты кешей. Можно - использование С/C++ в стеке LAMP. Текстовый поиск, деревья, JSON, и все что может быть полезно - приветствуется. На консистентность кеша и БД можно пока забить. Скорость важнее. Далее. Про геометрическую прогрессию я ничо не понял. В моём понимании - фасетный поиск - это просто игра с предикатами. Чем больше юзер накликал - тем больше предикатов в списке. Там нет места геом-прогрессии или я по другому понимаю саму предметную область. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 17:22 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
maytonДалее. Про геометрическую прогрессию я ничо не понял. Думал про биткарты для усовершенствования моей реализации. Она отлично ложится в биткарту, а дальше начинаются описанные проблемы. Хотел выше предложить экзотическое решение на биткартах, потом понял что сложная хрень получится и скорее всего не быстрая. Идея была такая: каждый бит в карте соответствует характеристике ХарактеристикаЗначениеДиагональ 10-19"00000001Диагональ 20-29"00000010Диагональ 30-39"00000100Разрешение HD Ready00001000Разрешение Full HD00010000 Каждый товар имеет свою биткарту характеристик ТоварБиткартаТВ100001001ТВ200001010 Затем по фильтру делается биткарта и сравнивается Код: plaintext 1. но тут возникает проблема с двойным выбором: если пользователь выбрал например как я написал 20044056 то надо сравнивать уже с двумя фильтрами 00001010 и 00001100 Код: plaintext 1. И количество фильтров это произведение количества галок в каждой категории характеристик. В этом примере 1*2 = 2. Т.е. геометрическая прогрессия. Если ты как-то по другому биткарты хочешь задействовать или фильтр блума, то раскрывай свою мысль. PS В реализацию фасетного поиска не вникал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 18:57 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
Всё Дима. Я понял свою ошибку. Что-то в исходной постановке неверно. По крайней мере неверно моё упрощение. Почитал кое что из публичных материалов (презентаций). http://flamenco.berkeley.edu/talks/chi_course06_4_23.ppt Фасет это нечно более сложное и это не тег и не категория. По крайней мере надо еще это обдумать. Вобщем беру паузу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 19:34 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
P.S. В шахматы играешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 21:47 |
|
||
|
Тяпничный поиск товаров по набору атрибутов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2016, 01:12 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39374210&tid=1340536]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 381ms |

| 0 / 0 |
