将数据摄取到向量索引中
创建向量索引后,您需要摄取原始向量数据,或者在摄取数据时将其转换为嵌入。
摄取方法比较
下表比较了两种摄取方法。
功能 | 数据格式 | 摄入管道 | 向量生成 | 附加字段 |
---|---|---|---|---|
原始向量摄取 | 预生成向量 | 非必需 | 外部 | 可选元数据 |
摄取时将数据转换为嵌入 | 文本或图像数据 | 必需 | 内部(摄取期间) | 原始数据 + 嵌入 |
原始向量摄取
当处理原始向量或在 OpenSearch 之外生成的嵌入时,您可以直接将向量数据摄取到 knn_vector
字段。由于向量已生成,因此不需要管道。
PUT /my-raw-vector-index/_doc/1
{
"my_vector": [0.1, 0.2, 0.3],
"metadata": "Optional additional information"
}
您也可以使用 Bulk API 高效地摄取多个向量。
PUT /_bulk
{"index": {"_index": "my-raw-vector-index", "_id": 1}}
{"my_vector": [0.1, 0.2, 0.3], "metadata": "First item"}
{"index": {"_index": "my-raw-vector-index", "_id": 2}}
{"my_vector": [0.2, 0.3, 0.4], "metadata": "Second item"}
摄取时将数据转换为嵌入
配置了自动生成嵌入的摄取管道后,您可以将文本数据直接摄取到索引中。
PUT /my-ai-search-index/_doc/1
{
"input_text": "Example: AI search description"
}
管道会自动生成嵌入并将其存储在 output_embedding
字段中。
您也可以使用 Bulk API 高效地摄取多个文档。
PUT /_bulk
{"index": {"_index": "my-ai-search-index", "_id": 1}}
{"input_text": "Example AI search description"}
{"index": {"_index": "my-ai-search-index", "_id": 2}}
{"input_text": "Bulk API operation description"}
处理稀疏向量
OpenSearch 也支持稀疏向量。有关更多信息,请参阅神经稀疏搜索。
文本分块
有关在密集或稀疏 AI 搜索期间生成嵌入之前将大型文档拆分为更小片段的信息,请参阅文本分块。