3

我看到一个问题,如果搜索词中有两个以上的单词(包括所有格“'s”),则cts:element-word-query无法选择任何项目。这发生在我们运行 7.0-4.3 的生产服务器上,但不在我们运行 7.0-5.4 的开发服务器上。

比较结果pkg:database-configuration()并没有显示发生这种情况的任何明确原因。

以下xquery:

for $x in ((//ch_firstSource)[1 to 10])
let $q := cts:element-word-query(xs:QName('ch_firstSource'), (string($x)))
return (
    $x, 
    xdmp:estimate(cts:search(collection(),$q)), 
    cts:highlight($x, $q, element hit {$cts:text})
)

在生产中产生以下结果:

<ch_firstSource>Authentic Copy New Constit. France</ch_firstSource>
0
<ch_firstSource><hit>Authentic Copy New Constit. France</hit></ch_firstSource>
<ch_firstSource>Facsimiles National MSS Scotl.</ch_firstSource>
0
<ch_firstSource><hit>Facsimiles National MSS Scotl.</hit></ch_firstSource>
<ch_firstSource>Geoffrey Chaucer</ch_firstSource>
50900
<ch_firstSource><hit>Geoffrey Chaucer</hit></ch_firstSource>
<ch_firstSource>Thomas Newton</ch_firstSource>
1771
<ch_firstSource><hit>Thomas Newton</hit></ch_firstSource>
<ch_firstSource>Apocalypse St. John: A Version</ch_firstSource>
0
<ch_firstSource><hit>Apocalypse St. John: A Version</hit></ch_firstSource>
<ch_firstSource>Apocalypse St. John: A Version</ch_firstSource>
0
<ch_firstSource><hit>Apocalypse St. John: A Version</hit></ch_firstSource>
<ch_firstSource>Stephen Hawes</ch_firstSource>
2117
<ch_firstSource><hit>Stephen Hawes</hit></ch_firstSource>
<ch_firstSource>Stephen Hawes</ch_firstSource>
2117
<ch_firstSource><hit>Stephen Hawes</hit></ch_firstSource>
<ch_firstSource>Bede's Ecclesiastical History</ch_firstSource>
0
<ch_firstSource><hit>Bede's Ecclesiastical History</hit></ch_firstSource>
<ch_firstSource>Pseudo-Apuleius' Herbarium</ch_firstSource>
0
<ch_firstSource><hit>Pseudo-Apuleius' Herbarium</hit></ch_firstSource>

更大的套装包括:

<ch_firstSource>R. Whitford</ch_firstSource>
411
<ch_firstSource><hit>R. Whitford</hit></ch_firstSource>

<ch_firstSource>William Durrant Cooper</ch_firstSource>
0
<ch_firstSource><hit>William Durrant Cooper</hit></ch_firstSource>

在 dev 上,相同的查询会产生:

<ch_firstSource>Thomas Newton</ch_firstSource>
497
<ch_firstSource>
 <hit>Thomas Newton</hit>
</ch_firstSource>
<ch_firstSource>Stephen Marshall</ch_firstSource>
88
<ch_firstSource>
 <hit>Stephen Marshall</hit>
</ch_firstSource>
<ch_firstSource>Secreta Secretorum</ch_firstSource>
425
<ch_firstSource>
 <hit>Secreta Secretorum</hit>
</ch_firstSource>
<ch_firstSource>New Scientist</ch_firstSource>
421
<ch_firstSource>
 <hit>New Scientist</hit>
</ch_firstSource>
<ch_firstSource>Quarterly Review</ch_firstSource>
1226
<ch_firstSource>
 <hit>Quarterly Review</hit>
</ch_firstSource>
<ch_firstSource>Thomas Davis</ch_firstSource>
50
<ch_firstSource>
 <hit>Thomas Davis</hit>
</ch_firstSource>
<ch_firstSource>Arthur Young</ch_firstSource>
473
<ch_firstSource>
 <hit>Arthur Young</hit>
</ch_firstSource>
<ch_firstSource>William Durrant Cooper</ch_firstSource>
14
<ch_firstSource>
 <hit>William Durrant Cooper</hit>
</ch_firstSource>
<ch_firstSource>Westminster Gazette</ch_firstSource>
2629
<ch_firstSource>
 <hit>Westminster Gazette</hit>
</ch_firstSource>
<ch_firstSource>Deb. Congress 1808</ch_firstSource>
1
<ch_firstSource>
 <hit>Deb. Congress 1808</hit>
</ch_firstSource>

有谁知道为什么会发生这种情况?

4

1 回答 1

0

要查看版本 7.0-4.3 和 7.0-5.4 之间已发布的错误修复,请转到https://help.marklogic.com/Bugtrack/List并在 From 和 To 字段中输入这些版本,然后单击 Show。我没有看到任何与您的情况相匹配的内容,但值得一看。

在“更大的集合”数据之前,我有一个理论——在你最初的例子中,所有大于两个单词的例子也有标点符号。(你更大的集合结果似乎是一个相反的例子。)以防万一,你能跑吗

for $x in ((//ch_firstSource)[1 to 10])
let $q := cts:element-word-query(xs:QName('ch_firstSource'), (string($x)))
return (
    $x, 
    xdmp:estimate(cts:search(collection(), $q, "punctuation-insensitive")), 
    cts:highlight($x, $q, element hit {$cts:text})
)
于 2017-03-22T17:30:49.627 回答