繁体   English   中英

Marklogic Xquery搜索:搜索项-选项

[英]Marklogic Xquery search:search term-option

下面的查询给我错误的结果计数:

<options xmlns="http://marklogic.com/appservices/search">     
  <constraint name="Keyword">
    <range type="xs:string" 
           facet="true" 
           collation="http://marklogic.com/collation/">
      <element ns="" name="keyword"/>
      <facet-option>frequency-order</facet-option>
      <facet-option>descending</facet-option>
      <facet-option>limit=1</facet-option>
    </range>
  </constraint>
</options>;
let $query-text  := "pankaj!"
let $response := search:search($query-text, $query-options1)
return $response

没有单词“ pankaj!” 在我的ML DB中,但给出了33条响应。 33对于单词“ pankaj”是正确的,但对于“ pankaj!”则不是。 “!” 从查询文本中删除。

<search:response snippet-format="snippet" 
  total="33" 
  start="1" 
  page-length="10" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns="" 
  xmlns:search="http://marklogic.com/appservices/search"> 

请让我知道如何设置term-option以获得正确的结果。

谢谢。

wst和mblakele都有有用的说明,但是您的代码仍然存在另一个问题。 您声明一个构面,可将其用于现场搜索。 但是您没有使用它。 您需要在搜索词前添加“关键字:”。

如果您不这样做,则搜索词将被视为单词查询,这将导致删除标点符号,如mblakele所述。 如果您的搜索字词也出现在关键字元素之外,则使用前缀可以提高计数。 为了获得您真正想要的东西,来自wst和Will的提示对标点符号敏感可能也很有价值。

HTH!

单词索引不是标点符号敏感的,因为单词不是标点符号。 我建议阅读http://developer.marklogic.com/try/ninja/page8来了解各种查询选项,并阅读http://docs.marklogic.com/guide/search-dev/count_estimate来了解索引查找。

自动添加标点符号使该术语对标点符号敏感: http : //docs.marklogic.com/cts :word- query对此进行了说明。 但是搜索总数仍将显示不涉及标点符号的估计,因为索引不涉及标点符号。

这将强制在感叹号(或任何标点符号)上进行匹配:

<term>
  <term-option>punctuation-sensitive</term-option>
</term>

我还建议您在配置中使用对标点敏感的排序规则( http://marklogic.com/collation//S4 ),以用于该约束的范围索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM