", results[0].page_content)
#### 获取搜索结果及其分数
```python
# 返回文档及相似度分数
results_with_scores = vector_store.similarity_search_with_score(query, embedder_name=embedder_name)
print("文档内容:", results_with_scores[0][0].page_content)
print("相似度分数:", results_with_scores[0][1])
4. 使用预生成嵌入搜索
如果已经生成了查询的嵌入向量,可以直接通过向量进行检索:
# 通过嵌入向量查询
query_vector = embeddings.embed_query(query)
results = vector_store.similarity_search_by_vector(query_vector, embedder_name=embedder_name)
print("通过向量搜索的结果:", results[0].page_content)
应用场景分析
常见使用场景
- 智能问答系统:结合语义搜索,为用户提供精准的答案。
- 知识库管理:对海量文档进行向量化索引,提升检索效率。
- 电商商品搜索:基于用户输入,实现更智能、高相关度的商品推荐。
对比传统搜索
功能 | 传统关键词搜索 | 向量搜索 |
---|---|---|
匹配方式 | 关键词匹配 | 嵌入匹配(语义相关性) |
对同义词的支持 | 弱 | 强 |
对拼写错误的容错能力 | 低 | 高 |
开发复杂度 | 低 | 较高 |
实践建议
- 选择合适的嵌入模型:针对不同场景(如长文档、代码、图像),选择适配的嵌入生成工具。
- 分片策略:根据具体数据,调整
chunk_size
和chunk_overlap
参数,平衡嵌入精度与性能。 - API 密钥管理:区分开发环境和生产环境,严格控制 MASTER_KEY 的使用范围。
- 监控性能:定期检查索引的查询效率,避免嵌入维度过大导致的性能瓶颈。
如果在使用过程中有任何问题,欢迎在评论区交流!