日志检索场景ES->Doris迁移最佳实践:函数篇

函数列表

  1. 函数:term
  2. 函数功能说明:查询某个字段里含有某个关键词的文档
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "term": {
      "title":   "blog"
    }
  }
}
  1. Doris使用示例:
select * from httplogs where title = 'blog';

  1. 函数:terms
  2. 函数功能说明:查询某个字段里含有多个关键词的文档
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "terms": {
      "title":  [ "blog","page"]
    }
  }
}
  1. Doris使用示例:
select * from httplogs where title IN ('blog', 'page');

  1. 函数:match
  2. 函数功能说明:match首选对字段进行分词操作,然后再查询
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "match": {
      "title":  "blog page"   
    }
  }
}

说明:和term区别可以理解为term是精确查询,这边match模糊查询;match会对my ss分词为两个单词,然后term对认为这是一个单词
5. Doris使用示例:

 select * from httplogs where request MATCH 'blog page';

  1. 函数:should
  2. 函数功能说明:至少有一个查询条件匹配
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
"bool": {
"should": [
      { "term": { "title": "error" }},
      { "term": { "title": "exption" }} ]
  }
}
  1. Doris使用示例:
select * from httplogs where title = 'error' or  title = 'exption';

  1. 函数:must
  2. 函数功能说明:查询指定文档一定要被包含
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "title": "page"
        }},
        {
          "match": {
            "content": "beijing"
          }
        }
      ]
    }
  }
}
  1. Doris使用示例:
select * from httplogs where title MATCH 'title' and  content MATCH 'exption';

  1. 函数:must not
  2. 函数功能说明:
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "bool": {
      "must_not": [
        {"match": {
          "title": "page"
        }},
        {
          "match": {
            "content": "beijing"
          }
        }
      ]
    }
  }
}
  1. Doris使用示例:
select * from httplogs where 
!(title MATCH 'title') 
and  !(content MATCH 'exption');

  1. 函数:exists
  2. 函数功能说明:查找文档中是否包含指定字段或没有某个字段
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "query": {
    "exists": { 
      "field": "title"
    }
  }
}
  1. Doris使用示例:
select * from httplogs where title IS NOT NULL;

  1. 函数:sum
  2. 函数功能说明:
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
{
  "aggs": {
    "hat_prices": { "sum": { "field": "price" } }
  }
}
  1. Doris使用示例:
select sum(price) from example_table

  1. 函数:date_histogram
  2. 函数功能说明:按照日期时间聚合分析数据
  3. 参数说明:
  4. 返回值说明:
  5. ES使用示例:
    GET cars/index/_search
{
  "size":0,
  "aggs": {
    "sales": {
      "date_histogram": {//按照日期时间聚合分析数据
        "field": "event_time",//分组字段
        "interval": "1d",//安天分组
        "format": "yyyy-MM-dd",//日期格式
        "min_doc_count": 0// 没有数据的日志返回0
      }
    }
  }
}
  1. Doris使用示例:
select DAY_FLOOR(event_time) as day
 from car group by day;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于环境变量设置不正确引起的。在配置文件`/opt/software/apache-doris-0.15.0-incubating-src/env.sh`的第96行,使用了`/usr/lib/jvm/java-1.8.0/bin/javap`这个路径,但是该路径下没有`javap`这个文件或目录,导致出现了"No such file or directory"的错误信息。 要解决这个问题,你可以按照以下步骤进行操作: 1. 首先,确认你的机器上已经安装了Java 8版本。可以使用命令`java -version`来查看当前的Java版本。 2. 如果你的机器上没有安装Java 8,那么你需要先安装Java 8,并将其添加到环境变量中。你可以通过访问Java官方网站下载并安装Java 8。 3. 安装完Java 8后,你需要将Java 8的路径添加到环境变量中。可以通过编辑`/opt/software/apache-doris-0.15.0-incubating-src/env.sh`文件,在第96行的`/usr/lib/jvm/java-1.8.0/bin/javap`路径修改为Java 8的正确路径。 4. 保存文件并退出编辑器。 5. 然后,执行`source /opt/software/apache-doris-0.15.0-incubating-src/env.sh`命令,使环境变量生效。 6. 最后,再次运行你的程序,应该就不会再出现该错误了。 通过以上步骤,你应该能够解决`/opt/software/apache-doris-0.15.0-incubating-src/env.sh: line 96: /usr/lib/jvm/java-1.8.0/bin/javap: No such file or directory`的错误。如果仍然有问题,请检查Java 8的安装和环境变量配置是否正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [超强总结,用心分享丨大数据超神之路(七):Apache Doris](https://blog.csdn.net/Mrxuchen/article/details/126187392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值