Sofortige Erstellung einer Sammlung
Sie können eine Sammlung sofort erstellen, indem Sie ihren Namen und die Dimensionalität des Vektorfeldes festlegen. Milvus indiziert automatisch das Vektorfeld und lädt die Sammlung bei der Erstellung. Auf dieser Seite wird gezeigt, wie Sie eine Sammlung mit den Standardeinstellungen sofort erstellen können.
Übersicht
Eine Sammlung ist eine zweidimensionale Tabelle mit festen Spalten und variablen Zeilen. Jede Spalte steht für ein Feld und jede Zeile für eine Entität. Um eine solche strukturelle Datenverwaltung zu implementieren, ist ein Schema erforderlich. Jede Entität, die eingefügt werden soll, muss den im Schema definierten Beschränkungen entsprechen.
AIGC-Anwendungen verwenden in der Regel Vektordatenbanken als Wissensbasis, um die Daten zu verwalten, die bei der Interaktion zwischen Benutzern und Large Language Models (LLMs) entstehen. Solche Wissensdatenbanken sind nahezu identisch. Um die Verwendung von Milvus-Clustern in solchen Szenarien zu beschleunigen, steht Ihnen eine Sofortmethode zur Verfügung, um eine Sammlung mit nur zwei Parametern zu erstellen, nämlich dem Sammlungsnamen und der Dimensionalität des Vektorfeldes.
Wenn Sie eine Sammlung sofort mit den Standardeinstellungen erstellen, gelten die folgenden Einstellungen.
Die Primär- und Vektorfelder werden dem Schema hinzugefügt(id und vector).
Das Primärfeld akzeptiert Ganzzahlen und deaktiviert AutoId.
Das Vektorfeld akzeptiert fließende Vektoreinbettungen.
AUTOINDEX wird verwendet, um einen Index für das Vektorfeld zu erstellen.
COSINE wird verwendet, um Ähnlichkeiten zwischen Vektoreinbettungen zu messen.
Das dynamische Reservefeld $meta wird aktiviert, um nicht schema-definierte Felder und ihre Werte in Schlüssel-Wert-Paaren zu speichern.
Die Sammlung wird bei der Erstellung automatisch geladen.
Einzelheiten zu den oben genannten Begriffen finden Sie unter Sammlung erklärt.
Es sei darauf hingewiesen, dass die sofortige Erstellung einer Sammlung mit den Standardeinstellungen nicht für alle Szenarien geeignet ist. Es ist ratsam, sich mit dem allgemeinen Verfahren zur Erstellung von Sammlungen vertraut zu machen, damit Sie ein besseres Verständnis für die Möglichkeiten von Milvus bekommen.
Schnelleinrichtung
Auf diese Weise können Sie eine Sammlung sofort mit nur dem Sammlungsnamen und der Dimensionalität des Vektorfeldes erstellen.
from pymilvus import MilvusClient, DataType
CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"
# 1. Set up a Milvus client
client = MilvusClient(
uri=CLUSTER_ENDPOINT,
token=TOKEN
)
# 2. Create a collection in quick setup mode
client.create_collection(
collection_name="quick_setup",
dimension=5
)
res = client.get_load_state(
collection_name="quick_setup"
)
print(res)
# Output
#
# {
# "state": "<LoadState: Loaded>"
# }
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";
// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.token(TOKEN)
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
// 2. Create a collection in quick setup mode
CreateCollectionReq quickSetupReq = CreateCollectionReq.builder()
.collectionName("quick_setup")
.dimension(5)
.build();
client.createCollection(quickSetupReq);
GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("quick_setup")
.build();
Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);
// Output:
// true
// 1. Set up a Milvus Client
import { MilvusClient, DataType } from "@zilliz/milvus2-sdk-node";
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
// 2. Create a collection in quick setup mode
let res = await client.createCollection({
collection_name: "quick_setup",
dimension: 5,
});
console.log(res.error_code)
// Output
//
// Success
//
res = await client.getLoadState({
collection_name: "quick_setup"
})
console.log(res.state)
// Output
//
// LoadStateLoaded
//
// Go 缺失
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"dimension": 5
}'
# {
# "code": 0,
# "data": {}
# }
Schnelleinrichtung mit benutzerdefinierten Feldern
Wenn der standardmäßige metrische Typ, die Feldnamen und Datentypen nicht Ihren Anforderungen entsprechen, können Sie diese Einstellungen wie folgt anpassen.
from pymilvus import MilvusClient, DataType
CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"
# 1. Set up a Milvus client
client = MilvusClient(
uri=CLUSTER_ENDPOINT,
token=TOKEN
)
# 2. Create a collection in quick setup mode
client.create_collection(
collection_name="custom_quick_setup",
dimension=5,
primary_field_name="my_id",
id_type="string",
vector_field_name="my_vector",
metric_type="L2",
auto_id=True,
max_length=512
)
res = client.get_load_state(
collection_name="custom_quick_setup"
)
print(res)
# Output
#
# {
# "state": "<LoadState: Loaded>"
# }
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";
// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.token(TOKEN)
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
// 2. Create a collection in quick setup mode
CreateCollectionReq customQuickSetupReq = CreateCollectionReq.builder()
.collectionName("custom_quick_setup")
.dimension(5)
.primaryFieldName("my_id")
.idType(DataType.VarChar)
.maxLength(512)
.vectorFieldName("my_vector")
.metricType("L2")
.autoID(true)
.build();
client.createCollection(customQuickSetupReq);
GetLoadStateReq customQuickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("custom_quick_setup")
.build();
Boolean res = client.getLoadState(customQuickSetupLoadStateReq);
System.out.println(res);
// Output:
// true
// 1. Set up a Milvus Client
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
// 2. Create a collection in quick setup mode
let res = await client.createCollection({
collection_name: "custom_quick_setup",
dimension: 5,
primary_field_name: "my_id",
id_type: "Varchar",
max_length: 512,
vector_field_name: "my_vector",
metric_type: "L2",
auto_id: true
});
console.log(res.error_code)
// Output
//
// Success
//
res = await client.getLoadState({
collection_name: "custom_quick_setup"
})
console.log(res.state)
// Output
//
// LoadStateLoaded
//
// Go 缺失
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "custom_quick_setup",
"dimension": 5,
"primaryFieldName": "my_id",
"idType": "VarChar",
"vectorFieldName": "my_vector",
"metricType": "L2",
"autoId": true,
"params": {
"max_length": "512"
}
}'
Wenn die mit den beiden oben genannten Methoden erstellten Sammlungen immer noch nicht Ihren Anforderungen entsprechen, sollten Sie das Verfahren unter Sammlung erstellen befolgen.