Använda JDBC Vector Store-anslutningsappen
Översikt
JDBC-vektorarkivet är en Java-specifik funktion som endast är tillgänglig för Java-program.
Översikt
JDBC-vektorarkivet är en Java-specifik funktion som endast är tillgänglig för Java-program.
Översikt
JDBC Vector Store-anslutningsappen kan användas för att komma åt och hantera data i SQL-databaser. Anslutningsappen har följande egenskaper.
Funktionsområde | Support |
---|---|
Samlingskartor till | SQL-databastabell |
SQL-datakällor som stöds |
|
Nyckelegenskapstyper som stöds | String |
Dataegenskapstyper som stöds |
|
Egenskapstyper för vektorer som stöds | Listflöd<> |
Indextyper som stöds |
|
Avståndsfunktioner som stöds |
|
Stöder flera vektorer i en post | Ja |
isFilterable stöds? | Ja |
isFullTextSearchable stöds? | Nej |
storageName stöds? | Nej, använd @JsonProperty i stället. |
Begränsningar
PostgreSQL utnyttjar pgvector
för vektorindexering och sökning och erbjuder unikt ungefärliga sökfunktioner. Andra leverantörer saknar stöd för indexering, vilket endast ger fullständig vektorsökning.
Komma igång
Inkludera den senaste versionen av Semantic Kernel JDBC-anslutningsappen i ditt Maven-projekt genom att lägga till följande beroende i :pom.xml
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Du kan sedan skapa en vektorlagringsinstans med hjälp av JDBCVectorStore
klassen med datakällan som parameter.
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();
}
}
Du kan också skapa en samling direkt.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);