Elasticsearch+Python 入门使用(1)

Elasticsearch专栏入口

看前提示

  • python 模块 elasticsearch 有版本问题,我使用的是8.1.2版本。如有接口报错请对模块进行升级\降级。
  • 适合0 Elasticearch 基础的选手,入门、练习观看。
  • 适合想使用Python API 操作ES 的选手。
  • Elasticsearch部署教程在这里
  • Elasticsearch+Python 入门使用(2)

目录

数据准备

一、环境下载

二、操作实践

2.1 索引

2.2.1 创建索引

2.2.2 查看索引

2.2.3 删除索引

2.2 数据基本增删改查

2.2.1 添加数据

2.2.2 查询数据

2.2.3 数据修改

2.2.4 数据删除

三、总结


数据准备

如果没有ES基础可以按照我的代码来进行数据准备:

# 导入模块
from elasticsearch import Elasticsearch

# 连接es
es = Elasticsearch(
    hosts='http://你ES的ip地址:9200',
)
# 创建并映射索引
mappings = {
    "properties":{
        "title": {
            "type": "text",
            "index": "true"
        },
        "type": {
            "type": "keyword",
            "index": "true"
        },
        "uuId": {
            "type":'keyword',
            "index": "true"

        },
        "url": {
            "type":'keyword',
            "index": "false"
        }
    }
}
response = es.indices.create(index='web',mappings=mappings)
# 插入数据
es.index(index="web",id=1,document={"title":"天天搜题","type":"网站","uuId":1,"url":"http://tiantiansouti.com/"})
es.index(index="web",id=2,document={"title":"天天嗨害嗨","type":"网站","uuId":2,"url":"http://tiantiansouti.com/"})
es.index(index="web",id=3,document={"title":"不搜搜题","type":"扯犊子","uuId":3,"url":"http://tiantiansouti.com/"})
es.index(index="web",id=4,document={"title":"天天不搜","type":"摆烂","uuId":4,"url":"http://tiantiansouti.com/"})
es.index(index="web",id=5,document={"title":"冬冬搜题","type":"嘿嘿嘿","uuId":5,"url":"http://tiantiansouti.com/"})

一、环境下载

elasticsearch(linux)部署

python 模块 elasticsearch 下载

pip install elasticsearch

二、操作实践

导入模块

from elasticsearch import Elasticsearch

连接 elasticsearch

es = Elasticsearch(
    hosts='http://1.13.194.58:9200'
)

2.1 索引

2.2.1 创建索引

ES:

# 数据准备好的这个可以忽略 作用是创建索引 因为我们已经有了所以这个会报错 跳过就可
PUT请求 http://ip:9200/web

Python:

# response 可以接收到ES的返回信息方便查看之后的代码基本都会有可以忽略

response = es.indices.create(index='web')

2.2.2 查看索引

ES:

# 查看web单个索引

GET请求 http://ip:9200/web

# 查看所有索引

GET请求 http://ip:9200/_cat/indices?v

Python:

# 查看web单个索引

response = es.indices.get(index='web')

# 查看所有索引

response = es.indices.get(index='*')

2.2.3 删除索引

ES:

# 索引会被删除,操作结束后需要再次经行数据准备
DELETE请求 http://ip:9200/web

Python:

# 索引会被删除,操作结束后需要再次经行数据准备
response = es.indices.delete(index="web")

2.2 数据基本增删改查

2.2.1 添加数据

ES:

# 创建一个标题(title)为天天搜题,类型(type)为网站,地址(url)为http://tiantiansouti.com/的数据

POST请求 http://ip:9200/web/_doc
body内容为
{
  "title": "天天搜题",
  "type": "网站",
  "url": "http://tiantiansouti.com/"
}

# 指定数据id为520

POST请求 http://ip:9200/web/_doc/520
body同上保持不变

Python:

# 创建一个标题(title)为天天搜题,类型(type)为网站,地址(url)为http://tiantiansouti.com/的数据

response = es.index(index="web",document={"title":"天天搜题","type":"网站", "url":"http://tiantiansouti.com/" })

# 指定数据id为520

response = es.index(index="web",id=520,document={"title":"天天搜题", "type":"网站", "url":"http://tiantiansouti.com/" })

2.2.2 查询数据

ES:

# 查询上面我们创建的id为520的数据

GET请求 http://ip:9200/web/_doc/520

# 查询所有数据

GET请求 http://ip:9200/web/_search

Python:

# 查询上面我们创建的id为520的数据 (最新版本查询方式)

query={
    "term":{
        "_id":520
    }
}
response = es.search(index='web',query=query)

# 查询所有数据

query = {
    "match_all":{}
}
response = es.search(index='web',query=query)

2.2.3 数据修改

ES:

# 将id=520的数据标题更新为天天快乐

POST请求 http://ip:9200/web/_update/520
body内容为
{
  "doc": {
    "title": "天天快乐"
  }
}

Python:

# 将id=520的数据标题更新为天天快乐

doc={
    "title":"天天快乐"
}
response = es.update(index="web",id=520,doc=doc)

2.2.4 数据删除

ES:

# 删除id为520的数据
DELETE请求 http://ip:9200/web/_doc/520

Python:

# 删除id为520的数据
response = es.delete(index="web",id=520)

三、总结

        ES搜索引擎的高效率毋庸置疑,希望喜欢Python语言的小伙伴们不要因为资料少就放弃,我会持续更新这个系列。加油!一起努力!

你可能感兴趣的:(Elasticsearch,elasticsearch,python,搜索引擎,大数据)