Marklogic Diacritic Чувствительный поиск не работает для нефильтрованных поисков
Если я чувствую диакритический знак cts:query
за cts:search
в нефильтрованном режиме я получаю правильный результат, но, делая то же самое в фильтрованном режиме, я получаю неверные результаты. Например:
cts:search($data,($cts:query('unfiltered','diacritic-sensitive')))
returns incorrect results.
но:
cts:search($data,($cts:query('filtered','diacritic-sensitive')))
returns correct results.
Итак, есть ли способ получить правильные результаты и для нефильтрованных поисков?
Пожалуйста, найдите ниже мои детали кода.
for $result in cts:search (fn:collection ($searchable-collection), $cts-query, ('unfiltered', $relevance-score-algo), 0.0)
order by xs:dateTime ($result//c:created-on) descending
return $result/element()
Где $cts-query похож на это.
cts:element-query($element-to-query,
cts:word-query($search-text,
$search-options,
$weight)
В опциях я могу передать "диакритически чувствительный" или нет.
1 ответ
Для точного нефильтрованного диакритически чувствительного поиска необходимо включить fast diacritic sensitive searches
индекс. Разрешить переиндексацию и отслеживать состояние базы данных до ее завершения.
Документы имеют больше возможностей для текстовой индексации и нефильтрованного поиска.