Uso del conector del almacén de vectores JDBC
Información general
El almacén de vectores JDBC es una característica específica de Java, disponible solo para aplicaciones Java.
Información general
El almacén de vectores JDBC es una característica específica de Java, disponible solo para aplicaciones Java.
Información general
El conector del almacén de vectores JDBC se puede usar para acceder a los datos y administrarlos en bases de datos SQL. El conector tiene las siguientes características.
Área de características | Soporte técnico |
---|---|
La colección se asigna a | Tabla de Base de datos SQL |
Orígenes de datos SQL admitidos |
|
Tipos de propiedades de clave admitidos | Cadena |
Tipos de propiedad de datos admitidos |
|
Tipos de propiedades vectoriales admitidos | List<Float> |
Tipos de índice admitidos |
|
Funciones de distancia admitidas |
|
Admite varios vectores en un registro | Sí |
¿Se admite isFilterable? | Sí |
¿Se admite isFullTextSearchable? | No |
storageName compatible? | No, use @JsonProperty en su lugar. |
Limitaciones
PostgreSQL aprovecha pgvector
para la indexación de vectores y la búsqueda, ofreciendo funcionalidades de búsqueda aproximadas de forma única. Otros proveedores no admiten la indexación, lo que proporciona solo una búsqueda de vectores exhaustiva.
Introducción
Incluya la versión más reciente del conector JDBC del kernel semántico en el proyecto de Maven agregando la siguiente dependencia a pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
A continuación, puede crear una instancia de almacén de vectores mediante la JDBCVectorStore
clase , teniendo el origen de datos como parámetro.
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();
}
}
También puede crear una colección directamente.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);