我看到一个问题,如果搜索字词中有两个以上的字(包括所有格“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>
在开发时,相同的查询产生:
<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>
有没有人有任何想法可能会发生这种情况?
答案 0 :(得分:0)
要查看版本7.0-4.3和7.0-5.4之间已发布的错误修复,请转到https://help.marklogic.com/Bugtrack/List并在“从”和“收件人”字段中输入这些版本,然后单击“显示”。我没有看到任何符合你的情况,但值得一看。
我有一个理论,直到“更大的集合”数据 - 在你的初始例子中,所有大于两个字的例子也有标点符号。 (你的大集合结果似乎是一个相反的例子。)以防万一,你可以运行
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})
)