Индекс BaseX или оптимизация запросов для частичного совпадения строк - PullRequest
0 голосов
/ 25 октября 2018

У меня сейчас проблема с тем, что мой запрос BaseX занимает намного больше времени, чем нужно для поиска в моем наборе данных.Проблема в том, что я ищу подстроку текстового поля фиксированной длины.Например, если я ищу точную строку, она возвращает в течение 6 мс, а поиск последних 8 символов строки из 15 символов занимает 5 секунд.Я попытался написать поиск 3 различными способами, и каждый раз, когда это занимает 5 секунд.Меня беспокоит то, что ему нужен индекс для последних символов, и он позволяет только индексировать полную строку.В любом случае, вот пример информации:

xml: <xmlfile><sometag>FIXED39LENGTH</sometag></xmlfile>

запрос: <result>{ for $c in db:open('Test') where $c/xmlfile/sometag[text() contains text ".{6,6}9LENGTH" using wildcards] return <result sometag="{$c/xmlfile/sometag}"/> }</result>

Что касается «полнотекстового» индекса, то это будет простоуказано как "sometag".

...