查询多个集合Arangodb

问题描述 投票:0回答:1
FOR col_name IN ['col_1', 'col_2']

FOR d IN FULLTEXT(col_name, 'label', @value)

RETURN d

不起作用

FOR d IN FULLTEXT('col_1', 'label', @value)

RETURN d

工作良好

我正在使用arango 3.4.2-1

arangodb aql
1个回答
2
投票

一般来说,您可以查询两个集合,如下所示:

FOR col1doc IN col_1
  FILTER col1doc.foo == 'bar'
    FOR col2doc IN col_2
      FILTER col1doc.joinfield == col2doc.joinfield
RETURN {col1doc: col1doc, col2doc: col2doc} 

作为它的documented in the AQL manual for joins

请注意,使用FILTERs可以完成简单的字符串均衡,并且不需要全文索引。

对于两个集合的旧全文索引,您可以使用如下子查询:

let col1Documents = (FULLTEXT(col_1, 'label', @value))
let col2Documents = (FULLTEXT(col_2, 'label', @value))

RETURN CONCAT(col1Documents, col2Documents)

实现这一目标的更现代化的方法是to use ArangoSearch views,它可以处理许多收藏品。

© www.soinside.com 2019 - 2024. All rights reserved.