Полнотекстовый inverted индекс
Начиная с версии 3.3.0, Selena поддерживает полнотекстовые inverted индексы, которые могут разбивать текст на более мелкие слова и создавать индексную запись для каждого слова, показывающую отношение отображения между словом и соответствующим номером строки в файле данных. Для полнотекстового поиска Selena запрашивает inverted индекс на основе ключевых слов поиска, быстро определяя строки данных, соответствующие ключевым словам.
Primary Key таблицы поддерживают полнотекстовые inverted индексы начиная с v2.0.0.
Полнотекстовый inverted индекс пока не поддерживается в shared-data кластерах.
Обзор
Selena хранит свои базовые данные в файлах данных, организованных по столбцам. Каждый файл данных содержит полнотекстовый inverted индекс на основе индексированных столбцов. Значения в индексированных столбцах токенизируются на отдельные слова. Каждое слово после токенизации обрабатыва ется как индексная запись, отображаемая на номер строки, в которой появляется слово. В настоящее время поддерживаются методы токенизации для английской токенизации, китайской токенизации, многоязычной токенизации и без токенизации.
Например, если строка данных содержит "hello world" и её номер строки 123, полнотекстовый inverted индекс строит индексные записи на основе этого результата токенизации и номера строки: hello->123, world->123.
Во время полнотекстового поиска Selena может находить индексные записи, содержащие ключевые слова поиска, используя полнотекстовые inverted индексы, а затем быстро находить номера строк, в которых появляются ключевые слова, значительно уменьшая количество строк данных, которые необходимо сканировать.