跳到内容

文档有效载荷

笔记

有效载荷功能在2.0中已弃用

通常,Redisearch将文档存储为哈希键。但是,如果要访问聚合或评分函数的某些数据,我们可能希望将该数据存储为内联有效载荷。这将允许我们评估文档的特性,以便以非常低的成本进行评分目的。

由于评分功能已经访问了包含文档标志和分数的Document MetaData,因此我们可以添加可以在运行时进行评估的自定义有效负载。

有效载荷未被索引,并且不会以任何方式由发动机处理。它们只是在那里,以便在查询时间中评估它们,并选择重新检索它们。它们可以是JSON对象,字符串,或者最好,如果您对快速评估感兴趣,则某种类型的二进制编码数据快速解码。

为文档添加有效载荷

使用ft.add插入文档时,您可以要求REDISEARCE将任意二进制安全字符串存储为文档有效载荷。这是通过的有效载荷关键词:

FT.添加{index_name.}{doc_id.}{分数}有效载荷{有效载荷}领域{场地}{数据}......

评估查询时间中的有效载荷

实现评分函数时,公开函数的签名是:

双倍的*得分)(DocumentMetAdata.*迪尔德IndexResult.*H);

笔记

目前,不能动态添加评分函数,并且需要拨打发动机并替换它们。

DocumentMetAdata包括一些字段,其中一个是有效载荷。它包装一个具有任意长度的简单字节数组:

typedef.塑造{char*数据UINT32_T.Len.;}DocumentPayload.;

如果没有将有效载荷设置为文档,则它将简单为null。如果不是,你可以继续解码它。建议编码一些关于它内部有效载荷的元数据,如前导版本号等。

从文档中检索有效载荷

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

这是通过添加关键字来完成的withpayloads.FT.Search.

如果withpayloads.已设置,有效载荷在返回的结果中遵循文档ID。如果有谱设置也是如此,有效载荷遵循得分。例如。:

127.00.16379>FT.创建Foo架构酒吧文本好的127.00.16379>FT.添加Foodoc2.1.0有效载荷“你好呀!”领域酒吧“你好”好的127.00.16379>FT.搜索Foo“你好”withpayloads.有谱1整数12“doc2”# ID3.“1”# 分数4.“你好呀!”#有效载荷5.1“酒吧”#字段2“你好”
Baidu