merge

介绍

  • 功能:封装多个并发查询并对结果集合进行合并的查询模式

  • 场景:查询多张表,把多张表查询出来的结果进行合并

  • 执行流程:首先各个sub search并行执行,然后merge从左往右顺序执行

merge1

语法

sub_search1 
  merge{
      [&distinct clause]
        [&orderby clause]
      [&range clause]
      [&sorter clause]
      [&tag clause]
  } 
sub_search2
  • sub_search1和sub_search2

    • 二者均可以是atomic、join、merge、and以及andnot中的任意一种类型

    • 二者返回的结果必须是同构的

    • distinct

    • orderby

    • range

    • sorter

    • tag

示例

// merge不同表里的数据
search{table=ig_ref_userfrd&keys=1&fields=userid}merge{}search{table=userinfo&keys=3&fields=userid}

// 指定orderby,对最终结果通过price降序排列
search{table=ig_ref_userbkt&keys=2:33}merge{}search{table=userinfo&keys=2:1}merge{orderby=-price}search{table=userinfo&keys=1}