Медленный unified highlighting

терм вектор прямая структура данных - по документу получаем все термы.
в обратном индексе по можно найти документ, но определить все его термы затруднительно.
Fuzzy или prefix запросы преобразуются в конечные автоматы распознающие термы, далее они пересекаются со словарями (ктоторые тоже, сюрприз, автоматы). Сложность операции пропорциональна размеру пересекаемого словаря, и кроме того в случае обратного индекса она возвращает много списков вхождений в которых надо искать подсвечиваемый документ. В случае терм вектора имеем маленький словарь термов на каждый документ.

Его банят за компанию с линкедином.

Получается term_vector не обратный список, а просто доп. информация к документу с указанием положения термов. И весь прикол в том, что при подсветке надо найти пересечение с добавками fuzziness в запросе и этим списком term_vector?

всё такъ

Блин. Утром проснулся и опять всё сломалось в голове... :frowning:
Почему unifield в этом случае не использует offsets?
Зачем по новой анализирует документ?
По готовому списку все равно быстрее бежать.
Или это частный случай и подразумевается что обратный индекс здоровенный т.к. он один на все документы в индексе и дешевле маленький документ анализировать по новой?

Это ссылка на последний комментарий Джима, который как раз отвечает на эти вопросы.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.