ELasticSearch基本使用

一、 ElasticSearch在window环境下的安装

  1. 访问ElasticSearch的官方地址(https://www.elastic.co/cn/)
  2. 下载ElasticSearch的windows版本安装解压
  3. 解压完成之后,进入bin目录下,启动elasticsearch.bat文件
  4. 启动完成之后,在浏览器输入localhost:9200,出现如下即表示启动成功
    在这里插入图片描述

二、正排索引和倒排索引

一张表的数据如下

idcontent
1his name is tom
2her name is lisa
  • 正排索引
    查询指定的tom关键字,对整张表中的content中的所有字进行查询,是否与关键字相匹配,如果匹配的上,则查找该对应content的id,使用id进行数据的查询,该方式为正排索引
  • 倒排索引
关键字id
tom1
lisa2
name1,2
is1,2

将content字段中的所有的所有内容进行划分,通过指定的关键字,找到对应的id,再通过id匹配数据,这种方式称为倒排索引

三、ElasticSearch中数据格式

ElasticSearch是面向文档型数据库,一条数据就是一个文档。
将ElasticSearch里存储文档的数据和关系型数据库Mysql存储数据概念进行对比
在这里插入图片描述
ElasticSearch中的Index可以看做是一个库,而Types相当于表,Documents则相当于表的行,这里面Types的概念已经被弱化了,ElasticSearch6.x中,一个index下面只能包含一个types,但是ElasticSearch7.x中,types的概念已经被移除了

四、ElasticSearch基本操作

  • 创建索引
    发送put请求到localhost:9200上,后面拼接所需要创建的索引的名称。比如发送localhost:9200/shopping的put请求则创建的是名为shopping的索引
  • 查询索引
    发送get请求到localhost:9200上,后面拼接所需要查询的索引的名称。比如发送localhost:9200/shopping的get请求则表示查询名为shopping索引的基本信息。发送localhost:9200/_cat/indices?v表示查询索引的索引信息
  • 删除索引
    发送delete请求到localhost:9200上,后面拼接所需要删除的索引的名称。比如发送localhost:9200/shopping的delete请求则删除的是名为shopping的索引
  • 创建文档
    发送post请求到localhost:9200上,后面拼接所需要创建的文档所在的索引,以及创建文档的表示。比如发送localhost:9200/shooping/_doc的post请求,请求体中再以json格式写入文档信息,则可以创建一个文档
  • 查询文档
    发送get请求到localhost:9200上,后面拼接所需要查询文档所在的索引和id。比如发送localhost:9200/shooping/_doc/1001的get请求,是查询id为1001的文档信息;发送localhost:9200/shopping/_search的get请求,是查询所有的文档信息
  • 全量修改
    发送put请求到localhost:9200上,后面拼接所需要修改文档所在的索引和id。比如发送localhost:9200/shooping/_doc/1001的put请求,并在请求体中传递全部的文档信息,则意味着对文档id为1001的数据进行覆盖
  • 局部修改
    发送post请求到localhost:9200上,后面拼接所需要修改文档所在的索引和id。比如发送localhost:9200/shooping/_update/1001的post请求,并在请求体中传递所需要修改的字段的信息,则意味对文档id为1001的数据进行局部变量的修改
  • 删除文档
    发送delete请求到localhost:9200上,后面拼接所需要修改文档所在的索引和id。比如发送localhost:9200/shooping/_doc/1001的delete请求,则意味对文档id为1001的数据进行删除

五、ElasticSearch查询操作

查询URL统一为localhost:9200/shopping/_doc/_search

  • 条件查询:查询标题中包含魅族的所有文档
{
    "query":{
        "match":{
            "title":"魅族"
        }
    }
}
  • 分页查询:查询第一页,每页含有两条数据
{
    "query":{
        "match_all":{}
    },
    "from":0,
    "size":2
}
  • 结果筛选:只查出所有文档的title字段的信息
{
    "query":{
        "match_all":{}
    },
    "_source":["title"]
}
  • 结果排序:对所有文档的数据按照price的降序进行排序
{
    "query":{
        "match_all":{}
    },
    "sort":{
        "price":{
            "order":"desc"
        }
    }
}
  • 复杂查询:查询出category中包含安卓和苹果的所有数据,并对查询出的数据按照价格大于4999且小于6000进行过滤
{
    "query": {
        "bool": {
            "should": [
                {
                    "match": {
                        "category": "安卓"
                    }
                },
                {
                    "match": {
                        "category": "苹果"
                    }
                }
            ],
            "filter":{
                "range":{
                    "price":{
                        "gt":4999,
                        "lt":6000
                    }
                }
            }
        }
    }
}
  • 高亮查询:对于查询出来的所有category中包含小米的数据中的小米高亮显示
{
    "query": {
        "match": {
            "category": "小米"
        }
    },
    "highlight": {
        "fields": {
            "category": {}
        }
    }
}
  • 聚合查询:对于查询的结果进行一系列聚合操作,包括分组,求平均值等
{
    "aggs":{//聚合操作
        "price_group":{//分组名称(自定义名称)
            "terms":{//分组
                "field":"price"//分组字段
            }
        }
    },
    "size":0
}

六、ElasticSearch映射操作

  1. 创建一个新的索引
    发送get的localhost:9200/user请求,创建一个名为user的新索引
  2. 添加映射关系
    发送put的localhost:9200/user/_mapping请求,请求体如下,创建映射关系
{
    "properties":{
        "name":{
            "type":"text",//支持模糊查询
            "index":true
        },
        "sex":{
            "type":"keyword",//只支持完全匹配查询
            "index":true
        },
        "tel":{
            "type":"keyword",
            "index":false//不支持索引查询
        }
    }
}
  1. 创建文档
    发送localhost:9200/user/_create/1001的put请求,请求体如下,创建一个文档
{
    "name":"张三",
    "sex":"男性",
    "tel":"15155170385"
}
  1. 查询文档
    发送localhost:9200/user/_search的get请求,请求体如下,查询sex为男的文档
{
    "query":{
        "match":{
            "sex":"男"
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch 是一种开源的搜索引擎,它是基于 Lucene 搜索引擎库构建的。它提供了一个分布式、多租户的全文搜索引擎,可以用于存储、搜索和分析海量数据。 以下是 Elasticsearch基本使用: 1. 安装 Elasticsearch:可以从官方网站下载 Elasticsearch,然后按照指南进行安装。 2. 运行 Elasticsearch:启动 Elasticsearch,可以在命令行中运行 elasticsearch 命令。 3. 创建索引:在 Elasticsearch 中,数据被组织成一个或多个索引。可以使用 PUT 请求创建索引,例如:`PUT /myindex`。 4. 添加文档:将文档添加到索引中,可以使用 POST 请求,例如:`POST /myindex/_doc`。在请求体中指定文档内容。 5. 查询文档:使用 GET 请求查询文档,例如:`GET /myindex/_search?q=test`。这将返回所有包含 "test" 的文档。 6. 删除文档:使用 DELETE 请求删除文档,例如:`DELETE /myindex/_doc/1`。这将删除索引为 "myindex" 中 ID 为 "1" 的文档。 7. 更新文档:使用 POST 请求更新文档,例如:`POST /myindex/_update/1`。在请求体中指定要更新的字段和值。 8. 聚合查询:可以使用聚合查询对文档进行分组和计算。例如:`GET /myindex/_search?size=0&aggs=group_by_country:terms:field:country`,这将返回按照国家分组并计算数量的结果。 以上是 Elasticsearch基本使用,还有很多高级特性可以探索。了解 Elasticsearch 的更多功能和用法,请参阅官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值