首页 文章

ArangoDB查询与数组的连续匹配

提问于
浏览
0

在ArangoDB中,我需要使用整数矩阵搜索文档中数组的一定数量的连续匹配 .

示例文档 (all are int[5][5])

nums:
25, 32, 26, 27, 29
01, 22, 15, 17, 99
12, 14, 17, 19, 88
16, 14, 12, 17, 19
02, 08, 09, 18, 19

在java中我有一个 int[5] example.:

22, 23, 24, 25, 26

我需要返回满足以下任何条件的所有文档:

来自java数组的至少4个数字匹配任何矩阵行中的至少4个连续数字 . 例如 . 如果矩阵行有 22, 23, **29**, 24, 25 它将不匹配,因为数组中没有一组四个数字彼此相邻(但是,如果顺序与数组的顺序相匹配则无关紧要) . 但是,如果它是 22, 26, 23, 24 它会匹配,因为阵列中至少有四个连续的数字 . 例如:

**22**, 32, 26, 27, 29
**26**, 22, 15, 17, 99
**23**, 14, 17, 19, 88
**24**, 14, 12, 17, 19
  02,   08, 09, 18, 19

与上面相同,但在任何矩阵列而不是行

20, 01, 02,  03,  08
01,*22,*23*,*25*,*24*
12, 14, 17, 19, 88
16, 14, 12, 17, 19
02, 08, 09, 18, 19

与最后两个相同但是对角线,而不是行或列

**22**, 32, 26, 27, 29            01, 02, 03,   04,   05
01, **23**, 15, 17, 99            06, 07, 08, **24**, 10
12, 14, **26**, 19, 88            11, 12, **23**, 14, 15
16, 14, 12, **25**, 19            16, **25**, 18, 19, 20
02, 08, 09,   18,   19          **22**, 22,   23, 24, 25

任何矩阵中没有两个数字是相同的 . 例如,整个矩阵中不会有多次 1 .

我不确定如何处理这样的问题 . 目前我正在查询矩阵中至少有4个与数组编号匹配的数字的文档,但我想有一种方法可以查询 . 我能想到的就是生成每个可能的矩阵的组合来查询匹配的矩阵,这显然是不现实的 .

Update :关于建议使用JS扩展的答案,如何解决这个问题呢?我不熟悉ArangoDB扩展 .

1 回答

相关问题