elasticsearch学习与把爬取的数据保存到es中

本文介绍了Elasticsearch的安装、基础概念、批量操作、映射、查询方法及数据导入。重点讲解了match、term查询,批量导入数据,以及如何处理数据存储到Elasticsearch中的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,安装
直接在github找到elasticsearch-rtf,下载下来,解压
教程

二、概念
集群:一个或者多个节点组织在一起
节点:一个节点是集群中的服务器,由一个名字来标识,通常是一个随机的漫威角色名字
分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片响应请求,提高性能和吞吐量
副本:创建分片的一份或多份的能力,在一个节点失败其余节点可以顶上
HTTP方法:刚开始是GET,POST,HEAD,后来又新增了五种 OPTIONS,PUT,DELETE,TRACE,CONNECT

倒排索引 :倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
倒排索引待解决问题:1.大小写转换问题,如python和PYTHON 应该是同一个词
2.词干抽取,looking和look应该处理为一个词
3.分词,若屏蔽系统应该分词为“屏蔽”、“系统” 还是应该为“屏蔽系统”
4.倒排索引文件过大-压缩编码

二 基础
1 创建索引
一旦创建的索引,分片数是不可以改的,副本数可以改

PUT nga     #创建索引
{
  "settings": {
    "index":{
      "number_of_shards":5,   #分片数
      "number_of_replicas":1   #副本数
    }
  }
}

2 获取setting信息

GET nga/_settings   #获取索引名为nga的setting信息
GET _all/_settings   #获取所有索引的setting
GET .kibana,nga/_settings  #获取指定索引的setting

3 修改setting

PUT nga/_settings
{
  "number_of_replicas": 2
}

4 获取索引信息

#获取索引信息
GET _all
GET nga

5保存文档

PUT nga/job/1     #指明   索引/type/id 也可以写成PUT nga/job/  将会自动成一个id
{
  "title":"python分布式爬虫开发",
  "salary_min":15000,
  "city":"beijing",
  "company":{
    "name":"baidu",
    "company":"beijingruanjianyuan"
  },
  "publish_date":"2017-8-21",
  "comments":23
}

6 获取

GET nga/job/1  #指定id
GET nga/job/1?_source=title,city   #指定id指定字段
GET nga/job/1?_source #获取指定id所有字段

7 修改
方式一、完全覆盖原有内容

PUT nga/job/1    #要指定id
{
  "title":"python分布式爬虫开发",
  "salary_min":15000,
  "company":{
    "name":"baidu",
    "company":"beijingruanjianyuan"
  },
  "publish_date":"2017-8-21",
  "comments":23
}

方式二:修改指定字段

POST nga/job/1/_update
{
  "doc":{   #doc里面放的就是要修改的内容
    "comments":5
  }
}

7删除
1 删除文档

DELETE nga/job/1

2 删除索引

DELETE nga

3.删除index下的type里面的所有数据

POST lagou/testjob2/_delete_by_query?conflicts=proceed
{
  "query": {
    "match_all": {}
  }
}

三、批量操作
test表
查询type为job1且id为1,job2且id为2的数据,这个方法也可以查不同索引下的数据

GET _mget
{
  "docs":[{
    "_index":"testdb",
    "_type":"job1",
    "_id":1
  },{
    "_index":"testdb",
    "_type":"job2",
    "_id":1
  }
  ]
}

查询相同index下的不同type还可以这样

GET testdb/_mget
{
  "docs":[{
    "_type":"job1",
    "_id":1
  },{
    "_type":"job2",
    "_id":1
  }
  ]
}

如果type也相同

GET testdb/job1/_mget
{
  "docs":[{
    "_id":1
  },{
    "_id":2
  }
  ]
}

这样的情况可以进一步简写:

GET testdb/job1/_mget
{
  "ids":[1,2]
}

四、bulk批量操作
批量导入可以合并多个操作,比如index,delete,update,create等等,也可以从

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值