簡體   English   中英

ArangoDB查詢與數組的連續匹配

[英]ArangoDB Query for consecutive matches to an array

在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個與數組數字匹配的數字的所有文檔,但是我可以想象有一種查詢此方法的方法。 我能想到的就是生成每個可能矩陣的組合來查詢匹配矩陣,這顯然是不現實的。

更新 :關於建議使用JS擴展的答案,如何解決這一問題呢? 我對ArangoDB擴展不熟悉。

使用純AQL進行此操作可能有點設計不足,建議您添加自己的JS函數以匹配它(請參閱https://docs.arangodb.com/AqlExtending/index.html

使用JS會很容易,並將其用作過濾器匹配項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM