元素值查询与元素范围查询的性能

时间:2016-05-17 13:44:49

标签: xquery marklogic marklogic-8

我为数据库中的元素配置了元素范围索引。我正在尝试对该元素运行搜索查询。该元素包含字符串值,我需要搜索一个特定的字符串值(不是值的范围或日期)。虽然可以使用元素值和元素范围查询,并且索引已经存在,但这两个查询是否会以相同的方式执行?或者元素范围在这种情况下表现更好?

2 个答案:

答案 0 :(得分:5)

范围查询会更快。

元素值查询使用通用索引,内存中未满,

范围查询使用范围索引和内存索引。

随着数据的增长,范围查询会更快。如果你在该元素中有很多独特的术语,它也会更快。

答案 1 :(得分:3)

范围查询还回答了与值查询不同的问题。

值查询查询匹配的单词序列,而不是匹配字符串。默认情况下,它们也被阻止,因此cts:element-value-query(xs:QName(“x”),“be fine”)将匹配<x>Is finer</x>。除非您执行精确的未受干扰的非wildcarded值查询,否则未经过滤的搜索将无法解决空格和标点符号差异。

范围查询(在字符串上)是特定排序规则下的匹配字符串。