查询多个集合Arangodb

时间:2019-02-26 17:20:57

标签: arangodb aql

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

1 个答案:

答案 0 :(得分: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

请注意,可以使用FILTER s完成简单的字符串相等操作,并且不需要全文本索引。

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

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

RETURN CONCAT(col1Documents, col2Documents)

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