2015-03-17 2 views
0

Я пытаюсь перенести приложение для поиска, написанное в XQuery от MarkLogic 7 до версии 8, и я ударил эту проблему с известной несовместимостью в пространстве имен ограничений в параметрах. Я попытался добавить стандартное пространство имен json/basic, а затем пользовательское пространство имен, не работает. Когда я запускаю приведенный ниже код на веб-странице Query Console, через несколько секунд происходит соединение и перезагрузка. Я даже воссоздал индекс диапазона элементов, после того как я установил ML 8, все мои БД были распознаны, я переиндексировал целевую БД. Не знаю, что еще может быть неправильно. Любое руководство будет высоко оценено, спасибо!поиск: варианты поиска переход от MarkLogic 7 к версии 8

xquery version "1.0-ml"; 

import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy"; 

declare variable $options := 
<search:options xmlns:search="http://marklogic.com/appservices/search"> 
    <search:search-option>unfiltered</search:search-option> 
    <search:page-length>30</search:page-length> 
    <search:term apply="term"> 
    <search:empty apply="all-results"/> 
    <search:term-option>punctuation-insensitive</search:term-option> 
    <search:term-option>stemmed</search:term-option> 
    </search:term> 
    <search:grammar> 
    <search:quotation>"</search:quotation> 
    <search:implicit> 
     <cts:and-query strength="20" xmlns:cts="http://marklogic.com/cts"/> 
    </search:implicit> 
    <search:starter strength="30" apply="grouping" delimiter=")">(</search:starter> 
    <search:starter strength="40" apply="prefix" element="cts:not-query">-</search:starter> 
    <search:joiner strength="10" apply="infix" element="cts:or-query" tokenize="word">OR</search:joiner> 
    <search:joiner strength="20" apply="infix" element="cts:and-query" tokenize="word">AND</search:joiner> 
    <search:joiner strength="30" apply="infix" element="cts:near-query" tokenize="word">NEAR</search:joiner> 
    <search:joiner strength="30" apply="near2" consume="2" element="cts:near-query">NEAR/</search:joiner> 
    <search:joiner strength="50" apply="constraint">:</search:joiner> 
    <search:joiner strength="50" apply="constraint" compare="LT" tokenize="word">LT</search:joiner> 
    <search:joiner strength="50" apply="constraint" compare="LE" tokenize="word">LE</search:joiner> 
    <search:joiner strength="50" apply="constraint" compare="GT" tokenize="word">GT</search:joiner> 
    <search:joiner strength="50" apply="constraint" compare="GE" tokenize="word">GE</search:joiner> 
    <search:joiner strength="50" apply="constraint" compare="NE" tokenize="word">NE</search:joiner> 
    </search:grammar> 
    <search:additional-query> 
    <cts:not-query xmlns:cts="http://marklogic.com/cts"> 
     <cts:or-query> 
    <cts:collection-query> 
     <cts:uri>ontology</cts:uri> 
     <cts:uri>Gemeentes</cts:uri> 
     <cts:uri>Wijken</cts:uri> 
     <cts:uri>Buurten</cts:uri> 
     <cts:uri>Wijk_Hierarchy</cts:uri> 
     <cts:uri>Buurt_Hierarchy</cts:uri> 
     <cts:uri>Kerncijfers_wijken_en_buurten_2014</cts:uri> 
    </cts:collection-query> 
    <cts:element-query> 
     <cts:element xmlns:sem="http://marklogic.com/semantics">sem:triples</cts:element> 
     <cts:or-query/> 
    </cts:element-query> 
     </cts:or-query> 
    </cts:not-query> 
    </search:additional-query> 
    <search:debug>false</search:debug> 
    <search:extract-metadata> 
    <search:qname elem-name="Vhe"/> 
    <search:qname elem-name="OpnameType"/> 
    <search:qname elem-name="Plaats"/> 
    <search:qname elem-name="Straat"/> 
     <search:constraint-value ref="Plaats"/> 
    <search:constraint-value ref="Straat"/> 
    <search:constraint-value ref="Keuken_Beoordeling"/> 
     <search:constraint-value ref="Badkamer_Beoordeling"/> 
    <search:constraint-value ref="location"/> 
    </search:extract-metadata> 

    <search:transform-results apply="snippet"/> 

    <search:constraint name="location"> 
    <search:geo-elem-pair> 
     <search:parent name="location"/> 
     <search:lat name="lat"/> 
     <search:lon name="lng"/> 
     <search:geo-option>units=miles</search:geo-option> 
     <search:geo-option>coordinate-system=wgs84</search:geo-option> 
     <search:heatmap n="50.0006240" s="52.384274889550028" w="5.1864790" e="6.8864790" latdivs="14" londivs="19"/> 
    </search:geo-elem-pair> 
    </search:constraint> 

    <search:constraint name="Plaats"> 
    <search:range type="xs:string" collation="http://marklogic.com/collation/"> 
     <search:element name="Plaats"/> 
    </search:range> 
    </search:constraint> 
    <search:constraint name="Straat"> 
    <search:range type="xs:string" collation="http://marklogic.com/collation/"> 
     <search:element name="Straat"/> 
    </search:range> 
    </search:constraint> 
    <search:constraint name="Complex"> 
    <search:range type="xs:string" collation="http://marklogic.com/collation/"> 
     <search:element name="Complex"/> 
    </search:range> 
    </search:constraint> 
    <search:constraint name="Keuken_Beoordeling"> 
    <search:range type="xs:string" collation="http://marklogic.com/collation/"> 
     <search:element name="Keuken_Beoordeling"/> 
    </search:range> 
    </search:constraint> 
    <search:constraint name="Badkamer_Beoordeling"> 
    <search:range type="xs:string" collation="http://marklogic.com/collation/"> 
     <search:element name="Badkamer_Beoordeling"/> 
    </search:range> 
    </search:constraint> 
    <search:return-metrics>true</search:return-metrics> 
    <search:return-qtext>true</search:return-qtext> 
    <search:return-query>false</search:return-query> 
    <search:return-results>true</search:return-results> 
    <search:return-similar>false</search:return-similar> 
    <search:sort-order direction="descending"> 
    <search:score/> 
    <search:annotation>Relevancy (Desc)</search:annotation> 
</search:sort-order> 
</search:options>; 

search:search("wieer", $options, xs:unsignedLong(1), 150) 
+2

Перезапуск MarkLogic? Существуют ли какие-либо ошибки в 'ErrorLog.txt'? – joemfb

+0

Были ли такие элементы, как Straat, преобразованные из ключей JSON, используя json: transform() с базовой конфигурацией? Если это так, элемент search: должен иметь атрибут ns из «http://marklogic.com/xdmp/json/basic» (или JSON должен быть помещен как родной JSON, а опции должны использовать поиск: json-property вместо) , – ehennum

+0

Да, я получаю следующую ошибку, и сервер перезагружается. –

ответ

0

Я восстановил БД с нуля, скопировал данные с последним mlcp из ML 7 DB в недавно созданный DB ML 8. Обострили индексы, но крушение все еще происходило. Затем я отфильтровал из параметров поиска, из-за которых произошел сбой. Именно этот:

<search:constraint name="location"> 
    <search:geo-elem-pair> 
     <search:parent name="location"/> 
     <search:lat name="lat"/> 
     <search:lon name="lng"/> 
     <search:geo-option>units=miles</search:geo-option> 
     <search:geo-option>coordinate-system=wgs84</search:geo-option> 
     <search:heatmap n="50.0006240" s="52.384274889550028" w="5.1864790" e="6.8864790" latdivs="14" londivs="19"/> 
    </search:geo-elem-pair> 
    </search:constraint> 

Как только я удалил это, на самом деле не использовал его в результатах поиска, проблем больше не было.

+0

Сузился еще дальше. Следующая строка поискового запроса постоянно вызывает сбои:

1

Как указывает Джо, сервер может сбой и автоматический перезапуск. Проверьте, пожалуйста, ErrorLog.txt. Удостоверьтесь, что у вас есть very latest release: сейчас это 8.0-1.1.

Тестовый кейс не авария на моем ноутбуке с 8.0-1.1 и необходимые настройки индекса. Однако у меня нет подходящих документов, поэтому это не очень важно. Это может означать, что авария, если это то, что происходит, требует некоторых из вашего контента. Вы можете попробовать пустую базу данных, чтобы проверить это, а затем попытаться установить, связана ли проблема с конкретным набором документов.

Если проблема не устранена, contact support сообщить об этом.

+0

Действительно, я установил версию 8.0-1.1 –

+0

База данных также использовалась в ML 7, и после того, как я установил ML 8, она автоматически распознала все мои предыдущие БД, параметры безопасности и настройки БД, включая индексы. Я просто переиндексировал БД. Все мои документы XML, как и в ML7. Я проверю журналы и сделаю еще несколько тестов. Спасибо за вашу помощь! –

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