2012-04-18 3 views
3

У меня около 53 000 000 документов на моем сервере marklogic, и каждый документ содержит одну запись.Превышен лимит времени, в Markligic Cts: Поиск

xquery version "1.0-ml"; 
    declare namespace pa = "http://www.contata.com/pa"; 
    let $query := 
     cts:or-query(( 
      cts:element-word-query( 
       xs:QName("pa:name"), "SMITH" 
      ), 
      cts:element-word-query( 
       xs:QName("pa:address-1"), "" 
      ), 
      cts:element-word-query( 
       xs:QName("pa:address-2"), "" 
      ), 
      cts:element-word-query( 
       xs:QName("pa:address-3"), "" 
      ), 
      cts:element-word-query( 
       xs:QName("pa:city"), "" 
      ) 
        )) return 

cts:search(fn:doc(),$query)[5100000 to 5300000] 

Выполнения выше запроса он принимает и много времени, чтобы выполнить и выдает следующую ошибку

[1,0-мл] XDMP-EXTIME: CTS: поиск (FN: Doc(), КТС: или-query ((cts: element-word-query (xs: QName («pa: name»), «SMITH», («lang = en»), 1), cts: element-word-query (xs: QName («pa: address-1»), «", ("lang = en"), 1), cts: element-word-query (xs: QName ("pa: address-2"), "", (" lang = en "), 1), ...))) - Превышен предел времени

, но при выполнении cts:search(fn:doc(),$query)[1000 to 2000] он выполняется успешно.

Еще один вопрос, если я загрузил все мои документы, то как я могу создать индексы на них после загрузки из утилиты RecordLoader.

ответ

1

Вы видите 200.000 результатов поиска. Попытайтесь показать меньше сразу. Если вы будете использовать Query Console или CQ-профилировщик, вы увидите, что не cts: поиск занимает столько времени, но получает эти 200k-документы.

HTH!

+0

Спасибо за ваш ответ, Когда я запускаю этот запрос, он также дает ту же ошибку, но теперь я пытаюсь получить только 10 записей. 'cts: search (fn: doc(), $ query) [5300000 to 5300010]' –

4

Загляните в «нефильтрованный» вариант, а также подумайте об использовании «search: search».

Вы также можете увеличить срок, но, вероятно, этого не захотите. При отфильтрованном поиске, достигающем 500000-го результата, требуется проверка 500000 документов, для которых может потребоваться до 500000 дисков. Если ваш диск может управлять 100 раз в секунду, то есть 5000 секунд.

Смежные вопросы