如何在node-redis中使用ft.aggregate

ny6fqffe  于 2023-04-05  发布在  Redis
关注(0)|答案(1)|浏览(129)

我一直在尝试在node-redis中使用ft.aggregate,特别是APPLY,但我找不到任何好的例子。另外,如果有人知道如何在redis中使用parsetime函数,我将不胜感激
对于parsetime问题,我尝试了下一个命令:

ft.aggregate idx:example * APPLY parsetime(@date) as date.

我一直收到:错误:出错了
对于node-redis问题:

redis.ft.aggregate('idx:example, '*',{STEPS:[{type:AggregateSteps.APPLY,

剩下的我不确定-我需要在表达式子句中写什么,as也一样

rdlzhqv9

rdlzhqv91#

我对此进行了一番探索,并从命令行中让它工作。我了解到有几个重要的花絮:
1.您需要在查询中加载要调用APPLY的字段。
1.您需要指定字符串的格式,无论出于何种原因,%FT%TZ都无法工作。
1.因为格式是用引号括起来的,所以需要将整个APPLY参数括起来。
见下文:

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'
  }]
})

相关问题