python 访问 elasticsearch



import pyes


conn = pyes.ES(['127.0.0.1:9200'])#连接es

def creat():

    #conn.indices.create_index('test-index')#新建一个索引

    #定义索引存储结构
    mapping = { u'id': {'boost': 1.0,
                          'index': 'not_analyzed',
                          'store': 'yes',
                          'type': u'string',
                          "term_vector" : "with_positions_offsets"},
                  u'user_id': {'boost': 1.0,
                             'index': 'not_analyzed',
                             'store': 'yes',
                             'type': u'string',
                             "term_vector" : "with_positions_offsets"},
                  u'nick': {'boost': 1.0,
                             'index': 'analyzed',
                             'store': 'yes',
                             'type': u'string',
                             "term_vector" : "with_positions_offsets"},
                  u'city': {'boost': 1.0,
                             'index': 'analyzed',
                             'store': 'yes',
                             'type': u'string',
                             "term_vector" : "with_positions_offsets"},
            }

    conn.indices.put_mapping("test-type1", {'properties':mapping}, ["test-index"])#定义test-type
    conn.indices.put_mapping("test-type2", {"_parent" : {"type" : "test-type1"}}, ["test-index"])#从test-type继承

    #插入索引数据
    #{"id":"1", "user_id":"u1", "nick":u"压力很大", "city":u"成都"}: 文档数据
    #test-index:索引名称
    #test-type: 类型
    #1: id 注:id可以不给,系统会自动生成
    conn.index({"id":"1", "user_id":"u1", "nick":u"美女很多", "city":u"成都"}, "test-index", "test-type1", 1)
    conn.index({"id":"2", "user_id":"u2", "nick":u"压力很小", "city":u"北京"}, "test-index", "test-type1",2)
    conn.index({"id":"3", "user_id":"u3", "nick":u"没有压力", "city":u"成都"}, "test-index", "test-type1",3)
    conn.index({"id":"4", "user_id":"u4", "nick":u"东方明珠", "city":u"上海"}, "test-index", "test-type1",4)
    conn.index({"id":"5", "user_id":"u5", "nick":u"环境优美", "city":u"深圳"}, "test-index", "test-type1",5)
    conn.index({"id":"6", "user_id":"u6", "nick":u"城市很脏", "city":u"西安"}, "test-index", "test-type1",6)
   
    conn.default_indices=["test-index"]#设置默认的索引
    conn.indices.refresh()#刷新以获得最新插入的文档

def query():
    reload(pyes)
    #查询nick中包含压力的记录
    #q = StringQuery(u"压力",'nick')
    q = pyes.query.MatchQuery('nick',u"压力很小",type="phrase_prefix")
    #q = pyes.query.MatchQuery('nick',u"压力很小")
    #q1 = pyes.query.MatchQuery("user_id","u1")
    #q2 = pyes.query.MatchQuery("id","6")
    #q = pyes.query.BoolQuery(should=[q1, q2])
    results = conn.search(q)

    for r in results:
        print u"查询nick中包含压力的记录", r['nick'], r['city'], r['user_id']

    return r['user_id']


#if __name__ == '__main__':
    #creat()
   query()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值