在Marklogic 7中的外卡字符搜索中返回误报

时间:2016-11-02 19:23:24

标签: marklogic marklogic-8 marklogic-7

我正在对单词查询执行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</ct‌​s: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>

1 个答案:

答案 0 :(得分:3)

如果没有完整的可重复测试用例,我最好的猜测是缺少位置索引会导致通配符cts:element-word-query返回误报。尝试在数据库配置中启用其中一个或两个:element word positionselement value positions,然后重试查询(重建索引后)。