python下建立elasticsearch索引实现大数据搜索——之编程实现(二)

本文介绍如何使用Python建立Elasticsearch索引,包括ElasticMaterialObj类的详细方法,如创建索引、批量导入数据和根据查询获取数据。通过这个类可以按需查找包含特定主图案、颜色和技法的素材列表。
摘要由CSDN通过智能技术生成

我们的编程思路是:

1.首先根据用户的需求提出的主图案,颜色,技法,我们应该在素材resource表中找到包含有这三种需求的素材list

2.然后根据素材list的每一个素材,在设计图stylepatternshow表中找到包含有该种素材的设计图

所以总体上需要两个类,一个是ElasticMaterialObj类,能够根据需求找到素材list;另一个是ElasticGraphObj类,能够根据素材list推荐出设计图。每个类基本上有这些方法:

1)__init__ :初始化方法,初始化在elasticsearch(下面简称es)建立的索引名,索引类型,服务器ip(这里我先采用本地测试ip默认为127.0.0.1)

2)create_index:创建索引方法,根据索引名,索引类型在es中创建出索引

3)bulk_Index_Data:批量导入数据,把数据导入建立的索引中(说明一下,这里我先采用:人工操作,从ssh穿透服务器下载数据到本地成json格式文件,后面,我会展示如何从ssh穿透的阿里云内网rdb中取得数据

4)get_Data_By_Body:根据查询body取得数据

为了能够让python连接上es,必须确保你开启了es服务,如下:

启动Elasticsearch

进入/usr/local/elasticsearch目录之中,输入以下命令,开始Elasticsearch服务

./bin/elasticsearch

 

1.导入相关类

#coding=utf-8
from elasticsearch import Elasticsearch  '''和es建立连接'''
from elasticsearch.helpers import bulk    '''批量导入数据'''
from elasticsearch.helpers import scan    '''获取大量数据,es默认获取10条结果'''
import json

2. ElasticMaterialObj类

  • 2.1 __init__方法
 def __init__(self,index_name,index_type,ip="127.0.0.1"):
        '''
        :param index_name: 索引名
        :param index_type: 索引类型
        :param ip: ip
        '''
        self.index_name = index_name
        self.index_type = index_type
        # 无用户名密码状态
        self.esObj = Elasticsearch([ip])  '''和es建立连接,important'''
        # 用户名密码状态
        # self.esObj = Elasticsearch([ip],http_auth=('elastic', 'password'),port=9200)
  • 2.2 create_index方法
 def create_index(self,index_name='resource',index_type=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值