我正在使用Marklogic中的cts:search API,当我在通配符的单词周围添加*时,我遇到了一个关于获取部分单词结果的问题。
我有一个约束:
<constraint name="schoolName">
<term-option>wildcarded</term-option>
<word>
<element name="schoolName"/>
</word>
</constraint>
我有一个查询字符串:
let $query :='directory:/request/ schoolName:"*drivin*"'
该目录是一个自定义构面,用于构建URI限制。
最终的搜索查询是:
<search:query>
<cts:and-query strength="20" qtextjoin="" qtextgroup="( )" xmlns:cts="http://marklogic.com/cts">
<cts:directory-query depth="infinity">
<cts:uri>/request/</cts:uri>
</cts:directory-query>
<cts:element-word-query qtextpre="schoolName:" qtextref="cts:annotation">
<cts:element>schoolName</cts:element>
<cts:annotation qtextref="following-sibling::cts:text"/>
<cts:text>*drivin*</cts:text>
</cts:element-word-query>
</cts:and-query>
</search:query>
这不会返回任何内容。
然而改变
*驱动*
将返回带有驾驶的schoolName。像A和B驾驶学校(不区分大小写的搜索)