我一直在尝试在node-redis中使用ft.aggregate,特别是APPLY,但我找不到任何好的例子。 另外,如果有人知道如何在 redis 中使用 parsetime 函数,我将不胜感激
对于解析时间问题,我尝试了下一个命令:
ft.aggregate idx:example * APPLY parsetime(@date) as date.
我不断得到: 错误:出了问题
对于node-redis问题:
redis.ft.aggregate('idx:example, '*',{STEPS:[{type:AggregateSteps.APPLY,
剩下的我不确定——我需要在表达式子句中写什么,as 也一样
我对此进行了一些研究,并让它从命令行工作。我了解到有一些重要的花絮:
%FT%TZ
都不起作用。见下图:
redis.local> FT.AGGREGATE idx:example * LOAD 1 date APPLY "parsetime(@date, '%Y-%m-%dT%H:%M:%SZ')" as date
对于 Node Redis 代码,我能够让它工作:
const results = await redis.ft.aggregate('test:index', '*', {
LOAD: [ 'date' ],
STEPS: [{
type: AggregateSteps.APPLY,
expression: "parsetime(@date, '%Y-%m-%dT%H:%M:%SZ')",
AS: 'date'
}]
})
没有像样的文档或示例代码。完全理解 redis.ft.aggregate() 的唯一方法是研究它的单元测试。