当前位置:首页 > 大杂烩 > 正文内容

elasticsearch基础使用

高老师5年前 (2020-05-24)大杂烩1303

(1).在elasticsearch-head插件手工创建索引,索引名称learn,索引相当于数据库

(2).创建类型,并设置类型的mapping,相当于创建表,并设置表结构

类型为video相当于表,mapping相当于为表设置结构

请求地址:http://localhost:9200/learn/

请求方式:PUT

请求内容:

{
  "mappings": {
    "video": {
      "properties": {
        "name": {
          "type": "text"
        },
        "cat_id": {
          "type": "integer"
        },
        "image": {
          "type": "text"
        },
        "url": {
          "type": "text"
        },
        "type": {
          "type": "byte"
        },
        "content": {
          "type": "text"
        },
        "uploader": {
          "type": "keyword"
        },
        "create_time": {
          "type": "integer"
        },
        "update_time": {
          "type": "integer"
        },
        "status": {
          "type": "byte"
        },
        "video_id": {
          "type": "keyword"
        }
      }
    }
  }
}

其实我们不设置mapping,es也会自动检测文档类型设置maping

(3).索引一个文档记录,手动指定记录id,相当于新增记录

请求地址:http://localhost:9200/learn/video/1/

请求方式:PUT

请求内容:

{
"name":"林芳臻",
"cat_id":1,
"image":"http://www.gaojiufeng.cn/a.png",
"url":"http://www.gaojiufeng.cn/a.html",
"type":1,
"uploader":"gao",
"status":1,
"video_id":"linfangzhen"
}

记录id为1,如果我们是想把mysql的数据同步到es中,那么我们自己传递id很有必要

(4).索引一个文档记录,使用es自动生成id,相当于新增记录

请求地址:http://localhost:9200/learn/video/

请求方式:POST

请求内容:

{
"name":"林芳臻3",
"cat_id":1,
"image":"http://www.gaojiufeng.cn/a.png",
"url":"http://www.gaojiufeng.cn/a.html",
"type":1,
"uploader":"gao",
"status":1,
"video_id":"linfangzhen"
}

记录id为0eeyRnIBO2vtaZYtd_La

(5).查询一个文档记录,关键字分词查询

请求地址:http://localhost:9200/learn/video/

请求操作:_search

请求方式:POST

请求内容:

{
    "query":{
        "match":{
            "name":"林芳臻"
        }
    }
}

返回结果:

{
    "took":12,
    "timed_out":false,
    "_shards":{
        "total":5,
        "successful":5,
        "skipped":0,
        "failed":0
    },
    "hits":{
        "total":3,
        "max_score":0.5809142,
        "hits":[
            {
                "_index":"learn",
                "_type":"video",
                "_id":"2",
                "_score":0.5809142,
                "_source":{
                    "name":"林芳臻",
                    "cat_id":1,
                    "image":"http://www.gaojiufeng.cn/a.png",
                    "url":"http://www.gaojiufeng.cn/a.html",
                    "type":1,
                    "uploader":"gao",
                    "status":1,
                    "video_id":"linfangzhen"
                }
            },
            {
                "_index":"learn",
                "_type":"video",
                "_id":"0eeyRnIBO2vtaZYtd_La",
                "_score":0.51676416,
                "_source":{
                    "name":"林芳臻3",
                    "cat_id":1,
                    "image":"http://www.gaojiufeng.cn/a.png",
                    "url":"http://www.gaojiufeng.cn/a.html",
                    "type":1,
                    "uploader":"gao",
                    "status":1,
                    "video_id":"linfangzhen"
                }
            },
            {
                "_index":"learn",
                "_type":"video",
                "_id":"1",
                "_score":0.2876821,
                "_source":{
                    "name":"臻子",
                    "cat_id":1,
                    "image":"http://www.gaojiufeng.cn/a.png",
                    "url":"http://www.gaojiufeng.cn/a.html",
                    "type":1,
                    "uploader":"gao",
                    "status":1,
                    "video_id":"linfangzhen"
                }
            }
        ]
    }
}

搜索的结果中不仅仅包含林芳臻,还包含臻子,说明es中使用match搜索会对关键词进行分词查询,林芳臻被分为“林”,“芳”,“臻”3个字来查询,但是可以看到每个结果得到的匹配分数是不同的。但是有的时候我们只是想搜索包含林芳臻的结果,该怎么搜索,请看下面。

(6).查询一个文档记录,关键字不分词查询

请求地址:http://localhost:9200/learn/video/

请求操作:_search

请求方式:POST

请求内容:

{
    "query":{
        "match_phrase":{
            "name":"林芳臻"
        }
    }
}

返回结果:

{"took": 128,
"timed_out": false,
"_shards": {},
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
"hits": {}
{}
,
{}
"name": "林芳臻",
"cat_id": 1,
"image": "http://www.gaojiufeng.cn/a.png",
"url": "http://www.gaojiufeng.cn/a.html",
"type": 1,
"uploader": "gao",
"status": 1,
"video_id": "linfangzhen"
"_index": "learn",
"_type": "video",
"_id": "2",
"_score": 0.5809142,
"_source": {}
"name": "林芳臻3",
"cat_id": 1,
"image": "http://www.gaojiufeng.cn/a.png",
"url": "http://www.gaojiufeng.cn/a.html",
"type": 1,
"uploader": "gao",
"status": 1,
"video_id": "linfangzhen"
"_index": "learn",
"_type": "video",
"_id": "0eeyRnIBO2vtaZYtd_La",
"_score": 0.5167642,
"_source": {}
"total": 2,
"max_score": 0.5809142,
"hits": []
}

使用match_phrase匹配到的结果只会包含关键字

(7).查询一个文档,自定义聚合数据,类似于group,比如统计每个分类cat_id下有多少条数据

请求地址:http://localhost:9200/learn/video/

请求操作:_search

请求方式:POST

请求内容:

{
    "aggs":{
        "id_result":{
            "terms":{
                "field":"cat_id"
            }
        }
    }
}

返回结果:

{
    "aggregations":{
        "id_result":{
            "doc_count_error_upper_bound":0,
            "sum_other_doc_count":0,
            "buckets":[
                {
                    "key":1,
                    "doc_count":3
                },
                {
                    "key":2,
                    "doc_count":1
                }
            ]
        }
    }
}

统计出cat_id分类有2个分类,分别为catid1和2,并且统计文档数量

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:http://blog.20230611.cn/post/562.html

分享给朋友:

“elasticsearch基础使用” 的相关文章

svn自动更新到网站

svn自动更新到网站

【一】.钩子文件的设置和创建(1).打开hooks目录,可以看到有一个post-commit.tmpl文件,这是一个模板文件。复制一份,重命名为post-commit,将其用户组设为www,并设置为可执行。chown www:www post-commitchmod +x post-commit(2...

Git本地仓库学习

Git本地仓库学习

1.全局用户信息设置 git  config  --global  user.name  gaojiufeng git  config  --global  user.email  392223903...

PHP安装mongodb扩展

PHP安装mongodb扩展

在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...

c#关闭计算机的代码

c#关闭计算机的代码

    1.关机Process.Start("shutdown", "-s -t 0");    2. 注销  Proc...

C# md5加密,C# md5加密代码

C# md5加密,C# md5加密代码

public static string GetMD5(string str) {     //创建MD5对象     MD5 md5 = MD5.C...

IE浏览器无法显示此页解决方案

IE浏览器无法显示此页解决方案

方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...