Марклогический поиск без сбоев не работает должным образом - PullRequest
0 голосов
/ 23 мая 2018

Я использую ML 8.

'нефильтрованные' cts: поиск не работает должным образом для диакритических слов с опцией 'stemmed'

Найдите приведенный ниже пример.

Я вставил приведенный ниже XML в ML DB с помощью uri /a.xml

case 1:

<root>
<a>FSM İlmî Araştırmalar İnsan ve Toplum Bilimleri Dergisi</a>
</root>

и запрос, который я использую

cts:search(/*,cts:element-word-query(xs:QName("a"), "FSM İlmî Araştırmalar İnsan ve Toplum Bilimleri Dergisi",("case-insensitive","stemmed")),'unfiltered')

Приведенный выше запрос приводит к пустому результату , и если я выбираю unstemmed, то он работает нормально.

В то время как в некоторых других случаях он отлично работает с stemmed вариант.например

case 2:

<root>
<c>Życie Literackie</c>
</root> 

тот же запрос с опцией stemmed, работающей нормально в этом случае.

Итак, мой вопроспочему опция stemmed не работает должным образом в первом случае и почему она работает нормально во втором случае.

также, какова роль stemmed в диакритическом поиске?

case 3: Я вставил обычную строку, как показано ниже, с помощью uri /d.xml

<root>
<c>Zycie Literackie</c>
</root>

и работает запрос-

cts:search(/*,cts:element-word-query(xs:QName("c"), "Zycie Literackie",("case-insensitive","stemmed")),'unfiltered')

, но он возвращает как диакритическую, так и нормальную строку.результат выглядит следующим образом:

 <root>
<c>Życie Literackie</c>
</root> 
<root>
<c>Zycie Literackie</c>
</root> 

Он должен возвращать только обычную строку Zycie Literackie.

Аналогично вставляется файл XML, как показано ниже

case 4:

<root>
<data>Türkiye Araştırmaları Literatür Dergisi</data>
</root>

и запрос -

cts:search(
doc(),
cts:element-word-query(
    xs:QName('data'),
    "Turkiye Araştırmaları Literatür Dergisi",
    ('case-insensitive','wildcarded','diacritic-sensitive','unstemmed')
),
"unfiltered"
) 

Затем он приводит к пустому результату.При поиске по таким словам, как Turkiye, Araştırmaları или Literatür, возвращается правильный результат.

Почему требуемый результат поиска не найден с заданной строкой в ​​запросе, хотя он отлично работает с одиночнымслова?

.

1 Ответ

0 голосов
/ 29 мая 2018

Пояснение для случая 3: если вы явно не укажете «чувствительный к диакритике» в параметрах, содержимое текстового узла определяет, будет ли он выполнять поиск «чувствительный к диакритике» или «нечувствительный к диакритике» поиск.Если слово (а) в текстовом узле содержит диакритические знаки, тогда «чувствительный к диакритике» поиск выполняется иначе.То же относится и к чувствительности к регистру.

...