Вы правы регулярками получается достаточно быстро. Еще более быстрый способ это прасить без регулярок стандартными строковыми функцями. Проверено на практике. Но что-то не хочется это писать и поддерживать.
>Я так понимаю in memory key-value database использовать не желаем?
Если они способны помочь то конечно желаем. Но я не вижу как Memcached или Redis могут помочь в этом вопросе.
Из БД сюда бы наверно подошла sqlite с типом базы в памяти.
> Как я понял, это задача кластеризации?
Похоже на то.
> Какова мощность множества, подмножествами которого являются перечисленные выше множества?
В среднем числов элементов результирующих множествах 2-5. Можно считать что боллее 10 элементов не бывается.
>Если к «Есть набор множеств» добавить «set(10)», то будет ли в результате «set(10)»?
Да
Идея кажется интересной, но не могли бы вы пояснить.
> Создать k множеств из одного элемента.
соддаем —
set(1), set(2), set(3), set(4), set(5), set(6), set(7), set(8), set(9)
вот только как их дальше использовать?
> Далее проходим по исходным множествам, считая каждое множество запросом на объединение.
> А именно, проходим по элементам множества и объединяем множество, соответствующее
> текущему элементу со множеством, соответствующим предыдущему.
Т.е. первая итерация пробуем объединить set(1, 2) и set(3).
Я понимаю что подход с объединениме наверно имел бы смысл, если множества первоначально упорядочить, так чтобы множества которые возможно объединить шли последовательно.
Профит обязателен. В случае с файндбуком профит, а том что на него перейдут все пользователи которые воспользуются фомой на вашем сайте. Вы же говорите про API, т.е. сервис предоставляет вам информацию, но пользователи в этом случае даже не узнают о существовании этого сервиса. В чем выгода для такого сервиса? Магазинам не выгодно предоставлять информацию по конкурентам.
База всего 19 Гб, зачем тут шардинг? Такая база прекрасно может жить на одной машине. Шардинг в любом случае дополнительная морока с конфигурацией. Может быть в данном проекте не предполагается, что база сильно вырастет.