similarity-topology обеспечивает алгоритмы, которые поддерживают индексы для эффективных поисков ближайших соседей для данных высокого размера.
Иерархический индекс иерархический малый мир (HNSW) создает многослойный график, который напоминает лист Skip. Поиск начинается на верхнем слое-который имеет наименьшее количество элементов-и жадно проходит этот слой графика для элемента с наибольшим сходством с поисковым запросом. Поиск продолжается на слое внизу, повторяя этот алгоритм до тех пор, пока нижний слой не будет искал.
Важно отметить, что индексы HNSW не поддерживают удаление! Если вам нужно удалить элементы, вы должны восстановить весь индекс с нуля!
GraphManager .GraphManager , который использует LMDB для хранения.Для тех, кто интересуется теоретическими основаниями алгоритма HNSW, оригинальная исследовательская работа является отличным ресурсом.
Чтобы добавить similarity-topology в ваш проект, включите его в свой Package.swift Задача зависимости:
dependencies: [
. package ( url : " https://github.com/yourusername/similarity-topology.git " , from : < #version# > )
]