Link Search Menu Expand Document Documentation Menu

文本嵌入处理器

text_embedding 处理器用于从文本字段生成向量嵌入,以实现语义搜索

先决条件
在使用 text_embedding 处理器之前,您必须设置一个机器学习 (ML) 模型。有关更多信息,请参阅选择模型

以下是 text_embedding 处理器的语法:

{
  "text_embedding": {
    "model_id": "<model_id>",
    "field_map": {
      "<input_field>": "<vector_field>"
    }
  }
}

配置参数

下表列出了 text_embedding 处理器的必需和可选参数。

参数 数据类型 必需/可选 描述
model_id 字符串 必需 将用于生成嵌入的模型 ID。模型必须先部署到 OpenSearch 中才能在神经搜索中使用。有关更多信息,请参阅在 OpenSearch 中使用自定义模型语义搜索
field_map 对象 必需 包含键值对,用于指定文本字段到向量字段的映射。
field_map.<input_field> 字符串 必需 用于获取文本以生成文本嵌入的字段名称。
field_map.<vector_field> 字符串 必需 用于存储生成的文本嵌入的向量字段名称。
description 字符串 可选 处理器的简要描述。
tag 字符串 可选 处理器的标识符标签。有助于调试以区分相同类型的处理器。
batch_size 整数 可选 指定每次批处理和处理的文档数量。默认值为 1
if 包含布尔表达式的字符串 可选 运行处理器的条件。
ignore_failure 布尔型 可选 指定即使处理器遇到错误是否继续执行。如果设置为 true,则忽略处理器故障。默认值为 false
on_failure 列表 可选 处理器失败时要运行的处理器列表。
skip_existing 布尔型 可选 当为 true 时,处理器不会对已包含嵌入的字段进行推理调用,保留现有嵌入不变。默认值为 false

使用处理器

按照以下步骤在管道中使用处理器。创建处理器时必须提供模型 ID。有关更多信息,请参阅在 OpenSearch 中使用自定义模型

步骤 1:创建管道。

以下示例请求创建了一个摄入管道,其中 passage_text 中的文本将被转换为文本嵌入,并且这些嵌入将存储在 passage_embedding

PUT /_ingest/pipeline/nlp-ingest-pipeline
{
  "description": "A text embedding pipeline",
  "processors": [
    {
      "text_embedding": {
        "model_id": "bQ1J8ooBpBj3wT4HVUsb",
        "field_map": {
          "passage_text": "passage_embedding"
        }
      }
    }
  ]
}

步骤 2 (可选):测试管道。

建议在摄取文档之前测试您的管道。

要测试管道,请运行以下查询

POST _ingest/pipeline/nlp-ingest-pipeline/_simulate
{
  "docs": [
    {
      "_index": "testindex1",
      "_id": "1",
      "_source":{
         "passage_text": "hello world"
      }
    }
  ]
}

响应

响应确认除了 passage_text 字段外,处理器已在 passage_embedding 字段中生成了文本嵌入

{
  "docs": [
    {
      "doc": {
        "_index": "testindex1",
        "_id": "1",
        "_source": {
          "passage_embedding": [
            -0.048237972,
            -0.07612712,
            0.3262124,
            ...
            -0.16352308
          ],
          "passage_text": "hello world"
        },
        "_ingest": {
          "timestamp": "2023-10-05T15:15:19.691345393Z"
        }
      }
    }
  ]
}

创建摄入管道后,您需要创建一个用于摄入的索引并将文档摄入到该索引中。要了解更多信息,请参阅步骤 2:创建用于摄入的索引步骤 3:将文档摄入到索引中(来自语义搜索)。

后续步骤

剩余 350 字符

有问题?

想要贡献?