前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 python 操作 elasticsearch

用 python 操作 elasticsearch

作者头像
用户4945346
发布2020-06-30 17:51:40
1.5K0
发布2020-06-30 17:51:40
举报
文章被收录于专栏:pythonista的日常pythonista的日常

用 python 操作 elasticsearch 使用的第三方库是 elasticsearch 。

1.python连接 elasticsearch 进行搜索

代码语言:javascript
复制
from elasticsearch import Elasticsearch
es = Elasticsearch([{'host': settings.ELASTICSEARCH_HOST, 'port': settings.ELASTICSEARCH_PORT}],timeout=3600)  # 连接es
body = \
    {
        "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) 

2. python 连接 elasticsearch 增加文档

代码语言:javascript
复制
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 文档的字段对应上。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 pythonista的日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档