2014-11-14 1 views
2

Если я делаю диакритическую чувствительность cts:query для cts:search в нефильтрованном режиме, тогда я получаю правильный результат, но выполнение того же в режиме фильтрации дает мне неправильные результаты. Например:Marklogic Diacritic Чувствительный поиск не работает для нефильтрованных запросов

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-запрос выглядит следующим образом.

cts:element-query($element-to-query, 
     cts:word-query($search-text, 
     $search-options, 
     $weight) 

В вариантах я могу передать «диакритико-чувствительный» или нет.

+0

Можете ли вы предоставить небольшой образец xml? – grtjn

+0

Пожалуйста, исправьте также код примера, он недействителен. – grtjn

ответ

0

Для точного нефильтрованного поиска по диакритике необходимо включить индекс fast diacritic sensitive searches. Разрешить переиндексацию и контролировать состояние базы данных до ее завершения.

Документы имеют больше на text indexing options и unfiltered search.

Смежные вопросы