MarkLogic: нестабильное время / время выполнения API оптики - PullRequest
1 голос
/ 14 июня 2019

Я поиграл с возможностями MarkLogic Optics API и заметил, что время, необходимое для завершения выполнения моего кода, нестабильно, так как это может занять до 40 секунд или ~ 1-2 минут, иногда такжетакже занимает больше часа, что активирует ошибку тайм-аута.

Это из-за кешей или определенных настроек, которые я мог упустить?Или низкое время выполнения из-за кешей из предыдущих неудачных / неполных выполнений?Я разместил один набор моих кодов ниже, поскольку это может помочь в устранении неполадок.

import module namespace op="http://marklogic.com/optic" at "/MarkLogic/optic.xqy";
import module namespace ofn="http://marklogic.com/optic/expression/fn" at "/MarkLogic/optic/optic-fn.xqy";
import module namespace thsr="http://marklogic.com/xdmp/thesaurus" 
   at "/MarkLogic/thesaurus.xqy";

xdmp:set-transaction-time-limit(3600),
let $people := op:from-lexicons(
  map:entry("comments",cts:uri-reference()),
  "lexicon")
  =>op:where(
   thsr:expand(
   cts:element-word-query(xs:QName("text"),"go"), 
   thsr:lookup("/myThsrDocs/wordnet.xml", "go"),
   (), 
   (), 
   () )
  )

let $questions := op:from-sparql('SELECT * WHERE {?comment </date_commented> ?date. }', "sparql")
                => op:select(( "date", op:as('commentStr',ofn:string(op:col('comment'))) ))

return(
xdmp:elapsed-time(),
$questions  => op:join-inner(
    $people,
    op:on(
      "comments","commentStr"
    )
  )
  => op:select(("comments")) 
  => op:group-by((), op:count("Total","comments"))
  => op:result()
,
xdmp:elapsed-time()
)

1 Ответ

3 голосов
/ 14 июня 2019

Вероятно, это связано с выбором различных планов запросов и указывает на возможную ошибку в функции стоимости.Вы должны работать с поддержкой MarkLogic, чтобы отследить проблему и открыть для нее ошибку.

...