我正在对单词查询执行XQuery搜索,以使用共现值返回值。但问题是,在执行通配符搜索时,会有一些误报作为匹配文档的一部分返回。 执行的元素字查询是
cts:element-word-query(fn:QName("", "contents"), "project monitor*",
("case-insensitive","punctuation-insensitive","stemmed","lang=en"), 1)
执行的查询是
cts:element-value-co-occurrences(xs:QName("node1"), xs:QName("node2"),
("collation=http://marklogic.com/collation/"),
cts:and-query((
cts:element-word-query(fn:QName("", "node3"), "project monitor*", ("case-insensitive","punctuation-insensitive","stemmed","lang=en"), 1),
cts:element-range-query(
xs:QName("node4"),
"=",
xs:long('1234567891011')
),
cts:element-attribute-range-query(
xs:QName("node5"),
xs:QName("attribute1"),
"=",
""
),
cts:collection-query('collection1'),
()
))
)
返回两个匹配的结果,其中一个为正,一个为误报。
<cts:co-occurrence>
<cts:value xsi:type="xs:string">General</cts:value>
<cts:value xsi:type="xs:string">/pdf/text-document/12345_0_1234.xml</cts:value>
</cts:co-occurrence>
<cts:co-occurrence>
<cts:value xsi:type="xs:string">Other</cts:value>
<cts:value xsi:type="xs:string">/pdf/text-doc/1234_1_0000.xml</cts:value>
</cts:co-occurrence>
答案 0 :(得分:3)
如果没有完整的可重复测试用例,我最好的猜测是缺少位置索引会导致通配符cts:element-word-query
返回误报。尝试在数据库配置中启用其中一个或两个:element word positions
和element value positions
,然后重试查询(重建索引后)。