Appearance
向量搜索
基本流程
- 准备与 Collection 同维度的 query_vector(通常由同一 Embedding 模型对查询文本编码)。
- 调用 search,指定 limit(top_k)。
- 得到按相似度排序的 点 id、score、payload。
Python
python
query_vector = [0.15] * 384 # 替换为真实查询向量
hits = client.search(
collection_name="demo_text",
query_vector=query_vector,
limit=5,
with_payload=True,
)
for h in hits:
print(h.id, h.score, h.payload)Java
java
import io.qdrant.client.grpc.Points.SearchPoints;
import java.util.Collections;
var hits = client.searchAsync(
SearchPoints.newBuilder()
.setCollectionName("demo_text")
.addAllVector(/* 与集合维度一致,如 384 维 List<Float> */)
.setLimit(5)
.setWithPayload(io.qdrant.client.grpc.Points.WithPayloadSelector.newBuilder().setEnable(true).build())
.build()
).get();
hits.forEach(p -> System.out.println(p.getId() + " " + p.getScore()));Java 中 addAllVector 需传入与建表时 size 相同数量的 float;可用循环或 float[] 转 List。
参数说明(常见)
| 参数 | 作用 |
|---|---|
| limit | 返回前 k 条。 |
| score_threshold | 过滤掉低于阈值的命中(可选)。 |
| with_payload | 是否返回 payload。 |
| with_vectors | 是否返回向量(一般关闭以省带宽)。 |
精度与速度
limit 很大时会变慢且意义有限;RAG 常见 5~20。若结果不理想,优先检查 模型、距离类型、数据质量,再调 top_k。
下一节:过滤条件,在子集中搜索。