Elasitcsearch入门1

一、基础概念

        数据的分类:

        1、结构化数据:指具有固定格式或有限⻓度的数据,如数据库,元数据等。 对于结构化数据,我们⼀般都是可以通过关系型数据库(mysql,oracle等)的 table 的⽅ 式存储和搜索,也可以建⽴索引。通过b-tree等数据结构快速搜索数据。

         2、⾮结构化数据:全⽂数据,指不定⻓或⽆固定格式的数据,如邮件,word⽂档等。 对于⾮结构化数据,也即对全⽂数据的搜索主要有两种⽅法:顺序扫描法,全⽂搜索法。

        全⽂搜索

        对⾮结构化数据进行信息提取出来,重新组织,使其变得有⼀定结构,然后对这些有⼀定结构的数据进⾏搜索,从⽽达到搜索相对较快的⽬的。这种⽅式就构成了全⽂搜索的基本思路。这部分从⾮结构化数据中提取出的然后重新组织的信 息,我们称之索引。

        什么是全文搜索引擎?

        原理:是计算机索 引程序通过扫描⽂章中的每⼀个词,对每⼀个词建⽴⼀个索引,指明该词在⽂章中出现的次数和位 置,当⽤户查询时,检索程序就根据事先建⽴的索引进⾏查找,并将查找的结果反馈给⽤户的。

        常见搜索引擎主要有 :Lucene 、Solr 、Elastic search

        适合的场景:

  • 搜索的数据对象是⼤量的⾮结构化的⽂本数据。
  • ⽂本数据量达到数⼗万或数百万级别,甚⾄更多。
  • ⽀持⼤量基于交互式⽂本的查询。 需求⾮常灵活的全⽂搜索查询。
  • 对安全事务,⾮⽂本数据操作的需求相对较少的情况。

        Elasticsearch Elasticsearch是⼀个开源,是⼀个基于Apache Lucene库构建的Restful搜索引擎。

        能够实现在海量数据中快速检索到满足条件的数据,同时还可以实现分页、高亮显示等功能。除此之外,还可以用于日志统计、分析、系统监控等

        一般使用es会结合Kibana,它提供了数据可视化,提供了图形化界面,可以操作ES

        查询数据的两种索引类型:

        正向索引:是先通过文件名找到具体的文件,再获取文件中的内容过程

        倒排索引:从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,如文件名、作者、文件大小、创建时间等。

        过程:把文档内容进行分词,得到一个词条表【词条:文档ID列表】,给词条创建索引。把要搜索的内容进行分词,根据分词后的结果去词条表中根据词条进行匹配,得到文档ID列表,再通过文档ID返回具体的文档信息

二、Elasticsearch基本结构

索引(index):⼀个索引可以理解成⼀个关系型数据库。

类型(type): ⼀种type就像⼀类表,⽐如user表,order表。 注意: ES 5.x中⼀个index可以有多种type。 ES 6.x中⼀个index只能有⼀种type。 ES 7.x以后已经移除type这个概念。

映射(mapping) :mapping定义了每个字段的类型等信息。相当于关系型数据库中的表结构。 ⽂档(document) ⼀个document相当于关系型数据库中的⼀⾏记录。

字段(field) :相当于关系型数据库表的字段 集群(cluster) 集群由⼀个或多个节点组成,⼀个集群有⼀个默认名称"elasticsearch"。

节点(node) :集群的节点,⼀台机器或者⼀个进程。

分⽚和副本(shard) :副本是分⽚的副本。分⽚有主分⽚(primary Shard)和副本分⽚(replica Shard)之分。 ⼀个Index数据在物理上被分布在多个主分⽚中,每个主分⽚只存放部分数据。 每个主分⽚可以有多个副本,叫副本分⽚,是主分⽚的复制。

三、ES基本使用

 1、索引的介绍和使⽤

新增索引:PUT "localhost:9200/nba"

获取索引:GET "localhost:9200/nba"

删除索引:DELETE "localhost:9200/nba"

批量获取索引:GET "localhost:9200/nba,cba"

获取所有索引:GET "localhost:9200/_all"   GET "localhost:9200/_cat/indices?v"

 2、映射的介绍和使⽤

新增映射 PUT "localhost:9200/nba/_mapping"

获取映射 GET "localhost:9200/xdclass/_mapping"

批量获取:GET "localhost:9200/nba,cba/mapping"

获取所有:1.X GET "localhost:9200/_mapping";2.GET "localhost:9200/_all/_mapping"

修改映射:PUT "localhost:9200/nba/_mapping"

{
  "properties":{
    "id":{
      "type":"integer"
    }
  }
}

3、⽂档的增删改查

新增⽂档:1.PUT localhost:9200/nba/_doc/1 (指定id) 注:指定需要用PUT

                  2.POST localhost:9200/nba/_doc (不指定id)  不需要指定

{ "name":"库⾥", "team_name":"勇⼠", "position":"组织后卫", "play_year":"10","jerse_no":"30"}

查看⽂档:GET localhost:9200/nba/_doc/1

查看多个⽂档:1.POST localhost:9200/_mget

{"docs" : [ { "_index" : "nba", "_type" : "_doc", "_id" : "1" }, { "_index" : "nba", "_type" : "_doc", "_id" : "2" } ] }

POST localhost:9200/nba/doc/mget

{ "docs" : [ { "_id" : "1" }, { "_id" : "2" } ] }

GET localhost:9200/nba/doc/mget

{ "ids" : ["1", "2"] }

修改⽂档: POST localhost:9200/nba/_update/1

{ "doc": { "name": "哈登", "team_name": "⽕箭", "position": "双能卫", "play_year": "10", "jerse_no": "13" } }

删除⽂档:DELETE localhost:9200/nba/_doc/1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值