2

我想汇总文档并仅返回文档 ID。

怎么做?

4

2 回答 2

5

使用聚合,您有时可能会返回与文档 ID 无关的结果(例如,如果您按某个字段分组,然后返回组大小)。这就是聚合结果不包含文档 ID 的原因。如果您的特定聚合确实保留了文档 ID,则可以将其作为无索引字段放入文档本身中,然后返回它。

例如:

127.0.0.1:6379> FT.CREATE idx SCHEMA name TEXT SORTABLE docid TAG SORTABLE NOINDEX
OK
127.0.0.1:6379> FT.ADD idx doc1 1.0 FIELDS name name1 docid doc1
OK
127.0.0.1:6379> FT.ADD idx doc2 1.0 FIELDS name name2 docid doc2
OK
127.0.0.1:6379> FT.ADD idx doc3 1.0 FIELDS name name1 docid doc3
OK
127.0.0.1:6379> FT.AGGREGATE idx * GROUPBY 1 @name REDUCE TOLIST 1 @docid as docids
1) (integer) 2
2) 1) name
   2) "name2"
   3) docids
   4) 1) "doc2"
3) 1) name
   2) "name1"
   3) docids
   4) 1) "doc1"
      2) "doc3"
于 2019-01-27T08:38:55.203 回答
0

在最近版本的 RediSearch 中,表达式LOAD {nargs} {property}允许使用 加载文档 id @__key,可以在聚合管道的后期阶段引用:

FT.AGGREGATE idx * LOAD 1 @__key GROUPBY 1 @type REDUCE TOLIST 1 @__key as keys
于 2021-01-17T08:12:33.643 回答