文档负载

负载支持(已弃用)

警告:
在2.0版本中,payload功能已被弃用

通常,Redis Stack 将文档存储为哈希或 JSON。但如果你想访问一些数据进行聚合或评分函数,Redis 可以将这些数据存储为内联有效载荷。这将使我们能够以非常低的成本评估文档的属性以进行评分。

由于评分函数已经可以访问包含文档标志和分数的DocumentMetaData,Redis可以添加可以在运行时评估的自定义有效载荷。

Payloads 不会被索引,也不会以任何方式被引擎处理。它们仅仅是为了在查询时进行评估,并可选地检索它们。它们可以是 JSON 对象、字符串,或者如果你对快速评估感兴趣,最好是某种快速解码的二进制编码数据。

在查询时评估有效载荷

在实现评分函数时,暴露的函数的签名为:

double (*ScoringFunction)(DocumentMetadata *dmd, IndexResult *h);
注意:
目前,评分函数无法动态添加,需要分叉引擎并替换它们。

DocumentMetaData 包含几个字段,其中之一是 payload。它封装了一个任意长度的简单字节数组:

typedef struct  {
    char *data,
    uint32_t len;
} DocumentPayload;

如果没有为文档设置有效载荷,它只是NULL。如果不是,您可以继续解码它。建议在其中编码一些关于有效载荷的元数据,例如前导版本号等。

从文档中检索有效载荷

在搜索时,可以从引擎请求文档的有效载荷。

这是通过将关键字WITHPAYLOADS添加到FT.SEARCH来完成的。

如果设置了WITHPAYLOADS,返回结果中的有效载荷会跟在文档ID后面。 如果同时设置了WITHSCORES,有效载荷会跟在分数后面。

RATE THIS PAGE
Back to top ↑