Freigeben über


Verwenden des CONNECTORS FÜR DEN VECTOR Store

Übersicht

DER BROWSER-Vektorspeicher ist ein Java-spezifisches Feature, das nur für Java-Anwendungen verfügbar ist.

Übersicht

DER BROWSER-Vektorspeicher ist ein Java-spezifisches Feature, das nur für Java-Anwendungen verfügbar ist.

Übersicht

Der CONNECTOR FÜR DEN VECTOR Store kann verwendet werden, um auf Daten in SQL-Datenbanken zuzugreifen und sie zu verwalten. Der Verbinder weist die folgenden Merkmale auf.

Featurebereich Unterstützung
Auflistungszuordnungen SQL-Datenbanktabelle
Unterstützte SQL-Datenquellen
  • PostgreSQL
  • MySQL
  • SQLite
  • HSQLDB
Unterstützte Schlüsseleigenschaftentypen String
Unterstützte Datentypen für Datentypen
  • String
  • int, Ganze Zahl
  • long, Long
  • double, Double
  • float, Float
  • Boolean, Boolean
  • OffsetDateTime
Unterstützte Vektoreigenschaftentypen Float auflisten<>
Unterstützte Indextypen
  • PostgreSQL: Hnsw, IVFFlat, Flat
  • MySQL: Flach
  • SQLite: Flach
  • HSQLDB: Flach
Unterstützte Entfernungsfunktionen
  • CosineDistance
  • DotProductSimilarity
  • EuklideanDistance
Unterstützt mehrere Vektoren in einem Datensatz Ja
isFilterable supported? Ja
isFullTextSearchable unterstützt? No
storageName wird unterstützt? Nein, verwenden Sie @JsonProperty stattdessen.

Begrenzungen

PostgreSQL nutzt pgvector die Vektorindizierung und Suche und bietet eindeutig ungefähre Suchfunktionen. Andere Anbieter bieten keine Unterstützung für die Indizierung und bieten nur eine erschöpfende Vektorsuche.

Erste Schritte

Fügen Sie die neueste Version des Semantischen Kernel-KERNEL-Connectors in Ihr Maven-Projekt ein, indem Sie die folgende Abhängigkeit zu Ihrem pom.xmlHinzufügen hinzufügen:

<dependency>
    <groupId>com.microsoft.semantic-kernel</groupId>
    <artifactId>semantickernel-data-jdbc</artifactId>
    <version>[LATEST]</version>
</dependency>

Anschließend können Sie eine Vektorspeicherinstanz mithilfe der JDBCVectorStore Klasse erstellen, wobei die Datenquelle als Parameter vorhanden ist.

import com.microsoft.semantickernel.data.jdbc.JDBCVectorStore;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreOptions;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreRecordCollection;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreRecordCollectionOptions;
import com.microsoft.semantickernel.data.jdbc.mysql.MySQLVectorStoreQueryProvider;
import org.postgresql.ds.PGSimpleDataSource;

public class Main {
    public static void main(String[] args) {
        // Configure the data source
        PGSimpleDataSource dataSource = new PGSimpleDataSource();
        dataSource.setUrl("jdbc:postgresql://localhost:5432/sk");
        dataSource.setUser("postgres");
        dataSource.setPassword("root");

        // Build a query provider
        // Other available query providers are PostgreSQLVectorStoreQueryProvider, SQLiteVectorStoreQueryProvider
        // and HSQDBVectorStoreQueryProvider
        var queryProvider = MySQLVectorStoreQueryProvider.builder()
                .withDataSource(dataSource)
                .build();

        // Build a vector store
        var vectorStore = JDBCVectorStore.builder()
                .withDataSource(dataSource)
                .withOptions(JDBCVectorStoreOptions.builder()
                        .withQueryProvider(queryProvider)
                        .build())
                .build();
    }
}

Sie können auch eine Sammlung direkt erstellen.

var collection = new JDBCVectorStoreRecordCollection<>(
    dataSource,
    "skhotels",
    JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
        .withRecordClass(Hotel.class)
        .build()
);