[英]Two FULLTEXT searches on ArangoDb Cluster: V8 is involved
我正在研究ArangoDb群集,發現在使用情況下,兩個FULLTEXT()搜索其中之一涉及V8引擎。 我的資料:
[
{
"TITL": "Attacks induced by bromocryptin in Parkinson patients",
"WORD": [
"hascites",
"Six patients with Parkinson's disease"
],
"ID":1,
},
{
"TITL": "Linear modeling of possible mechanisms for Parkinson tremor generation",
"WORD": [
"hascites",
"jsubsetIM"
],
"ID":2,
},
{
"TITL": "Drug-induced parkinsonism in the rat- a model for biochemical ...",
"WORD": [
"hascites",
"Following treatment with reserpine or alternatively with ...",
"hasabstract"
],
"ID":3,
}
]
最簡單的查詢:
FOR title IN FULLTEXT(pmshort,"TITL","parkinson")
FOR word IN FULLTEXT(pmshort,"WORD","hascites")
FILTER title.ID==word.ID
RETURN title
換句話說,我正在嘗試查找hascites
中具有parkinson
而WORD
中具有TITL
所有文檔。 這個例子被認真地簡化了,所以類似
FILTER word.WORD=='hascites'
不可能。 為了提供必要的功能,需要兩次或多次FULLTEXT搜索。 館藏約有52萬份文件。 在每個字段上設置全文索引。
我發現,分別運行的每個FULLTEXT查詢都涉及索引:
Execution plan:
Id NodeType Site Est. Comment
1 SingletonNode DBS 1 * ROOT
5 IndexNode DBS 526577 - FOR title IN pmshort /* fulltext index scan */
8 RemoteNode COOR 526577 - REMOTE
9 GatherNode COOR 526577 - GATHER
4 ReturnNode COOR 526577 - RETURN title
但是,在使用情況下, FOR
第一個都是由V8(JavaScript)處理的,並在協調器上運行,而不是在DBS上運行:
Execution plan:
Id NodeType Site Est. Comment
1 SingletonNode COOR 1 * ROOT
2 CalculationNode COOR 1 - LET #2 = FULLTEXT(pmshort /* all collection documents */, "TITL", "parkinson") /* v8 expression */
3 EnumerateListNode COOR 100 - FOR title IN #2 /* list iteration */
10 ScatterNode COOR 100 - SCATTER
11 RemoteNode DBS 100 - REMOTE
9 IndexNode DBS 52657700 - FOR word IN pmshort /* fulltext index scan */
6 CalculationNode DBS 52657700 - LET #6 = (title.`ID` == word.`ID`) /* simple expression */ /* collections used: word : pmshort */
7 FilterNode DBS 52657700 - FILTER #6
12 RemoteNode COOR 52657700 - REMOTE
13 GatherNode COOR 52657700 - GATHER
8 ReturnNode COOR 52657700 - RETURN title
當然,這會大大減慢系統速度。 所以我的問題是:1.為什么ArangoDb集群不能在DBS上而不是在協調器(COOR)上處理兩個條件? 2.由於性能下降300-500倍,如何避免這種情況? 3.可能有人可以指出一些其他材料來閱讀此內容。
任何幫助表示贊賞。 謝謝!
在每個查詢/子查詢中應用了一個全文轉換之后,查詢優化器似乎停止尋求進一步的全文改進。
可以在此拉取請求 (針對3.3.10)中找到可能的解決方案。
非常感謝! 它應該在3.3.10和將來的3.4中可用,對嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.