您好,登錄后才能下訂單哦!
python中怎么對elasticsearch進行操作,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
用 python 操作 elasticsearch 使用的第三方庫是 elasticsearch 。
1.python連接 elasticsearch 進行搜索
from elasticsearch import Elasticsearches = Elasticsearch([{'host': settings.ELASTICSEARCH_HOST, 'port': settings.ELASTICSEARCH_PORT}],timeout=3600) # 連接esbody = \ { "query": { "bool": { "filter": { "terms": {"type_id": [1, 3, 4, 5, 6]} }, "must_not": { "terms": { "_id": must_not_list } } , "must": { "range": { "video_date": { "gte": "now-24h+8h", "lte": "now+8h" } } } } }, "sort": {"video_like": {"order": "desc"}}, "from": start, "size": size } data = es.search(body=body, index=settings.ELASTICSEARCH_INDEX)
host 是 ES 的主機IP,port 是 ES 的端口號,搜索是調用 search 方法。body是 搜索的body體,index是要搜索的索引名稱,返回結果的結構是 json 格式,和直接操作es返回的結果一樣。
2. python 連接 elasticsearch 增加文檔
es = Elasticsearch([{'host': settings.ELASTICSEARCH_HOST, 'port': settings.ELASTICSEARCH_PORT}], timeout=3600)action = { "type_id": now_ameme_data.get("type_id"), "video_comment": now_ameme_data.get("video_comment"), "share_count": now_ameme_data.get("share_count"), "video_url": now_ameme_data.get("video_url"), "category_id": now_ameme_data.get("category_id"), "video_title": now_ameme_data.get("video_title"), "user_id": now_ameme_data.get("user_id"), "price": now_ameme_data.get("price"), "video_like": now_ameme_data.get("video_like"), "video_date": now_ameme_data.get("video_date"), "updata_time": now_ameme_data.get("update_time"), "video_img_url": now_ameme_data.get("video_img_url"), "label": label}es.index(index="aweme_smart", body=action, id=aweme_id)
新增文檔使用的是 index 方法,也可以為文檔指定 id。action 里面的字段要和 es 文檔的字段對應上。
看完上述內容,你們掌握python中怎么對elasticsearch進行操作的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。