【问题标题】:MarkLogic, how to add weight to field in cts field word queryMarkLogic,如何在cts字段词查询中为字段添加权重
【发布时间】:2019-02-22 11:05:23
【问题描述】:

我有这段代码

declare variable $a as xs:string := "case-insensitive punctuation-insensitive 
unwildcarded";  

declare variable $b as xs:string* := tokenize($a, ' ');

let $d as cts:query := cts:field-word-query("FULL-CASE-NAME", "complaints", 
$b, 30)
return <q>{$d}</q>

产生这个

<q>
  <cts:field-word-query weight="30" xmlns:cts="http://marklogic.com/cts">
    <cts:field>FULL-CASE-NAME</cts:field>
    <cts:text xml:lang="en">complaints</cts:text>
    <cts:option>case-insensitive</cts:option>
    <cts:option>punctuation-insensitive</cts:option>
    <cts:option>unwildcarded</cts:option>
  </cts:field-word-query>
</q>

但我想制作的是这个

<q>
  <cts:field-word-query weight="30" xmlns:cts="http://marklogic.com/cts">
    <cts:field weight="10">FULL-CASE-NAME</cts:field>
    <cts:text xml:lang="en">complaints</cts:text>
    <cts:option>case-insensitive</cts:option>
    <cts:option>punctuation-insensitive</cts:option>
    <cts:option>unwildcarded</cts:option>
  </cts:field-word-query>
</q>

不同之处在于这一行增加了权重作为属性

<cts:field weight="10">FULL-CASE-NAME</cts:field>

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    cts:field 只是保存字段的名称。权重(初始代码中的 30)已经存在,作为属性附加到它所属的 cts:field-word-query..

    HTH!

    【讨论】:

    • 你是对的,完全误解了重量的含义。感谢您指出这一点,真的很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2016-09-20
    相关资源
    最近更新 更多