2017-02-09 81 views
0

我很困惑,如何在django restframework中使用elasticsearch。 請幫助我。什麼是在Django中使用elasticsearch的最佳方法Restframework

+0

顯示您迄今爲止所做的事情,可能有人可以幫助您! –

+0

我只想知道如何將elasticsearch與django集成。沒有我在這裏得到適當的文檔 –

+0

對不起,但在谷歌的第一個請求給了我的教程鏈接如何使用Elasticsearch與Django –

回答

1

在刺破我的腦袋並在網絡上進行研究之後,我創建了這個非常簡單的解決方案。

from elasticsearch import Elasticsearch, RequestsHttpConnection 
import datetime 
import socket 
from requests_aws4auth import AWS4Auth 


class EsHelper(): 
    conn = "" 
    index = "index" 
    HOSTNAME = socket.gethostname() 

def __init__(self): 
    self.conn = Elasticsearch(['localhost:9200']) 



    exist = self.conn.indices.exists(self.index) 
    if not(exist): 
     self.conn.indices.create('index', body={ 
      'settings': { 
       'analysis': { 
        'filter': { 
         'autocomplete_filter': { 
          'type': 'edge_ngram', 
          'min_gram': 1, 
          'max_gram': 20 
         } 
        }, 
        'analyzer': { 
         'autocomplete': { 
          'type': 'custom', 
          'tokenizer': 'standard', 
          'filter': [ 
           'lowercase', 
           'autocomplete_filter' 
          ] 
         } 
        } 
       }, 
       'index': { 
        'number_of_shards': '5', 
        'number_of_replicas': '1' 
       } 
      }, 
     }) 

def EsAddIndex(self, index, type, id, body): 
    self.conn.index(index=index, doc_type=type, id=id, body=body) 

def EsUpdateIndex(self, index, type, id, body): 
    self.conn.update(index=index, doc_type=type, id=id, body=body) 

def EsSearch(self, index, page, size, searchTerm): 
    body = { 
     'query': { 
      'match': searchTerm 
     }, 
     'sort': { 
       'created': { 
        'order': 'desc' 
       } 
     }, 
     'filter': { 
       'term': { 
        'super_verification': 'verified' 
       } 
     } 
    } 
    res = self.conn.search(index=index, body=body) 
    output = [] 
    for doc in res['hits']['hits']: 
     output.append(doc['_source']) 
    return output 
相關問題