Есть индекс products_category_236
c type = distributed
который базируется на локальных PLAIN индексах products_category_239
products_category_241
Структура и состав показаны ниже:
MySQL [(none)]> select id, group_id from products_category_236;
+-------+----------+
| id | group_id |
+-------+----------+
| 29117 | 267 |
| 29137 | 287 |
| 29138 | 288 |
+-------+----------+
3 rows in set (0.001 sec)
MySQL [(none)]> desc products_category_236;
+-----------------------+-------+
| Agent | Type |
+-----------------------+-------+
| products_category_239 | local |
| products_category_241 | local |
+-----------------------+-------+
2 rows in set (0.000 sec)
MySQL [(none)]> select id, group_id from products_category_239;
+-------+----------+
| id | group_id |
+-------+----------+
| 29117 | 267 |
| 29137 | 287 |
| 29138 | 288 |
+-------+----------+
3 rows in set (0.001 sec)
MySQL [(none)]> select id, group_id from products_category_241;
+-------+----------+
| id | group_id |
+-------+----------+
| 29117 | 267 |
| 29137 | 287 |
| 29138 | 288 |
+-------+----------+
3 rows in set (0.001 sec)
MySQL [(none)]> desc products_category_239;
+-----------------------+--------+------------+
| Field | Type | Properties |
+-----------------------+--------+------------+
| id | bigint | |
| full_name | text | indexed |
.......
| i_float_mm | json | |
+-----------------------+--------+------------+
36 rows in set (0.000 sec)
MySQL [(none)]> desc products_category_241;
+-----------------------+--------+------------+
| Field | Type | Properties |
+-----------------------+--------+------------+
| id | bigint | |
| full_name | text | indexed |
.......
| i_float_mm | json | |
+-----------------------+--------+------------+
36 rows in set (0.000 sec)
Если выполнить группирующий запрос ниже, то мы получаем дубли товаров. Причём, эти дубли будут и в фасетах (при добавлении FACET ....
)
Вопрос, можно ли как-то избавиться от дублей не убирая type = distributed
у индекса?
MySQL [(none)]> select group_concat(`id`) as `ids`, groupby() as `group_id` from `products_category_236` group by `group_id` ;
+-------------+----------+
| ids | group_id |
+-------------+----------+
| 29117,29117 | 267 |
| 29137,29137 | 287 |
| 29138,29138 | 288 |
+-------------+----------+
3 rows in set (0.001 sec)
Дубли при работе с фасетами:
MySQL [(none)]> select id, group_id, brand_id from products_category_236;
+-------+----------+----------+
| id | group_id | brand_id |
+-------+----------+----------+
| 29117 | 267 | 491 |
| 29137 | 287 | 491 |
| 29138 | 288 | 492 |
+-------+----------+----------+
3 rows in set (0.001 sec)
MySQL [(none)]> select group_concat(`id`) as `ids`, groupby() as `group_id` from `products_category_236` group by `group_id` FACET brand_id; SHOW META;
+-------------+----------+
| ids | group_id |
+-------------+----------+
| 29117,29117 | 267 |
| 29137,29137 | 287 |
| 29138,29138 | 288 |
+-------------+----------+
3 rows in set (0.002 sec)
+----------+----------+
| brand_id | count(*) |
+----------+----------+
| 491 | 4 |
| 492 | 2 |
+----------+----------+
2 rows in set (0.002 sec)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total | 3 |
| total_found | 3 |
| time | 0.000 |
| multiplier | 2 |
+---------------+-------+