De JDBC Vector Store-connector gebruiken
Overzicht
JDBC Vector Store is een Java-specifieke functie die alleen beschikbaar is voor Java-toepassingen.
Overzicht
JDBC Vector Store is een Java-specifieke functie die alleen beschikbaar is voor Java-toepassingen.
Overzicht
De JDBC Vector Store-connector kan worden gebruikt voor toegang tot en beheer van gegevens in SQL-databases. De verbindingslijn heeft de volgende kenmerken.
Functiegebied | Ondersteuning |
---|---|
Verzamelingstoewijzingen aan | SQL-databasetabel |
Ondersteunde SQL-gegevensbronnen |
|
Ondersteunde sleuteleigenschapstypen | String |
Ondersteunde gegevenseigenschapstypen |
|
Ondersteunde vectoreigenschappentypen | Lijst<float> |
Ondersteunde indextypen |
|
Ondersteunde afstandsfuncties |
|
Ondersteunde filterclausules |
|
Ondersteunt meerdere vectoren in een record | Ja |
wordt Filterable ondersteund? | Ja |
wordtFullTextSearchable ondersteund? | Nee |
storageName ondersteund? | Nee, gebruik @JsonProperty in plaats daarvan. |
Beperkingen
PostgreSQL maakt gebruik pgvector
van vectorindexering en zoekopdrachten en biedt unieke zoekmogelijkheden. Andere providers hebben geen ondersteuning voor indexering, waardoor alleen uitgebreide vectorzoekopdrachten mogelijk zijn.
Aan de slag
Neem de nieuwste versie van de Semantic Kernel JDBC-connector op in uw Maven-project door de volgende afhankelijkheid toe te voegen aan uw pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Vervolgens kunt u een vectorarchiefexemplaren maken met behulp van de JDBCVectorStore
klasse, waarbij de gegevensbron als parameter wordt gebruikt.
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();
}
}
U kunt ook rechtstreeks een verzameling maken.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);