python 訪問 elasticsearch

來源:互聯網
上載者:User

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()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.