1. 程式人生 > >搜尋引擎elasticsearch(六)-- 使用python進行資料操作

搜尋引擎elasticsearch(六)-- 使用python進行資料操作

一、簡介

這裡介紹使用python對elasticsearch進行資料的增刪改查操作。

二、使用

這裡直接上程式碼,詳情請看註釋

#! /usr/bin/env python
# -*- coding:utf8 -*-
from elasticsearch import Elasticsearch

es = Elasticsearch(hosts=['192.168.0.107:9200'])


def main():
    index_name = 'stu'
type_name = 'doc'
##########################################
    # 檢視所有索引
alias = es.indices.get_alias() print(alias) # 查詢所有index名稱 result = es.indices.get_alias().keys() print(result) # 查詢index資訊,包含mapping settings資訊 result = es.indices.get(index_name) print(result) # 檢視指定index的mapping資訊 result = es.indices.get_mapping(index_name) print(result) # 檢視指定index的mapping資訊
result = es.indices.get_settings(index_name) print(result) school_index = "school" school_type = "doc" school_mapping = { "doc": { "properties": { "schoolId": { "type": "text", "index": True }, "schoolName": { "type"
: "text", "analyzer": "ik_max_word" } } } } # 建立索引(建立的同時也可指定mapping) es.indices.create(school_index) # es.indices.create(school_index,school_mapping) # 設定mapping es.indices.put_mapping(doc_type=school_type, body=school_mapping, index=school_index) ############################################################## # 查詢所有資料 result = es.search(index=index_name, doc_type=type_name) print(result) print(result['hits']['hits']) # 指定條件查詢 query_body = {'query': {'term': {'stuId': '005'}}} result = es.search(index=index_name, doc_type=type_name, body=query_body) print(result) print(result['hits']['hits']) # 根據id查詢 result = es.get(index_name, type_name, '5') print(result) # 插入或更新資料 doc = {'id': 7, 'stuId': '007', 'stuName': '大明1', 'createTime': 1529506498685} es.index(index_name, type_name, doc, doc['id']) # 刪除資料 es.delete(index_name, type_name, '7') if __name__ == '__main__': main()

更多的操作可以檢視原始碼

三、備註

1、從elasticsearch從6.x版本起,欄位type沒有string型別了,改為text和keyword,其中keyword不能分詞,

只能完全匹配。

2、從elasticsearch從6.x版本起, 欄位index屬性也只能是boolean值。