python elasticsearch从创建索引到写入数据的全过程


Posted in Python onAugust 04, 2019

python elasticsearch从创建索引到写入数据

创建索引

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.1.1:9200')
mappings = {
      "mappings": {
        "type_doc_test": {              #type_doc_test为doc_type
          "properties": {
            "id": {
              "type": "long",
              "index": "false"
            },
            "serial": {
              "type": "keyword", # keyword不会进行分词,text会分词
              "index": "false" # 不建索引
            },
            #tags可以存json格式,访问tags.content
            "tags": {
              "type": "object",
              "properties": {
                "content": {"type": "keyword", "index": True},
                "dominant_color_name": {"type": "keyword", "index": True},
                "skill": {"type": "keyword", "index": True},
              }
            },
            "hasTag": {
              "type": "long",
              "index": True
            },
            "status": {
              "type": "long",
              "index": True
            },
            "createTime": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "updateTime": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        }
      }
    }
res = es.indices.create(index = 'index_test',body =mappings)

通过以上代码即可创建es索引

写入一条数据

写入数据需要根据 创建的es索引类型对应的数据结构写入:

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.1.1:9200')
action ={
       "id": "1111122222",
       "serial":"版本",
       #以下tags.content是错误的写法
       #"tags.content" :"标签2",
       #"tags.dominant_color_name": "域名的颜色黄色",
       #正确的写法如下:
       "tags":{"content":"标签3","dominant_color_name": "域名的颜色黄色"},
       #按照字典的格式写入,如果用上面的那种写法,会直接写成一个tags.content字段。
       #而不是在tags中content添加数据,这点需要注意
       "tags.skill":"分类信息",
       "hasTag":"123",
       "status":"11",
       "createTime" :"2018-2-2",
       "updateTime":"2018-2-3",
        }
es.index(index="index_test",doc_type="doc_type_test",body = action)

即可写入一条数据

错误的写入

python elasticsearch从创建索引到写入数据的全过程

正确的写入

python elasticsearch从创建索引到写入数据的全过程

写入多条数据

from elasticsearch import Elasticsearch
from elasticsearch.helpers import bulk
es = Elasticsearch('192.168.1.1:9200')
ACTIONS = []
action1 ={
          "_index": "indes_test",
          "_type": "doc_type_test",
          "_id":"bSlegGUBmJ2C8ZCSC1R1",
          "_source":{
            "id": "1111122222",
            "serial":"版本",
            "tags.content" :"标签2",
            "tags.dominant_color_name": "域名的颜色黄色",
            "tags.skill":"分类信息",
            "hasTag":"123",
            "status":"11",
            "createTime" :"2018-2-2",
            "updateTime":"2018-2-3",
          }
        }
action2 ={
          "_index": "indes_test",
          "_type": "doc_type_test",
          "_id":"bSlegGUBmJ2C8ZCSC1R2",
          "_source":{
            "id": "1111122222",
            "serial":"版本",
            "tags.content" :"标签2",
            "tags.dominant_color_name": "域名的颜色黄色",
            "tags.skill":"分类信息",
            "hasTag":"123",
            "status":"11",
            "createTime" :"2018-2-2",
            "updateTime":"2018-2-3",
          }
        }
ACTIONS.append(action1)
ACTIONS.append(action2)
res,_ =bulk(es, ACTIONS, index="indes_test", raise_on_error=True)
print(res)

这个方式是手动指定了id,如果把”_id”这个参数去掉即可自动生成id数据.
如下:

action2 ={
          "_index": "indes_test",
          "_type": "doc_type_test",
          "_source":{
            "id": "1111122222",
            "serial":"版本",
            "tags.content" :"标签2",
            "tags.dominant_color_name": "域名的颜色黄色",
            "tags.skill":"分类信息",
            "hasTag":"123",
            "status":"11",
            "createTime" :"2018-2-2",
            "updateTime":"2018-2-3",
          }
        }

删除一条数据

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.1.1:9200')
res = es.delete(index="index_test",doc_type="doc_type_test", id ="bSlegGUBmJ2C8ZCSC1R1")
print(res)

直接替换id的即可删除所需的id

查询一条数据

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.1.1:9200')
res = es.get(index="index_test",doc_type="doc_type_test", id ="bSlegGUBmJ2C8ZCSC1R2")
print(res)

直接替换id的即可查询所需的id

查询所有数据

from elasticsearch import Elasticsearch

es = Elasticsearch('192.168.1.1:9200')

res = es.search(index="index_test",doc_type="doc_type_test")
print(res)
print(res['hits']['hits'])

通过['hits']参数,可以解析出查询数据的详细内容

根据关键词查找

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.1.1:9200')
doc = {
      "query": {
        "match": {
          "_id": "aSlZgGUBmJ2C8ZCSPVRO"
        }
      }
    }
res = es.search(index="index_test",doc_type="doc_type_test",body=doc)
print(res)

总结

所述是小编给大家介绍的python elasticsearch从创建索引到写入数据的全过程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
利用aardio给python编写图形界面
Aug 21 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
Python骚操作之动态定义函数
Mar 26 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
通过python3实现投票功能代码实例
Sep 26 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
python db类用法说明
Jul 07 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
OpenCV-Python实现轮廓的特征值
Jun 09 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
elasticsearch python 查询的两种方法
Aug 04 #Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 #Python
Django 创建新App及其常用命令的实现方法
Aug 04 #Python
python模拟鼠标点击和键盘输入的操作
Aug 04 #Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 #Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 #Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 #Python
You might like
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
php生成rss类用法实例
2015/04/14 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python configparser模块操作代码实例
2020/06/08 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
农村婚礼证婚词
2014/01/10 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
温馨提示标语
2014/06/26 职场文书
真诚的求职信
2014/07/04 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
新年寄语2016
2015/08/17 职场文书
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers