Обновление параметров коллекции#
Динамическое обновление параметров может быть полезным, например, для более эффективной начальной загрузки векторов: можно отключить индексирование во время процесса загрузки и включить его сразу после завершения загрузки. Таким образом, лишние вычислительные ресурсы не будут истрачены на повторную перестройку индекса.
Предусловия#
Коллекция
{collection_name}существует.Установлен клиентский SDK или присутствует доступ к HTTP/REST API Qdrant.
Последовательность выполнения#
Чтобы включить индексирование для сегментов, содержащих более 10000 КБ хранимых векторов необходимо выполнить команду:
PATCH /collections/{collection_name}
{
"optimizers_config": {
"indexing_threshold": 10000
}
}
curl -X PATCH http://localhost:6333/collections/{collection_name} \
-H 'Content-Type: application/json' \
--data-raw '{
"optimizers_config": {
"indexing_threshold": 10000
}
}'
client.update_collection(
collection_name="{collection_name}",
optimizers_config=models.OptimizersConfigDiff(indexing_threshold=10000),
)
client.updateCollection("{collection_name}", {
optimizers_config: {
indexing_threshold: 10000,
},
});
use qdrant_client::qdrant::{OptimizersConfigDiffBuilder, UpdateCollectionBuilder};
client
.update_collection(
UpdateCollectionBuilder::new("{collection_name}").optimizers_config(
OptimizersConfigDiffBuilder::default().indexing_threshold(10000),
),
)
.await?;
import io.qdrant.client.grpc.Collections.OptimizersConfigDiff;
import io.qdrant.client.grpc.Collections.UpdateCollection;
client.updateCollectionAsync(
UpdateCollection.newBuilder()
.setCollectionName("{collection_name}")
.setOptimizersConfig(
OptimizersConfigDiff.newBuilder().setIndexingThreshold(10000).build())
.build());
using Qdrant.Client;
using Qdrant.Client.Grpc;
var client = new QdrantClient("localhost", 6334);
await client.UpdateCollectionAsync(
collectionName: "{collection_name}",
optimizersConfig: new OptimizersConfigDiff { IndexingThreshold = 10000 }
);
import (
"context"
"github.com/qdrant/go-client/qdrant"
)
client, err := qdrant.NewClient(&qdrant.Config{
Host: "localhost",
Port: 6334,
})
client.UpdateCollection(context.Background(), &qdrant.UpdateCollection{
CollectionName: "{collection_name}",
OptimizersConfig: &qdrant.OptimizersConfigDiff{
IndexingThreshold: qdrant.PtrOf(uint64(10000)),
},
})
Могут быть обновлены параметры:
optimizers_config- подробнее в разделе Управление оптимизаторами.hnsw_config- подробнее в разделе Индексирование.quantization_config- подробнее в разделе Квантование.vectors_config- специфичная для вектора конфигурация, включая индивидуальные настройкиhnsw_config,quantization_configиon_disk.params- другие параметры коллекции, включаяwrite_consistency_factorиon_disk_payload.strict_mode_config- подробное описание приведено в разделе Строгий режим документа Руководство администратора.
Внимание
Обращения к конечной точке могут блокироваться, так как ожидают окончания работы существующих оптимизаторов. Настоятельно не рекомендуется использовать эту функцию в производственной базе данных, так как она может ввести значительную дополнительную нагрузку из-за необходимости перестроения индекса.
Результат#
Параметр indexing_threshold коллекции будет обновлен до значения 10000. Это повлияет на порог активации индексирования для сегментов.