gpt4 book ai didi

python - 在Django Restframework中使用elasticsearch的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-03 01:48:35 25 4
gpt4 key购买 nike

我很困惑如何在Django restframework中使用elasticsearch。
请帮我。

最佳答案

经过我的努力和在整个​​网络上的研究,我创建了这个非常简单的解决方案。

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

关于python - 在Django Restframework中使用elasticsearch的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42130204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com