atomic

介绍

  • 功能:单表查询模式

  • 场景:KV表、KKV表、倒排表的一度查询

语法

search{
        table clause
    &keys clause | indexsearch clause
    [&alias clause]
    [&distinct clause]
    [&fields clause]
    [&filter clause]
    [&localcount clause]
    [&orderby clause]
    [&range clause]
    [&sorter clause]
}
  • 必选子句

    • table:table=table_name

    • keys 和 indexsearch

      • 在同一个 atomic 中有且仅有其中一个

      • keys

        • 指定pkey:keys=pkey;pkey;...

        • 指定pkey+skey:keys=pkey1:skey1|skey2|skey3;pkey2:skey1|skey2|skey3...

        • 相同pkey必须写在同一个pkey子句下,分开写会导致后面的pkey覆盖之前的pkey。

    • alias

    • distinct

    • fields

    • filter

    • localcount

    • orderby

    • range

    • sorter

  • 出于系统保护,默认添加range=0:10,即返回结果集中的前10个结果。

    • 此优化对join的right_search无效,详见join

示例

// 查询ig_ref_userbkt表中pkey=10的数据
search{table=ig_ref_userbkt&keys=10}

// 查询ig_ref_userbkt表中pkey=2且skey=1的数据,并把userid字段重命名为newid
search{table=ig_ref_userbkt&keys=2:1&alias=userid:newid}

// 查询ig_ref_userbkt表中pkey为1;2;3;4中userid;bktid;price;discount字段的数据,且过滤条件为 price*discount>10
search{table=ig_ref_userbkt&keys=2;5&fields=userid;bktid;price&filter=price*discount>10}

// 查询ig_ref_userbkt表中pkey为1;2;3;4,并以userid的正序排序,userid相同的再以bktid逆序进行排序,并且只显示第2个数据开始的2个数据
search{table=ig_ref_userbkt&keys=1;2;3;4&orderby=+userid;-bktid&range=1:2}

// 查询ig_ref_userbkt表中pkey为1;2;3;4,并且每个pkey最多保留2个结果
search{table=ig_ref_userbkt&keys=1;2;3;4&localcount=2}

// 查询ig_ref_userbkt表中pkey为1;2;3;4,使用distinct限定返回结果中userid的同值个数
search{table=ig_ref_userbkt&keys=1;2;3;4&fields=userid;bktid&distinct=userid}