es之pipeline用法

GET kibana_sample_data_ecommerce/_search
{
  "size": 1, 
  "aggs": {
    "count_of_day": {
      "terms": {
        "field":"day_of_week_i"
      },
      "aggs": {
        "avg_day_count": {
           "avg": {
              "field":"taxful_total_price"
            }
        }
      }
    },
    "min_miv_avg_count":{
      "min_bucket":{
        "buckets_path":"count_of_day>avg_day_count"
      }
    },
    "max_miv_avg_count":{
      "max_bucket":{
        "buckets_path":"count_of_day>avg_day_count"
      }
    }
    
  }
}
GET kibana_sample_data_ecommerce/_search
{
  "size": 0, 
  "aggs": {
    "count_of_day": {
      "histogram": {
        "field":"day_of_week_i",
        "interval":2
      },
      "aggs": {
        "avg_day_count": {
           "avg": {
              "field":"taxful_total_price"
            }
        },
        // parent
        "deirective_xxx":{
          // 递归求和
          "cumulative_sum":{
            "buckets_path":"avg_day_count"
          }
        }
      }
    },
    
    // sibling
    "min_miv_avg_count":{
      "min_bucket":{
        "buckets_path":"count_of_day>avg_day_count"
      }
    },
    "max_miv_avg_count":{
      "max_bucket":{
        "buckets_path":"count_of_day>avg_day_count"
      }
    }
    
  }
}
Elasticsearch是一个强大的全文搜索引擎,支持对文本进行高效搜索和分析。在处理多语言或需要复杂分析的场景中,可能会遇到需要使用多个分词器(tokenizer)的情况。Elasticsearch中的分词器负责将输入的文本分割成单词,这是索引和搜索的基础。 当您想同时使用多个分词器时,可以采取以下方法: 1. **复合分词器**(Composite Tokenizer):这是一个特殊的分词器,它会将其他分词器的结果连接在一起。您可以配置多个子分词器,并按照指定顺序应用它们,这样每个文档会被用不同的分词器分别处理,最后组合结果。 示例配置: ```json { "tokenizer": { "custom_tokenizer": { "type": "composite", "tokenizers": [ { "type": "standard" }, // 标准分词器 { "type": "ik_max_word" } // 中文分词器 ] } } } ``` 2. **动态分词**(Dynamic Tokenizer):如果不同字段需要不同的分词策略,可以在映射(mapping)中为每个字段指定单独的分词器。 ```json { "mappings": { "properties": { "english_text": { "tokenizer": "standard" }, "chinese_text": { "tokenizer": "ik_max_word" } } } } ``` 3. **管道操作**(Pipeline):虽然默认情况下一个文档只能有一个主分词器,但可以通过管道(pipeline)设置,将多个阶段串联起来执行,包括分词、过滤等操作。 示例配置: ```json { "analysis": { "pipelines": { "my_pipeline": { "description": "A pipeline to apply different tokenizers", "processors": [ {"tokenizer": "standard"}, {"tokenizer": "ik_max_word"} ] } } } } ``` 文档可以通过 `doc_values` 或者 `analyzer` 属性引用这个管道。 记住,同时使用多个分词器可能会增加解析和存储的成本,所以要确保选择的策略能够优化性能并满足实际需求。对于具体应用场景,可能还需要调整参数或优化配置。有任何疑问,你可以继续提问关于Elasticsearch的配置或者分词策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值