文档负载
负载支持(已弃用)
警告:
在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
,有效载荷会跟在分数后面。