Solon v3.3.3

rag - 文档查询条件

</> markdown

QueryCondition 查询条件:

属性默认值描述
freshness 热度(时间范围)
limit 限制条数
filterExpression 过滤表达式(对元数据字段进行过滤,语法参考 SnEL)
similarityThreshold0.4相似度阈值
disableRefilterfalse禁用搜索后再次本地过滤
searchTypeVECTOR搜索类型(仅 es 支持)
hybridSearchParams 混合搜索参数(仅 es 支持)

使用参考

// 创建元数据字段定义
List<MetadataField> metadataFields = new ArrayList<>();
metadataFields.add(MetadataField.keyword("url"));
metadataFields.add(MetadataField.keyword("category"));
metadataFields.add(MetadataField.numeric("priority"));
metadataFields.add(MetadataField.numeric("year"));

// 使用 Builder 模式创建Repository
repository = ElasticsearchRepository.builder(embeddingModel, client)
        .metadataFields(metadataFields)
        .build();
        
repository.insert(Arrays.as(new Document("solon ....", Utils.asMap("url", "https://solon.noear.org", ...))));

//构建查询条件
QueryCondition vectorFilteredCondition = new QueryCondition("solon framework")
        .filterExpression("url LIKE 'noear.org'"); //对元数据字段 url 进行过滤

//查询
List<Document> vectorFilteredResults = repository.search(vectorFilteredCondition);