ES(Elasticsearch)是一款靈活、強大的開源搜索引擎,而MySQL則是一款常見的開源關系型數據庫。這兩款工具結合使用,不僅可以實現強大的數據管理,也能夠方便地進行數據搜索和查詢。
# 連接MySQL $ mysql -u 用戶名 -p 密碼 -h 主機地址 -P 端口 # 創建數據庫 mysql>CREATE DATABASE 數據庫名; # 創建表(例如一個學生信息表) mysql>CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT, gender CHAR(1), grade INT ); # 向表中插入數據 mysql>INSERT INTO student (name, age, gender, grade) VALUES ('張三', 18, '男', 1), ('李四', 19, '女', 2), ('王五', 20, '男', 3);
上面的代碼展示了如何使用MySQL創建一個簡單的學生信息表,并插入幾條數據。
接下來,我們將學生信息表中的數據導入到ES中,并進行搜索操作。
# 安裝elasticsearch-py $ pip install elasticsearch # 連接Elasticsearch from elasticsearch import Elasticsearch es = Elasticsearch(hosts=["主機地址"]) # 創建索引 es.indices.create(index='student_index', ignore=400) # 導入數據 from elasticsearch import helpers actions = [ { "_index" : "student_index", "_type" : "student", "_id" : str(i), "_source" : { "name": row[1], "age": row[2], "gender": row[3], "grade": row[4] } } for i, row in enumerate(cursor.fetchall()) ] helpers.bulk(es, actions) # 搜索數據(例如查找年齡在18到20歲之間的學生) res = es.search(index="student_index", body={"query": {"range": {"age": {"gte": 18, "lte": 20}}}}) for hit in res['hits']['hits']: print(hit["_source"])
上面的代碼展示了如何使用Python代碼將MySQL中的學生信息表導入到ES中,并進行數據搜索操作。通過ES的強大搜索功能,我們能夠快速地找到符合我們要求的數據。