BIN_FLAT
Индекс BIN_FLAT - это вариант индекса FLAT, разработанный исключительно для бинарных вкраплений. Он отлично подходит для приложений, где требуется идеальная точность поиска векторного сходства на относительно небольших, миллионных наборах данных. Используя методологию исчерпывающего поиска - сравнивая каждый целевой вход со всеми векторами в наборе данных, - индекс LIN_FLAT гарантирует точные результаты. Такая точность делает его идеальным эталоном для оценки производительности других индексов, которые могут предложить менее чем 100-процентный отзыв, хотя его тщательный подход также делает его самым медленным вариантом для больших данных.
Построение индекса
Чтобы построить индекс BIN_FLAT по векторному полю в Milvus, используйте метод add_index(), указав параметры index_type и metric_type для индекса.
from pymilvus import MilvusClient
# Prepare index building params
index_params = MilvusClient.prepare_index_params()
index_params.add_index(
field_name="your_binary_vector_field_name", # Name of the vector field to be indexed
index_type="BIN_FLAT", # Type of the index to create
index_name="vector_index", # Name of the index to create
metric_type="HAMMING", # Metric type used to measure similarity
params={} # No additional parameters required for BIN_FLAT
)
В данной конфигурации:
index_type: Тип индекса, который будет построен. В этом примере задайте значениеBIN_FLAT.metric_type: Метод, используемый для вычисления расстояния между векторами. Для бинарных вкраплений поддерживаются следующие значения:HAMMING(по умолчанию) иJACCARD. Подробнее см. в разделе Метрические типы.params: Для индекса BIN_FLAT не требуется никаких дополнительных параметров.
После настройки параметров индекса вы можете создать индекс, используя метод create_index() напрямую или передавая параметры индекса в метод create_collection. Подробнее см. в разделе Создание коллекции.
Поиск по индексу
После того как индекс создан и сущности вставлены, можно выполнять поиск по сходству в индексе.
res = MilvusClient.search(
collection_name="your_collection_name", # Collection name
anns_field="binary_vector_field", # Binary vector field name
data=[query_binary_vector], # Query binary vector
limit=3, # TopK results to return
search_params={"params": {}} # No additional parameters required for BIN_FLAT
)
Дополнительные сведения см. в разделе Двоичный вектор.
Параметры индекса
Для индекса BIN_FLAT не требуется никаких дополнительных параметров ни при создании индекса, ни в процессе поиска.