elasticsearch 常见操作

【ElasticSearch系列连载】5. ES入门基础与常见操作 阅读详情

在查询时指定分词器:

{

"match": {
                        "trunk_doc": {
                            "query": "辣手无情的获奖信息" ,

                            "analyzer": "ik_smart"
                        }
                    }

}

elasticsearch function_score的使用,参考ES自定义评分机制:function_score查询详解_斗者_2013的博客-优快云博客_es 自定义评分:

{
    "query": {
        "function_score": {
          "functions": [
            {
              "gauss": {
                "ipublish": {
                  "origin": 1661498609,
                  "offset":0,
                  "scale": 864000
                }
              }
            }
          ],
          "query": {
        "dis_max": {
            "queries": [
                {
                    "constant_score": {
                        "boost": 10000,
                        "filter": {
                          "bool":{
                            "should":[
                              {  "match_phrase": {
                                "title": "万东医疗"
                            }}
                              
                              ]
                          }
                          
                        }
                    }
                },
                 {
                    "constant_score": {
                        "boost": 1,
                        "filter": {
                          "bool":{
                            "should":[
                              {  "match": {
                                "title": "万东医疗"
                            }}
                              
                              ]
                          }
                          
                        }
                    }
                }
            ]
        }
    },
          "boost_mode": "sum"
        }
    }
}

忽略tf-idf得分:constant_score:

{
    "query": {
        "bool": {
            "should": [
                {
                    "constant_score": {
                        "boost": 10000,
                        "filter": {
                          "bool":{
                            "should":[
                              {  "match_phrase": {
                                "title": "万东医疗"
                            }}
                              
                              ]
                          }
                          
                        }
                    }
                },
                 {
                    "constant_score": {
                        "boost": 1,
                        "filter": {
                          "bool":{
                            "should":[
                              {  "match": {
                                "title": "万东医疗"
                            }}
                              
                              ]
                          }
                          
                        }
                    }
                }
            ]
        }
    }
}

索引副本拷贝:reindex

post http://IP:9200/_reindex
{
  "source": {
    "index": "original_index"
  },
  "dest": {
    "index": "new_index"
  }

}

索引别名切换:

POST http://IP:9200/_aliases
{
    "actions":[
        {
            "add":{
                "index":"new_index",
                "alias":"t_simple_dict"
            }
        },
            {
            "remove":{
                "index":"old_index",
                "alias":"t_simple_dict"
            }
        }
    ]
}

 索引更新时间区间设置:

PUT  http://IP:9200/index_name/settings

{

    "refresh_interval": "15s"

}

分桶上限设置:

put http://IP:9200/_cluster/settings
{
    "persistent": {
        "search.max_buckets": 20000
    }
}

 分桶统计查询

post  http://IP:9200/index_data/_search

{   "size":0,
    "query": {
        "match_all": {}
    },
    "aggs": {
        "group_name1": {
            "terms": {
                "size": 20000,
                "field": "field_name.keyword",
                "min_doc_count": 15
            }
        }
    }
}

数字型聚合操作:

{   "size":0,
    "aggs":{
        "grade_ranges":{
            "range":{
                "field":"event_type",
                "ranges":[
                    {"from":0,"to":5},
                    {"from":5,"to":12}]
                }
            }
        }
}

对过滤的数据进行聚合:

{
    "size": 0,
    "query": {
        "bool": {
            "should": [
                {
                    "term": {
                        "event_type": 1
                    }
                }
            ]
        }
    },
    "aggs": {
        "grade_ranges": {
            "range": {
                "field": "age",
                "ranges": [
                    {
                        "from": 1,
                        "to": 2
                    }
                ]
            }
        }
    }
}

均值聚合:

{
    "size": 0,
    "query": {
        "constant_score": {
            "filter": {
                "range": {
                    "price": {
                        "gte": 10000
                    }
                }
            }
        }
    },
    "aggs": {
        "single_avg_price": {
            "avg": {
                "field": "price"
            }
        }
    }
}

多个聚合,每个聚合的过滤条件不同:

{
            "query": {
                "match_all": {}
            },
            "size": 0,
            "aggs": {
                "rec_result": {
                    "filter": {
                        "bool": {
                            "must": rec_filter_list
                        }
                    },
                    "aggs": {
                        "rec_agg": {
                            "cardinality": {
                                "field": "event_id"
                            }
                        }
                    }
                },
                "click_result": {
                    "filter": {
                        "bool": {
                            "must": click_filter_list
                        }
                    },
                    "aggs": {
                        "click_agg": {
                            "cardinality": {
                                "field": click_static_field
                            }
                        }
                    }
                }
            }
        }

多层嵌套,其中cardinality是在过滤的条件下的数据中对指定的属性字段去重计数。

另外聚合中的filter不能进行多条件过滤,如果需要多条件过滤,可以内嵌套一个bool条件

ignore_malformed是定义Mapping时的一个参数配置,默认为false,即如果将错误的数据类型映射到字段中则会报错,如果设置为true,则可以忽略数据类型的异常。

有时,当你对数据类型不太确定时,可以尝试配置这个属性为true。

PUT http://IP:PORT/mytest/

{

    "mappings":{

    "properties": {

        "create_date": {

            "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_second",

            "type": "date",

            "ignore_malformed": true

        }

    }

}

}

查询student不为空的数据(不存在或则数组无元素):

{

    "query": {

        "bool": {

            "must": {

                "exists": {

                    "field": "student"

                }

            }

        }

    }

}

elasticsearch 对查询结果进行二次过滤post_filter,对应的介绍见Docs:

GET /shirts/_search
{
  "query": {
    "bool": {
      "filter": {
        "term": { "brand": "gucci" } 
      }
    }
  },
  "aggs": {
    "colors": {
      "terms": { "field": "color" } 
    },
    "color_red": {
      "filter": {
        "term": { "color": "red" } 
      },
      "aggs": {
        "models": {
          "terms": { "field": "model" } 
        }
      }
    }
  },
  "post_filter": { 
    "term": { "color": "red" }
  }
}

基于elasticsearch进行文章词频统计

POST /test_info/_doc/_termvectors

{

    "doc":{

        "content":"世界是美丽的,也是多样的。唯有保持一颗包容的心,允许差异化的存在,我们才能更好的生活在这个美丽的星球。"

    }

}

[ES] es 搜索的高级功能:搜索并按照不同字段sore权重计算得分排序 电商搜索中一个通用搜索语句: GET /_search { "query": { "function_score": { "query": { "bool": { "should": [ { "match_phrase": { "title": { ... 阅读详情

相关推荐

离线路径规划服务Graphhopper

离线路径规划服务Graphhopper 本文主要探索使用Graphhopper搭建离线路径规划服务,需要掌握一定的JAVA基础环境配置的知识 文章目录离线路径规划服务Graphhopper前言一、Graphhopper是什么?二、使用步骤1.下载Graphhopper2.从OpenStreetMap下载路图数据3.安装Graphhopper所需环境4.修改配置5.启动Graphhopper总结 前言 在外网环境中可以使用百度、高德等第三方的sdk用以实现路径规划的功能,由于项目的需要,在离线环境中需要使

Sysdark的博客 7557

Elasticsearch复合查询之Boosting Query

Boolean Query在之前已经介绍过了,今天来看一下 Boosting Query 用法,其实也非常简单,总结起来就一句话,对不期待的查询关键词进行相关性降分。

三劫散仙 1386

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1438

es 查询语句提升权重 - boost 关键词的使用

其他阅读:https://www.elastic.co/guide/cn/elasticsearch/guide/current/query-time-boosting.html 查询时权重提升 https://www.elastic.co/guide/cn/elasticsearch/guide/current/function-score-filters.html过滤集提升权重 当然bool查询不仅限于组合简单的单个词match查询,它可以组合任意其...

JineD的博客 2万+

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

Rapid SCADA MQTT

一、配置RapidSCADA 1、准备KpMqtt.dll、Jint.dll库文件,从网盘下载。 2、将以上两个文件拷贝到SCADA安装目录的Comm/KP目录下,如下: C:\SCADA\ScadaComm\KP 3、新建SCADA项目 4、新建Line 5、新建Device 6、拷贝Config目录下的KpMqtt_001.xml文件、KpMqtt_Job.js文件到项目Comm\Config下,如下示例链接 C:\SCADA\Projects\MQTTProject\Instances\Defau

mumanquan1的博客 3007

运用打分和Boost优化Elasticsearch搜索结果

来自Optimizing Search Results in Elasticsearch with Scoring and Boosting 作者:Neil Alex 2015/03/18虽然es提供了高效的打分函数,但是在电商环境下还是不够用。大多数的用户还是关注排在前几名的结果,所以有灵活的打分机制尤为重要。如果能根据用户的需要展示搜索结果,那么转化率就尤其可观了。本文中,我们先来看看es默认的

qq_19598855的专栏 2万+

GD32F105RBT6 keil工程模板

创建GD32F105RBT6的keil初始基础工程,未来的所有外设驱动都是基于这个基础工程进行扩展。

RMDYBW的博客 1925

【Elasticsearch】 11-DSL语法详解-复合查询boosting query、constant_score、 dis_max、 function_score

在本文中我们将深入研究四种特殊的查询类型:Boosting Query、Constant Score Query、Dis Max Query和Function Score Query的特性、参数说明以及使用示例。

程序员小屋 1433

uniapp | 基于高德地图实现位置选择功能(安卓端)

在uni-app项目中实现地图位置选择功能的解决方案。由于uni.chooseLocation功能受限,采用高德地图API自主开发。系统由父组件poiMap.vue(负责展示和跳转)和子组件poiBox.vue(核心地图逻辑)构成,通过父子组件通信传递位置数据。关键技术包括:1)使用AMapLoader动态加载地图SDK;2)集成PositionPicker实现拖拽选点;3)异步加载AMapUI插件;4)通过事件监听获取位置详情(地址/经纬度)。

大胆尝试,小心实践 731

Linux:安装Debian最新10.x操作系统(超详细)

安装Debian最新10.x操作系统安装Debian最新10.x操作系统1.下载Debian镜像2. 镜像安装引导启动页面,选择图形化安装:选择语言、时区,选中后点击continue:选择键盘模式:配置Hostname主机名,设置Root密码创建普通用户名和密码,进入磁盘分区步骤,选择“所有文件放在同一个分区”确认分区信息磁盘配置完,进入软件安装模块:选择源:进入软件包配置,等待配置结束根据需要选择软件包安装3. 安装完成重启后登录使用 安装Debian最新10.x操作系统 1.下载Debian镜像 下载D

HowieXue 薛永浩的博客 3万+

【Elasticsearch】ES常见操作

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。在es当中,每个字段都会有默认的类型,根据我们第一次插入数据进去,es会自动帮我们推断字段的类型,当然我们也可以通过设置mappings来提前自定义我们字段的类型。

a1k2l45k的博客 1348

从 VL02N 拣配到 ABAP 自动化,读懂 SD_DELIVERY_UPDATE_PICKING 的位置和风险

文章摘要:SAP SD模块中,SD_DELIVERY_UPDATE_PICKING函数模块用于处理出库交货单的拣配确认,更新交货项目的拣配数量。该函数适用于未启用WM/EWM的传统SD流程,能确保拣配状态与标准交货处理逻辑同步,比直接修改数据库更安全。但在S/4HANA Cloud等新环境中,应优先使用API_OUTBOUND_DELIVERY_SRV等公开发布接口。使用该函数时需注意参数完整性和按交货单整体处理的原则,避免逐项提交导致的数据不一致问题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

es 时间字段聚合_ElasticSearch 学习记录之ES几种常见的聚合操作

ElasticSearch 系列文章ES几种常见的聚合操作普通聚合POST /product/_search{"size": 0,"aggs": {"agg_city": {"terms": {"field": "departureCitys" //字段}}}}父子结构的索引的聚合POST product/_search{"size": 0,"aggs": {"months": {"childre...

weixin_39525812的博客 583

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Elasticsearch实战系列(八)--ES常见操作

查询ES下所有的索引 curl '192.168.160.128:9200/_cat/indices' 删除指定的索引 curl -XDELETE '192.168.160.128:9200/index1' 删除指定的多个索引 curl -XDELETE '192.168.160.128:9200/index1,index2' 删除所有索引 curl -XDELETE '...

吴小豪的博客 280

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Elasticsearch常见操作-基于es-head插件

本文只记录自己的心得经验,并不涉及解决方案等 1、更新es的数据:如下图: 注意:更新时请es_company前不要加入/,否则无法请求通过。 2、更新数据时,出现lLmit of total fields [1000] in index错误,如下图所示: 解决方案如下(设置所有的索引settings): 注意:如果需要修改单个索引的settings,则将_all修改为对应的索引名称即可。 ...

yarcl的程序之家 645

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ES的常见操作与原理分析

ES的常见操作与原理分析

六月的雨 709

es python search 返回_python查询elasticsearch常见操作

使用到的两个库from elasticsearch import Elasticsearch from elasticsearch_dsl import Search, Q连接-无需认证url = 'http://127.0.0.1:9200' client = Elasticsearch(url)连接-需认证url = 'http://127.0.0.1:9200' user = 'admin'...

weixin_30824361的博客 600

《深入剖析 Elasticsearch:强大的 Java 开源搜索引擎》

本文深入介绍了由 Java 开发的开源搜索引擎 Elasticsearch。它以实时搜索、稳定可靠、快速安装和方便使用等特性,在 Java 开发社区广获认可。Elasticsearch 为开发者提供强大的搜索解决方案,可轻松集成到 Java 项目中,实现快速检索和处理大量数据。

面团到油条的成长日记 1619

es常见操作

查询检索的时候,不同的语言创建的是不一样的索引的,所以,每一次查询的时候是需要携带查询语言的 #安装pinyin插件 需要单独的编译或者是使用外部提供的编译插件 #安装ik插件 IK中文分词器:https://github.com/medcl/elasticsearch-analysis-ik 拼音分词器:https://github.com/medcl/elasticsearch-analysis-pinyin 具体的操作可以参考文档https://www.cnblogs.com/yijialong/p/

qq_33409840的博客 251

ES常见操作

ES常见操作

mnimxq的博客 3158

ES6 常见代码片段,对数组和对象的操作

es6一些常见的代码片段 对数组和对象的操作 复制之后用node直接跑起来就可以看到输出 // 遍历 let arr = [1,2,3,4] arr.forEach(v => { //console.log(v) }) // 可以返回每一个元素都乘以2的数组 console.log(arr.map(v => v*2)) // [ 2, 4, 6, 8 ] // 返...

老黑 528

Elasticsearch ES 数据模型

Elasticsearch使用文档(Document)作为数据存储的基本单元,每个文档实际上是一条JSON格式的数据,它包含了一组键值对(字段和值)。文档是 Elasticsearch 索引中的一条记录,而索引是文档集合的容器。每个文档都会被分配一个ID,且文档的所有字段和数据都以JSON格式存储。与传统关系型数据库中的行不同,Elasticsearch中的文档不需要预先定义固定的表结构。在Elasticsearch中,映射定义可以在创建索引时指定,也可以在索引创建后动态地进行调整(但有一定的限制)。

Flying_Fish_roe的博客 1940

elasticsearch的基本操作与常见问题

elasticsearch的基本操作与常见问题 增删改查 新增 带ID新增 PUT /test20210628/_doc/1 { "name": "zhangsan" } POST /test20210628/_doc/2 { "name": "zhangsan" } 不带ID新增 POST /test20210628/_doc { "name": "zhangsan" } POST 可以适用带ID及不带ID的新增,但是PUT只能用于带ID的新增 修改 覆盖更新 PUT /test20

cnamam的博客 478

【elasticsearch】elasticsearch常见操作

1. 新增索引 PUT /megacorp/employee/1 { "first_name":"qb", "last_name":"evan", "age":23, "above":"我喜欢爬山", "interests": ["运动","听音乐","编程"] } PUT /megacorp/employee/2 { "first_name":"qb2", "las...

Evan_QB的博客 403
上一篇: elasticsearch 分词器 变换全角和半角以及数字串模糊匹配
下一篇: neo4j常见操作
会发paper的学渣
博客等级 码龄15年 171粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值