使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。

社区日报 第1383期 (2022-04-26)

社区日报God_lockin 发表了文章 • 0 个评论 • 1185 次浏览 • 2022-04-26 09:00 • 来自相关话题


1. 把Kafka和ES连在一起,我来我也行(需要梯子)
https://mukherjee-soumya.mediu ... d966b

2. 我们把ES升到7了,简直鹅妹子嘤(需要梯子)
https://medium.com/tokopedia-e ... 9f50d

3. 阿里云的logstash是怎么把关系型数据库同步进ES的(需要梯子)
https://alibaba-cloud.medium.c ... 55b78

编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

如何利用es的现有功能,实现文档关键词抽取能力?

Elasticsearchlaoyang360 回复了问题 • 2 人关注 • 1 个回复 • 1665 次浏览 • 2022-05-06 06:45 • 来自相关话题

社区日报 第1382期 (2022-04-25)

社区日报yuebancanghai 发表了文章 • 0 个评论 • 1078 次浏览 • 2022-04-25 09:03 • 来自相关话题


1. Elasticsearch 分布式存储架构与索引原理分析
   https://www.cnblogs.com/sgh1023/p/15691061.html

2. Elasticsearch 架构分析
   https://zhuanlan.zhihu.com/p/334348919

3. Elasticsearch 架构总览 (需要梯子)
   http://solutionhacker.com/elas ... view/

编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

社区日报 第1381期 (2022-04-24)

社区日报cyberdak 发表了文章 • 0 个评论 • 1009 次浏览 • 2022-04-24 17:04 • 来自相关话题

1. Elasticsearch 自动补全以及案例
https://blog.csdn.net/imjcoder ... 16978
2. ElasticSearch的评分机制详解
https://blog.csdn.net/qq_29860 ... 74595
 
3. Elasticsearch 去重cardinality算法之优化内存开销以及HLL算法
https://blog.csdn.net/wuzhiwei ... 76156

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

社区日报 第1381期 (2021-04-23)

社区日报taoxiyang 发表了文章 • 0 个评论 • 1046 次浏览 • 2022-04-23 10:06 • 来自相关话题

1. Elasticsearch 脚本安全使用指南
   https://dbaplus.cn/news-73-4429-1.html

2. 使用Elasticsearch提高wordpress的搜索性能
   https://kinsta.com/blog/wordpress-search/

3. 14款最好的Elasticsearch GUI客户端
   https://www.slant.co/topics/11 ... ients

编辑:陶希阳
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

社区日报 第1380期 (2021-04-22)

社区日报laoyang360 发表了文章 • 0 个评论 • 1635 次浏览 • 2022-04-23 05:21 • 来自相关话题


1、新的Elasticsearch java客户端详解(梯子)
https://docs.google.com/presen ... _2262

2、使用 Elasticsearch 进行跨区域灾难恢复(梯子)
https://thehackernews.com/2022 ... .html

3、Sonic:一个快速、轻量级和无模式的搜索后端
https://github.com/valeriansaliou/sonic
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

ES data节点index time时间很长,重启后恢复正常,什么原因呀

ElasticsearchJimmyGao 回复了问题 • 2 人关注 • 1 个回复 • 1486 次浏览 • 2022-04-27 16:31 • 来自相关话题

在 Kibana 里统一访问来自不同集群的索引

资料分享medcl 发表了文章 • 0 个评论 • 3844 次浏览 • 2022-04-21 15:29 • 来自相关话题

在 Kibana 里统一访问来自不同集群的索引


现在有这么一个需求,客户根据需要将数据按照业务维度划分,将索引分别存放在了不同的三个集群,
将一个大集群拆分成多个小集群有很多好处,比如降低了耦合,带来了集群可用性和稳定性方面的好处,也避免了单个业务的热点访问造成其他业务的影响,
尽管拆分集群是很常见的玩法,但是管理起来不是那么方便了,尤其是在查询的时候,可能要分别访问三套集群各自的 API,甚至要切换三套不同的 Kibana 来访问集群的数据,
那么有没有办法将他们无缝的联合在一起呢?


极限网关!


答案自然是有的,通过将 Kibana 访问 Elasticsearch 的地址切换为极限网关的地址,我们可以将请求按照索引来进行智能的路由,
也就是当访问不同的业务索引时会智能的路由到不同的集群,如下图:


WechatIMG27.png




上图,我们分别有 3 个不同的索引:

  • apm-*
  • erp-*
  • mall-*

    分别对应不同的三套 Elasticsearch 集群:
  • ES1-APM
  • ES2-ERP
  • ES3-MALL

    接下来我们来看如何在极限网关里面进行相应的配置来满足这个业务需求。

    配置集群信息


    首先配置 3 个集群的连接信息。
    ```
    elasticsearch:

    • name: es1-apm
      enabled: true
      endpoints:
    • name: es2-erp
      enabled: true
      endpoints:
    • name: es3-mall
      enabled: true
      endpoints:
      • http://192.168.3.188:9208
        ```

        配置服务 Flow

        然后,我们定义 3 个 Flow,分别对应用来访问 3 个不同的 Elasticsearch 集群,如下:
        ```
        flow:

    • name: es1-flow
      filter:
      • elasticsearch:
        elasticsearch: es1-apm
    • name: es2-flow
      filter:
      • elasticsearch:
        elasticsearch: es2-erp
    • name: es3-flow
      filter:
      • elasticsearch:
        elasticsearch: es3-mall
        <br /> <br /> 然后再定义一个 flow 用来进行路径的判断和转发,如下:<br />
    • name: default-flow
      filter:
      • switch:
        remove_prefix: false
        path_rules:
        • prefix: apm-
          flow: es1-flow
        • prefix: erp-
          flow: es2-flow
        • prefix: mall-
          flow: es3-flow
      • flow: #default flow
        flows:
        • es1-flow
          ```

          根据请求路径里面的索引前缀来匹配不同的索引,并转发到不同的 Flow。

          配置路由信息


          接下来,我们定义路由信息,具体配置如下:

          ```
          router:

    • name: my_router
      default_flow: default-flow
      ```

      指向上面定义的默认 flow 来统一请求的处理。

      定义服务及关联路由


      最后,我们定义一个监听为 8000 端口的服务,用来提供给 Kibana 来进行统一的入口访问,如下:
      ```
      entry:

    • name: es_entry
      enabled: true
      router: my_router
      max_concurrency: 10000
      network:
      binding: 0.0.0.0:8000
      ```

      完整配置


      最后的完整配置如下:

      ```
      path.data: data
      path.logs: log

      entry:

    • name: es_entry
      enabled: true
      router: my_router
      max_concurrency: 10000
      network:
      binding: 0.0.0.0:8000

      flow:
    • name: default-flow
      filter:
      • switch:
        remove_prefix: false
        path_rules:
        • prefix: apm-
          flow: es1-flow
        • prefix: erp-
          flow: es2-flow
        • prefix: mall-
          flow: es3-flow
      • flow: #default flow
        flows:
        • es1-flow
    • name: es1-flow
      filter:
      • elasticsearch:
        elasticsearch: es1-apm
    • name: es2-flow
      filter:
      • elasticsearch:
        elasticsearch: es2-erp
    • name: es3-flow
      filter:
      • elasticsearch:
        elasticsearch: es3-mall

        router:
    • name: my_router
      default_flow: default-flow

      elasticsearch:
    • name: es1-apm
      enabled: true
      endpoints:
    • name: es2-erp
      enabled: true
      endpoints:
    • name: es3-mall
      enabled: true
      endpoints:
      • http://192.168.3.188:9208
        ```

        启动网关


        直接启动网关,如下:

        <br /> ➜ gateway git:(master) ✗ ./bin/gateway -config sample-configs/elasticsearch-route-by-index.yml <br /> <br /> ___ _ _____ __ __ __ _ <br /> / _ \ /_\ /__ \/__\/ / /\ \ \/_\ /\_/\<br /> / /_\///_\\ / /\/_\ \ \/ \/ //_\\\_ _/<br /> / /_\\/ _ \/ / //__ \ /\ / _ \/ \ <br /> \____/\_/ \_/\/ \__/ \/ \/\_/ \_/\_/ <br /> <br /> [GATEWAY] A light-weight, powerful and high-performance elasticsearch gateway.<br /> [GATEWAY] 1.0.0_SNAPSHOT, 2022-04-20 08:23:56, 2023-12-31 10:10:10, 51650a5c3d6aaa436f3c8a8828ea74894c3524b9<br /> [04-21 13:41:21] [INF] [app.go:174] initializing gateway.<br /> [04-21 13:41:21] [INF] [app.go:175] using config: /Users/medcl/go/src/infini.sh/gateway/sample-configs/elasticsearch-route-by-index.yml.<br /> [04-21 13:41:21] [INF] [instance.go:72] workspace: /Users/medcl/go/src/infini.sh/gateway/data/gateway/nodes/c9bpg0ai4h931o4ngs3g<br /> [04-21 13:41:21] [INF] [app.go:283] gateway is up and running now.<br /> [04-21 13:41:21] [INF] [api.go:262] api listen at: <a href="http://0.0.0.0:2900" rel="nofollow" target="_blank">http://0.0.0.0:2900</a><br /> [04-21 13:41:21] [INF] [reverseproxy.go:255] elasticsearch [es1-apm] hosts: [] => [192.168.3.188:9206]<br /> [04-21 13:41:21] [INF] [reverseproxy.go:255] elasticsearch [es2-erp] hosts: [] => [192.168.3.188:9207]<br /> [04-21 13:41:21] [INF] [reverseproxy.go:255] elasticsearch [es3-mall] hosts: [] => [192.168.3.188:9208]<br /> [04-21 13:41:21] [INF] [actions.go:349] elasticsearch [es2-erp] is available<br /> [04-21 13:41:21] [INF] [actions.go:349] elasticsearch [es1-apm] is available<br /> [04-21 13:41:21] [INF] [entry.go:312] entry [es_entry] listen at: <a href="http://0.0.0.0:8000" rel="nofollow" target="_blank">http://0.0.0.0:8000</a><br /> [04-21 13:41:21] [INF] [module.go:116] all modules are started<br /> [04-21 13:41:21] [INF] [actions.go:349] elasticsearch [es3-mall] is available<br /> [04-21 13:41:55] [INF] [reverseproxy.go:255] elasticsearch [es1-apm] hosts: [] => [192.168.3.188:9206]<br />

        网关启动成功之后,就可以通过网关的 IP+8000 端口来访问目标 Elasticsearch 集群了。

        测试访问


        首先通过 API 来访问测试一下,如下:

        ```
        ➜ ~ curl http://localhost:8000/apm-2022/_search -v

  • Trying 127.0.0.1...
  • TCP_NODELAY set
  • Connected to localhost (127.0.0.1) port 8000 (#0)

    GET /apm-2022/_search HTTP/1.1
    Host: localhost:8000
    User-Agent: curl/7.54.0
    Accept: /

    < HTTP/1.1 200 OK
    < Date: Thu, 21 Apr 2022 05:45:44 GMT
    < content-type: application/json; charset=UTF-8
    < Content-Length: 162
    < X-elastic-product: Elasticsearch
    < X-Backend-Cluster: es1-apm
    < X-Backend-Server: 192.168.3.188:9206

    < X-Filters: filters->elasticsearch
    <
  • Connection #0 to host localhost left intact
    {"took":142,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":0,"relation":"eq"},"max_score":null,"hits":[]}}%
    <br /> <br /> 可以看到 apm-2022 指向了后端的 `es1-apm` 集群。<br /> <br /> 继续测试,erp 索引的访问,如下:<br />
    ➜ ~ curl http://localhost:8000/erp-2022/_search -v
  • Trying 127.0.0.1...
  • TCP_NODELAY set
  • Connected to localhost (127.0.0.1) port 8000 (#0)

    GET /erp-2022/_search HTTP/1.1
    Host: localhost:8000
    User-Agent: curl/7.54.0
    Accept: /

    < HTTP/1.1 200 OK
    < Date: Thu, 21 Apr 2022 06:24:46 GMT
    < content-type: application/json; charset=UTF-8
    < Content-Length: 161
    < X-Backend-Cluster: es2-erp
    < X-Backend-Server: 192.168.3.188:9207

    < X-Filters: filters->switch->filters->elasticsearch->skipped
    <
  • Connection #0 to host localhost left intact
    {"took":12,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":0,"relation":"eq"},"max_score":null,"hits":[]}}%
    <br /> 继续测试,mall 索引的访问,如下:<br /> <br />
    ➜ ~ curl http://localhost:8000/mall-2022/_search -v
  • Trying 127.0.0.1...
  • TCP_NODELAY set
  • Connected to localhost (127.0.0.1) port 8000 (#0)

    GET /mall-2022/_search HTTP/1.1
    Host: localhost:8000
    User-Agent: curl/7.54.0
    Accept: /

    < HTTP/1.1 200 OK
    < Date: Thu, 21 Apr 2022 06:25:08 GMT
    < content-type: application/json; charset=UTF-8
    < Content-Length: 134
    < X-Backend-Cluster: es3-mall
    < X-Backend-Server: 192.168.3.188:9208

    < X-Filters: filters->switch->filters->elasticsearch->skipped
    <
  • Connection #0 to host localhost left intact
    {"took":8,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}%
    ```

    完美转发。

    修改 Kibana 配置


    修改 Kibana 的配置文件: kibana.yml,替换 Elasticsearch 的地址为网关地址(<a href="http://192.168.3.200:8000" rel="nofollow" target="_blank">http://192.168.3.200:8000</a>),如下:
    <br /> elasticsearch.hosts: ["<a href="http://192.168.3.200:8000"" rel="nofollow" target="_blank">http://192.168.3.200:8000"</a>]<br />

    重启 Kibana 让配置生效。

    效果如下



    kibana-clusers-op.jpg




    可以看到,在一个 Kibana 的开发者工具里面,我们已经可以像操作一个集群一样来同时读写实际上来自三个不同集群的索引数据了。

    展望


    通过极限网关,我们还可以非常灵活的进行在线请求的流量编辑,动态组合不同集群的操作。

社区日报 第1379期 (2021-04-21)

社区日报Se7en 发表了文章 • 0 个评论 • 1041 次浏览 • 2022-04-21 09:19 • 来自相关话题

1.洞察 GitHub 开源项目的开发效能
https://elastic.martinliu.cn/chapter1/2/
2.Elastic Stack最佳实践系列:Beats->ES,一个更轻型的架构选择
https://cloud.tencent.com/deve ... 57643
3.干货 | Elasticsearch 检索类型选型指南
https://mp.weixin.qq.com/s/KeDaA_1CS95FR40ICQYcbg

编辑:Se7en  
归档:https://ela.st/cn-daily-all 
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

high-level-rest-client如何设置长连接中断规则

回复

Elasticsearchzmc 发起了问题 • 1 人关注 • 0 个回复 • 2090 次浏览 • 2022-04-20 20:24 • 来自相关话题

社区日报 第1379期 (2021-04-20)

社区日报kin122 发表了文章 • 0 个评论 • 1525 次浏览 • 2022-04-20 20:00 • 来自相关话题

1. Elasticsearch分词:自定义分词器
https://cloud.tencent.com/deve ... 50068
2. Elasticsearch分页技术怎么选(需要梯子)
https://opster.com/guides/elas ... ques/
3. Elasticsearch:处理 Elasticsearch 中数据更新的并发
https://elasticstack.blog.csdn ... 30757

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

主分片丢失这种情况怎么办

ElasticsearchCobraDan 回复了问题 • 3 人关注 • 2 个回复 • 1824 次浏览 • 2022-04-21 11:47 • 来自相关话题

社区日报 第1377期 (2022-04-19)

社区日报God_lockin 发表了文章 • 0 个评论 • 1133 次浏览 • 2022-04-19 13:44 • 来自相关话题

1. 我能拿ES做数据分析和机器学习吗(需要梯子)
https://medium.com/analytics-v ... 5c250

2. 相爱相杀的云厂商和开源技术公司们(需要梯子)
https://horovits.medium.com/is ... de1c6

3. ES 的聚合详解(需要梯子)
https://medium.com/betacom/ela ... 33302

编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

在极限网关里面使用 JavaScript 脚本来进行复杂的查询改写

资料分享medcl 发表了文章 • 1 个评论 • 2652 次浏览 • 2022-04-19 11:55 • 来自相关话题

使用 JavaScript 脚本来进行复杂的查询改写


有这么一个需求:

网关里怎样对跨集群搜索进行支持的呢?我想实现: 输入的搜索请求是 lp:9200/index1/_search
这个索引在3个集群上,需要跨集群检索,也就是网关能否改成 lp:9200/cluster01:index1,cluster02,index1,cluster03:index1/_search 呢?
索引有一百多个,名称不一定是 app, 还可能多个索引一起的。

极限网关自带的过滤器 content_regex_replace 虽然可以实现字符正则替换,但是这个需求是带参数的变量替换,稍微复杂一点,没有办法直接用这个正则替换实现,有什么其他办法实现么?

使用脚本过滤器


当然有的,上面的这个需求,理论上我们只需要将其中的索引 index1 匹配之后,替换为 cluster01:index1,cluster02,index1,cluster03:index1 就行了。

答案就是使用自定义脚本来做,再复杂的业务逻辑都不是问题,都能通过自定义脚本来实现,一行脚本不行,那就两行。

使用极限网关提供的 [JavaScript](https://gateway.infinilabs.com ... cript/) 过滤器可以很灵活的实现这个功能,具体继续看。

定义过滤器


首先创建一个脚本文件,放在网关数据目录的 scripts 子目录下面,如下:

<br /> ➜ gateway ✗ tree data <br /> data<br /> └── gateway<br /> └── nodes<br /> └── c9bpg0ai4h931o4ngs3g<br /> ├── kvdb<br /> ├── queue<br /> ├── scripts<br /> │ └── index_path_rewrite.js<br /> └── stats<br />

这个脚本的内容如下:

<br /> function process(context) {<br /> var originalPath = context.Get("_ctx.request.path");<br /> var matches = originalPath.match(/\/?(.*?)\/_search/)<br /> var indexNames = [];<br /> if(matches && matches.length > 1) {<br /> indexNames = matches[1].split(",")<br /> }<br /> var resultNames = []<br /> var clusterNames = ["cluster01", "cluster02"]<br /> if(indexNames.length > 0) {<br /> for(var i=0; i<indexNames.length; i++){<br /> if(indexNames[i].length > 0) {<br /> for(var j=0; j<clusterNames.length; j++){<br /> resultNames.push(clusterNames[j]+":"+indexNames[i])<br /> }<br /> }<br /> }<br /> }<br /> <br /> if (resultNames.length>0){<br /> var newPath="/"+resultNames.join(",")+"/_search";<br /> context.Put("_ctx.request.path",newPath);<br /> }<br /> }<br />

和普通的 JavaScript 一样,定义一个特定的函数 process 来处理请求里面的上下文信息,_ctx.request.path 是网关内置上下文的一个变量,用来获取请求的路径,通过 context.Get("_ctx.request.path") 在脚本里面进行访问。

中间我们使用了 JavaScript 的正则匹配和字符处理,做了一些字符拼接,得到新的路径 newPath 变量,最后使用 context.Put("_ctx.request.path",newPath) 更新网关请求的路径信息,从而实现查询条件里面的参数替换。

有关网关内置上下文的变量列表,请访问 [Request Context](https://gateway.infinilabs.com ... ntext/)

接下来,创建一个网关配置,并使用 javascript 过滤器调用该脚本,如下:

```
entry:

  • name: my_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
    binding: 0.0.0.0:8000

    flow:
  • name: default_flow
    filter:
  • dump:
    context:
  • _ctx.request.path
  • javascript:
    file: index_path_rewrite.js
  • dump:
    context:
  • _ctx.request.path
  • elasticsearch:
    elasticsearch: dev
    router:
  • name: my_router
    default_flow: default_flow

    elasticsearch:
  • name: dev
    enabled: true
    schema: http
    hosts:
  • 192.168.3.188:9206
    <br /> <br /> 上面的例子中,使用了一个 `javascript` 过滤器,并且指定了加载的脚本文件为 `index_path_rewrite.js`,并使用了两个 `dump` 过滤器来输出脚本运行前后的路径信息,最后再使用一个 `elasticsearch` 过滤器来转发请求给 Elasticsearch 进行查询。<br /> <br /> 我们启动网关测试一下,如下:<br /> <br />
    ➜ gateway ✗ ./bin/gateway
    ___
    /
    \ /_\ /
    \/\/ / /\ \ \/\ /_/\
    / /
    \///\ / /\/\ \ \/ \/ //\_ /
    / /\/ \/ / //_ \ /\ / \/ \
    ___/_/ \/\/ \
    / \/ \/_/ _/_/

    [GATEWAY] A light-weight, powerful and high-performance elasticsearch gateway.
    [GATEWAY] 1.0.0_SNAPSHOT, 2022-04-18 07:11:09, 2023-12-31 10:10:10, 8062c4bc6e57a3fefcce71c0628d2d4141e46953
    [04-19 11:41:29] [INF] [app.go:174] initializing gateway.
    [04-19 11:41:29] [INF] [app.go:175] using config: /Users/medcl/go/src/infini.sh/gateway/gateway.yml.
    [04-19 11:41:29] [INF] [instance.go:72] workspace: /Users/medcl/go/src/infini.sh/gateway/data/gateway/nodes/c9bpg0ai4h931o4ngs3g
    [04-19 11:41:29] [INF] [app.go:283] gateway is up and running now.
    [04-19 11:41:30] [INF] [api.go:262] api listen at: http://0.0.0.0:2900
    [04-19 11:41:30] [INF] [entry.go:312] entry [my_es_entry] listen at: http://0.0.0.0:8000
    [04-19 11:41:30] [INF] [module.go:116] all modules are started
    [04-19 11:41:30] [INF] [actions.go:349] elasticsearch [dev] is available
    <br /> <br /> 运行下面的查询来验证查询结果,如下:<br /> <br />
    curl localhost:8000/abc,efg/_search
    <br /> <br /> 可以看到网关通过 `dump` 过滤器输出的调试信息:<br /> <br />
    ---- DUMPING CONTEXT ----
    _ctx.request.path : /abc,efg/_search
    ---- DUMPING CONTEXT ----
    _ctx.request.path : /cluster01:abc,cluster02:abc,cluster01:efg,cluster02:efg/_search
    ```

    查询条件按照我们的需求进行了改写,Nice!

    重写 DSL 查询语句


    好吧,我们刚刚只是修改了查询的索引而已,那么查询请求的 DSL 呢?行不行?

    那自然是可以的嘛,瞧下面的例子:

    <br /> function process(context) {<br /> var originalDSL = context.Get("_ctx.request.body");<br /> if (originalDSL.length >0){<br /> var jsonObj=JSON.parse(originalDSL);<br /> jsonObj.size=123;<br /> jsonObj.aggs= {<br /> "test1": {<br /> "terms": {<br /> "field": "abc",<br /> "size": 10<br /> }<br /> }<br /> }<br /> context.Put("_ctx.request.body",JSON.stringify(jsonObj));<br /> }<br /> }<br />

    先是获取查询请求,然后转换成 JSON 对象,之后任意修改查询对象就行了,保存回去,搞掂。

    测试一下:
    <br /> curl -XPOST localhost:8000/abc,efg/_search -d'{"query":{}}'<br />
    输出:
    <br /> ---- DUMPING CONTEXT ---- <br /> _ctx.request.path : /abc,efg/_search<br /> _ctx.request.body : {"query":{}}<br /> [04-19 18:14:24] [INF] [reverseproxy.go:255] elasticsearch [dev] hosts: [] => [192.168.3.188:9206]<br /> ---- DUMPING CONTEXT ---- <br /> _ctx.request.path : /abc,efg/_search<br /> _ctx.request.body : {"query":{},"size":123,"aggs":{"test1":{"terms":{"field":"abc","size":10}}}}<br />

    是不是感觉解锁了新的世界?

    结论


    通过使用 Javascript 脚本过滤器,我们可以非常灵活的进行复杂逻辑的操作来满足我们的业务需求。

ES里面warmer的作用

回复

ElasticsearchCharele 发起了问题 • 1 人关注 • 0 个回复 • 1789 次浏览 • 2022-04-18 15:24 • 来自相关话题