首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索:从MarkLogic 7迁移到版本8的搜索选项

搜索:从MarkLogic 7迁移到版本8的搜索选项
EN

Stack Overflow用户
提问于 2015-03-17 14:05:57
回答 2查看 154关注 0票数 0

我正在尝试将用XQuery编写的搜索应用程序从MarkLogic 7迁移到版本8,并且在选项中遇到了关于约束命名空间的已知不兼容性问题。我尝试添加默认的json/basic命名空间,然后添加一个自定义命名空间,但不起作用。当我在查询控制台中运行下面的代码时,网页会在几秒钟后松开连接并重新加载。我甚至重新创建了一个元素范围索引,在我安装了ML 8之后,我所有的DB都被识别出来了,我重新编制了目标DB的索引。不知道还会有什么问题。任何指导都将不胜感激,谢谢!

代码语言:javascript
复制
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) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-18 15:14:16

我从零开始重新创建数据库,用最新的mlcp从ML7DB复制数据到新创建的ML8DB。重新创建了索引,但崩溃仍在发生。然后,我从导致崩溃的搜索选项中筛选出来。就是这个:

代码语言:javascript
复制
  <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
EN

Stack Overflow用户

发布于 2015-03-17 15:15:43

正如Joe指出的,服务器可能会崩溃并自动重新启动。检查ErrorLog.txt以验证这一点。确保您有最新发行版:现在是8.0-1.1。

测试用例是使用8.0-1.1和必要的索引设置的而不是在我的笔记本上崩溃。但是,我没有任何匹配的文档,所以它做的不太多。这可能意味着崩溃,如果这是正在发生的,也需要你的一些内容。您可以尝试一个空数据库来验证这一点,然后尝试确定问题是否链接到特定的一组文档。

如果问题仍然存在,请接触支座报告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29101183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档