Запрос элемента-слова MarkLogic не выполняется на>2 терминах
Я вижу проблему, когда https://docs.marklogic.com/cts:element-word-query не может выбрать какие-либо элементы, если в поисковом запросе есть более двух слов (включая притяжательные "s"). Это происходит на нашем производственном сервере с 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>
У кого-нибудь есть идеи, почему это может происходить?
1 ответ
Чтобы посмотреть опубликованные исправления ошибок между версиями 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})
)