> > Есть множество пар (ID1, ID2). Их общее число где-то 350 лимонов.
> > Уникальных - 100 лимонов.
>
> Звучит как "отсортировать 350М 64-битных значений и выкинуть
> дубликаты" - я правильно понял?

Нет не правильно. Точнее правильно, но не совсем.

Для пар слов - так оно и есть.

Для комбинаций из трех слов, сначало формируется две пары
(WordID1,WordID2), (WordID2,WordID3)

потом этим парам назначается идентификатор pairID1, pairID2

эти идентификаторы объединяются в новую пару - (pairID1,pairID2)

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

Конечно, эту последовательность можно свести к сортировке. Но тогда
потребуется два прохода по всем объектам. А этого хочется избежать.

Реально, конечно, можно вообще забить на тот клиентский индекс,
который я хочу построить - просто регистрировать пары в базе и не
парится. К этому, кажется все и идет :) ... "детей не люблю, но сам
процесс ..."

> Или задача именно поддерживать индекс отсортированным в процессе
> генерации пар?

Ага.

Коваленко Дмитрий.

Ответить