Optimization 用于部分字符串匹配的BaseX索引或查询优化

Optimization 用于部分字符串匹配的BaseX索引或查询优化,optimization,indexing,xquery,basex,Optimization,Indexing,Xquery,Basex,我目前遇到一个问题,即我的BaseX查询在我的数据集中搜索所花费的时间比它应该花费的时间要长得多。问题是我正在搜索固定长度文本字段的子字符串。例如,如果我搜索精确的字符串,它将在6毫秒内返回,而搜索15个字符字符串中的最后8个字符需要5秒。我试着用3种不同的方式编写搜索,每次都需要5秒钟。我担心的是,它需要为最后的字符建立索引,而且它似乎只允许为整个字符串建立索引。无论如何,以下是一些示例信息: xml: FIXED39LENGTH 查询: { 对于$c(以db为单位):打开('测试') 其中$

我目前遇到一个问题,即我的BaseX查询在我的数据集中搜索所花费的时间比它应该花费的时间要长得多。问题是我正在搜索固定长度文本字段的子字符串。例如,如果我搜索精确的字符串,它将在6毫秒内返回,而搜索15个字符字符串中的最后8个字符需要5秒。我试着用3种不同的方式编写搜索,每次都需要5秒钟。我担心的是,它需要为最后的字符建立索引,而且它似乎只允许为整个字符串建立索引。无论如何,以下是一些示例信息:

xml:
FIXED39LENGTH

查询:
{
对于$c(以db为单位):打开('测试')
其中$c/xmlfile/sometag[text()包含使用通配符的文本“{6,6}9LENGTH”]
返回
}


至于“全文”索引,它将被指定为“sometag”。

我认为没有任何选项可以按元素内容的一部分进行索引。您的选项可能是,要么更新文档,仅使用正在搜索的字符串部分创建属性,要么创建索引数据库。有一个在中创建索引数据库的示例。我开始研究这种方法,因为无法更新源xml文件。当我能够确定这是否会提高性能时,我将向您报告。basex是否支持使用ends with?“ends with”与子字符串和其他尝试同时返回。我尝试了@chrisis建议,但它将其降至10毫秒以下,这是可以接受的。谢谢