You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cts.jsonPropertyRangeQuery与cts.jsonPropertyValueQuery性能对比及选型建议

性能对比与查询类型推荐

一、cts.jsonPropertyRangeQuery 与 cts.jsonPropertyValueQuery 的性能表现

  • cts.jsonPropertyValueQuery

    • 针对精确值匹配设计,依赖属性的倒排索引。在10亿级数据规模下,只要目标属性的倒排索引已创建,查询能直接通过索引映射定位匹配文档,速度极快。
    • 但如果用它实现范围判断(如>、<、区间匹配),会触发全索引扫描,性能大幅下降,完全不适用于大规模数据集。
  • cts.jsonPropertyRangeQuery

    • 专为范围条件查询优化,依赖范围索引。范围索引会对属性值做结构化排序存储,查询时可通过二分查找快速锁定符合条件的区间,避免全量扫描。
    • 10亿级数据下,只要范围索引配置正确(匹配数据类型、合理设置分片),范围查询性能能保持稳定,远优于用valueQuery实现范围逻辑。
    • 若用它做精确匹配,性能略逊于valueQuery——因为范围索引的结构复杂度更高,精确匹配的路径不如倒排索引直接。

二、10亿级频繁查询的选型建议

  1. 精确值匹配场景

    • 优先选择cts.jsonPropertyValueQuery,确保目标属性的倒排索引已启用。例如查询status属性等于"active"的文档,该场景下valueQuery性能最优。
  2. 范围匹配场景

    • 必须使用cts.jsonPropertyRangeQuery,同时为目标属性创建对应数据类型的范围索引(如整数、日期、字符串范围索引)。例如查询createTime在2023-2024年之间、score大于80的文档,范围查询能高效处理这类条件。
  3. 混合条件场景

    • 若查询同时包含精确匹配和范围条件,用cts.andQuery组合两个查询,让各自利用对应索引优势。例如:
      cts.andQuery([
        cts.jsonPropertyValueQuery("category", "tech"),
        cts.jsonPropertyRangeQuery("viewCount", ">", 10000)
      ])
      
      这种组合会分别走倒排索引和范围索引,保证查询性能。

内容的提问来源于stack exchange,提问作者marklogic_coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:54:14