У меня возникли некоторые XML-документы, которые имеют структуру, как это:Игнорировать элементы в КТС: поиск
<root>
<intro>...</intro>
...
<body>
<p>..................
some text CO<sub>2</sub>
.................. </p>
</body>
</root>
Теперь я хочу, чтобы найти все результаты с фразой CO2, а также хотят получить результаты указанного выше типа в результаты поиска. Для этой цели я использую этот запрос -
cts:search
(fn:collection ("urn:iddn:collections:searchable"),
cts:element-query
(
fn:QName("http://iddn.icis.com/ns/fields","body"),
cts:word-query
(
"CO2",
("case-insensitive","diacritic-sensitive","punctuation-insensitive",
"whitespace-sensitive","unstemmed","unwildcarded","lang=en"),
1
)
)
,
("unfiltered", "score-logtfidf"),
0.0)
Но с помощью этого я не в состоянии получить документ с CO<sub>2</sub>
. Я получаю данные только с простой фразой CO2
.
Если я заменить поисковую фразу CO 2
, то я могу получить документы только с CO<sub>2</sub>
и не с CO2
Я хочу, чтобы в сочетании данные для обоих CO<sub>2</sub>
и CO2
в результатах поиска.
Могу ли я игнорировать <sub>
любым способом, или есть ли другой способ решить эту проблему?
Мне показалось интересным, что ML токенизирует на , когда фраза (для меня) предполагает просто игнорировать разметку. –
Индексирование работает на древовидной модели, а не на символьном представлении разметки. Таким образом, существует внутренний разрыв, потому что существует целый текстовый узел. Я думаю, что есть случаи (например, это), где вы хотите, чтобы «word-through» объединил токены вместе, но это не всегда правильно. – mholstege
HI Mary - Perfect - поэтому элементы во фразовом элементе по-прежнему являются отдельным узлом. Имеет смысл. Благодаря! –