Add File
This commit is contained in:
@@ -0,0 +1,134 @@
|
|||||||
|
package com.agentsflex.store.pgvector;
|
||||||
|
|
||||||
|
import com.agentsflex.core.document.Document;
|
||||||
|
import com.agentsflex.core.store.SearchWrapper;
|
||||||
|
import com.agentsflex.core.store.StoreResult;
|
||||||
|
import com.agentsflex.core.util.Maps;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PgvectorDbTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInsert() {
|
||||||
|
PgvectorVectorStoreConfig config = new PgvectorVectorStoreConfig();
|
||||||
|
config.setHost("127.0.0.1");
|
||||||
|
config.setPort(5432);
|
||||||
|
config.setDatabaseName("pgvector_test");
|
||||||
|
config.setUsername("test");
|
||||||
|
config.setPassword("123456");
|
||||||
|
config.setVectorDimension(1024);
|
||||||
|
config.setUseHnswIndex(true);
|
||||||
|
config.setAutoCreateCollection(true);
|
||||||
|
config.setDefaultCollectionName("test");
|
||||||
|
|
||||||
|
PgvectorVectorStore store = new PgvectorVectorStore(config);
|
||||||
|
Document doc = new Document("测试数据");
|
||||||
|
// 初始化 vector 为长度为 1024 的全是 1 的数组
|
||||||
|
double[] vector = new double[1024];
|
||||||
|
Arrays.fill(vector, 1.0);
|
||||||
|
|
||||||
|
doc.setVector(vector);
|
||||||
|
doc.setMetadataMap(Maps.of("test", "test"));
|
||||||
|
store.store(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInsertMany() {
|
||||||
|
PgvectorVectorStoreConfig config = new PgvectorVectorStoreConfig();
|
||||||
|
config.setHost("127.0.0.1");
|
||||||
|
config.setPort(5432);
|
||||||
|
config.setDatabaseName("pgvector_test");
|
||||||
|
config.setUsername("test");
|
||||||
|
config.setPassword("123456");
|
||||||
|
config.setVectorDimension(1024);
|
||||||
|
config.setUseHnswIndex(true);
|
||||||
|
config.setAutoCreateCollection(true);
|
||||||
|
config.setDefaultCollectionName("test");
|
||||||
|
|
||||||
|
PgvectorVectorStore store = new PgvectorVectorStore(config);
|
||||||
|
List<Document> docs = new ArrayList<>(100);
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
Document doc = new Document("测试数据" + i);
|
||||||
|
// 初始化 vector 为长度为 1024 的全是 1 的数组
|
||||||
|
double[] vector = new double[1024];
|
||||||
|
Arrays.fill(vector, Math.random());
|
||||||
|
|
||||||
|
doc.setVector(vector);
|
||||||
|
doc.setMetadataMap(Maps.of("test", "test" + i));
|
||||||
|
docs.add(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
store.store(docs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSearch() {
|
||||||
|
PgvectorVectorStoreConfig config = new PgvectorVectorStoreConfig();
|
||||||
|
config.setHost("127.0.0.1");
|
||||||
|
config.setPort(5432);
|
||||||
|
config.setDatabaseName("pgvector_test");
|
||||||
|
config.setUsername("test");
|
||||||
|
config.setPassword("123456");
|
||||||
|
config.setVectorDimension(1024);
|
||||||
|
config.setUseHnswIndex(true);
|
||||||
|
config.setAutoCreateCollection(true);
|
||||||
|
config.setDefaultCollectionName("test");
|
||||||
|
PgvectorVectorStore store = new PgvectorVectorStore(config);
|
||||||
|
|
||||||
|
double[] vector = new double[1024];
|
||||||
|
Arrays.fill(vector, 1.0);
|
||||||
|
|
||||||
|
SearchWrapper searchWrapper = new SearchWrapper().text("测试数据");
|
||||||
|
searchWrapper.setVector(vector);
|
||||||
|
searchWrapper.setMinScore(0.0);
|
||||||
|
searchWrapper.setOutputVector(true);
|
||||||
|
List<Document> docs = store.search(searchWrapper);
|
||||||
|
System.out.println(docs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdate() {
|
||||||
|
PgvectorVectorStoreConfig config = new PgvectorVectorStoreConfig();
|
||||||
|
config.setHost("127.0.0.1");
|
||||||
|
config.setPort(5432);
|
||||||
|
config.setDatabaseName("pgvector_test");
|
||||||
|
config.setUsername("test");
|
||||||
|
config.setPassword("123456");
|
||||||
|
config.setVectorDimension(1024);
|
||||||
|
config.setUseHnswIndex(true);
|
||||||
|
config.setAutoCreateCollection(true);
|
||||||
|
config.setDefaultCollectionName("test");
|
||||||
|
PgvectorVectorStore store = new PgvectorVectorStore(config);
|
||||||
|
|
||||||
|
Document document = new Document("测试数据");
|
||||||
|
document.setId("145314895749100ae8306079519b3393");
|
||||||
|
document.setMetadataMap(Maps.of("test", "test0"));
|
||||||
|
double[] vector = new double[1024];
|
||||||
|
Arrays.fill(vector, 1.1);
|
||||||
|
document.setVector(vector);
|
||||||
|
StoreResult update = store.update(document);
|
||||||
|
System.out.println(update);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDelete() {
|
||||||
|
PgvectorVectorStoreConfig config = new PgvectorVectorStoreConfig();
|
||||||
|
config.setHost("127.0.0.1");
|
||||||
|
config.setPort(5432);
|
||||||
|
config.setDatabaseName("pgvector_test");
|
||||||
|
config.setUsername("test");
|
||||||
|
config.setPassword("123456");
|
||||||
|
config.setVectorDimension(1024);
|
||||||
|
config.setUseHnswIndex(true);
|
||||||
|
config.setAutoCreateCollection(true);
|
||||||
|
config.setDefaultCollectionName("test");
|
||||||
|
PgvectorVectorStore store = new PgvectorVectorStore(config);
|
||||||
|
|
||||||
|
StoreResult update = store.delete("145314895749100ae8306079519b3393","e83518d36b6d5de8199b40e3ef4e4ce1");
|
||||||
|
System.out.println(update);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user