文档有效载荷¶
笔记
有效载荷功能在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.0。0.1:6379>FT.。创建Foo架构酒吧文本好的127.0。0.1:6379>FT.。添加Foodoc2.1.0有效载荷“你好呀!”领域酒吧“你好”好的127.0。0.1:6379>FT.。搜索Foo“你好”withpayloads.有谱1)(整数)12)“doc2”# ID3.)“1”# 分数4.)“你好呀!”#有效载荷5.)1)“酒吧”#字段2)“你好”