前幾天,在github上看到了一個關於elasticsearch的小項目,有點小興趣,於是就結合着Flask,研究了一下,分享給大家。
准備資料:
1、安裝elasticsearch
參考教程:https://www.cnblogs.com/gangle/p/9328257.html
2、實現簡單的搜索引擎
參考教程:https://dev.to/aligoren/using-elasticsearch-with-python-and-flask-2i0e
該教程每一步講解的很詳細,並且最后還附上了源碼,雖然有點簡單,但是了解elasticsearch足夠了。
大家可以把源碼拷貝到自己的flask項目文件夾內,用Curl調試 實現效果(我用的WIN10環境,Linux下curl代碼會有些許改動)。
curl -i -H "Content-Type:application/json" -X POST -d "{\"slug\":\"slug1\",\"title\":\"kehuan\",\"content\":\"zhen ciji\"}" http://localhost:5000/insert_data
以上代碼通過POST方法,插入索引;
得到返回。
curl -i -H "Content-Type:application/json" -X POST -d "{\"keyword\":\"kehuan\"}" http://localhost:5000/search
通過代碼定義的search方法,實現關鍵字“kehuan”搜索,即按照給定的關鍵字,搜索之前插入的索引中的匹配值,並返回如下圖所示。
擴展:
可以利用elasticsearch結合數據庫實現博客的文章關鍵字搜索,結合爬蟲技術實現爬取到的數據實時展示等。
注:教程里的源碼不適合curl調試,要實現curl調試需要做如下兩點修改即可:
1、共修改四處
request.form[' '] 修改為 : request.json[' ']
2、修改一處
res = es.search(index="contents", doc_type="title", body=body) 去掉: doc_type="title" 即可