langchain4j InMemoryEmbeddingStore常用的方法

InMemoryEmbeddingStore 检索方法(langchain4j)

接口:EmbeddingStore<T>,实现类 InMemoryEmbeddingStore<T>

✅ 推荐新版:search(EmbeddingSearchRequest)

⚠️ findRelevant 属于旧版default方法,新版本标记废弃,仅做兼容

1. search(官方推荐,你前面代码用的)

java 复制代码
EmbeddingSearchResult<T> search(EmbeddingSearchRequest request);

EmbeddingSearchRequest 可配置:

  • queryEmbedding:查询向量(必填)
  • maxResults:返回topN
  • minScore:最低相似度阈值
  • filter:元数据过滤(按metadata筛选)

示例:

java 复制代码
EmbeddingSearchRequest request = EmbeddingSearchRequest.builder()
        .queryEmbedding(queryEmbedding)
        .maxResults(3)
        .minScore(0.6)
        .filter(MetadataFilter.key("source").isEqualTo("book.pdf"))
        .build();
EmbeddingSearchResult<TextSegment> result = store.search(request);
List<EmbeddingMatch<TextSegment>> matches = result.matches();

2. findRelevant 系列(旧版,不推荐新项目)

java 复制代码
// ① 只指定向量和max,minScore默认0
List<EmbeddingMatch<T>> findRelevant(Embedding queryEmbedding, int maxResults);

// ② 指定向量、max、最低相似度
List<EmbeddingMatch<T>> findRelevant(Embedding queryEmbedding, int maxResults, double minScore);

// ③ 带元数据过滤器
List<EmbeddingMatch<T>> findRelevant(Embedding queryEmbedding, int maxResults, Filter filter);

返回 List<EmbeddingMatch<T>>,直接拿到匹配列表,没有外层 EmbeddingSearchResult 对象。

检索返回对象

  • EmbeddingMatch<T>
    • score():余弦相似度,0~1,越大越相似
    • embedded():存入的 TextSegment
    • embeddingId():向量id

两种API对比

search() findRelevant()
返回 EmbeddingSearchResult List<EmbeddingMatch>
配置 统一builder,支持max/minScore/filter 多个重载方法
状态 ✅ 推荐,新特性都在这里 ⚠️ 逐步废弃
扩展性 更好,后续向量库统一接口 简单快速原型

补充

InMemoryEmbeddingStore 使用暴力全量余弦相似度计算,没有索引,数据量大后会变慢。

需要我写一段带filter元数据过滤的检索示例吗?

相关推荐
小天源1 小时前
GEO 品牌监测系统实战:基于 Node.js + Playwright 实现多平台采集与报告导出
人工智能·node.js·geo·品牌检测·ai诊断
skywalk81631 小时前
光明语言入榜计划:GitHub Linguist 注册指南・光明语言模块参考
人工智能·编程·光明
小番茄程序猿1 小时前
RAG 的 precision 只有 0.55,我以为检索烂了,MRR 一测才发现是我用错了尺子
java·后端
天空鸟_时光不老1 小时前
07-检查点与状态持久化
java·人工智能·spring boot·spring·spring cloud·kafka·maven
Latchh1 小时前
PDF打开不要密码却显示已加密,前端怎么判断
前端·图像处理·人工智能·计算机视觉·pdf
GoodStudyAndDayDayUp1 小时前
一个简单的java jar跑docker
java·docker·jar
thinking_talk1 小时前
企业AI记忆产品科学选型框架
人工智能·机器学习·ai记忆
卿卿的产品经理日记1 小时前
【AI产品经理实战】Day 33|计算机科学速成:从巴贝奇到“AI是围墙“
人工智能·aigc·产品经理
桃西西呀1 小时前
Spring AI Alibaba 之三:graph-core 状态图引擎深拆
人工智能·spring·llm