文档格式

实时推送文档格式

[
    {
        "cmd": "add",
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body",
                  "tags" : [1, 2, 3]
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]

向量检索版的文档包括cmd和fields两个部分,这两个字段都是必选字段:

  • cmd:文档的更新方式。

    • add:添加一篇文档,如果文档已经存在会先删除然后再添加。

    • delete:删除一篇文档,删除文档时需要指定文档主键,如果索引构建时采用多级hash方式,需要指定每级hash的主键。

  • fields:文档包含的字段,fields中必须指定主键字段,多值字段是一个arrary类型,需要使用JsonArray来处理,如[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “ADD”}]。

向量检索版提供了数据推送的SDK。

全量文档格式

向量检索版目前只支持MaxCompute全量数据源,schema中配置的字段名要和MaxCompute中的字段名相同。对于多值字段,在MaxCompute中的内容需要使用多值分隔符'\x1D' ('^]')进行分割。MaxCompute中的数据不需要执行cmd,全量时默认全部都是add。

注意事项

  • 向量检索版有些内置的字符请不要在文档中使用,内置的字符如下表所示:

编码

(emacs/vi)中的显示形态

emacs中输入方法

vi中输入方法

"\x1E\n"

^^(接换行)

C-q C-6

C-v C-6

"\x1F\n"

^_(接换行)

C-q C-7

C-v C-7

"\x1D"

^]

C-q C-5

C-v C-5

"\x1C"

^\

C-q C-4

C-v C-4

"\x03"

^C

C-q C-c

C-v C-c

  • 实时推送时数据中不要出现多值分割符'\x1D' ('^]')。

  • TEXT类型的字段中不要出现多值分隔符'\x1D' ('^]')。