参考网址
blog.csdn.net/qq_55752792…
python操作es的3种方式
<1>使用requests模块
import requests
data = {
"name": "大娘子",
"age": 18,
"from": "sheng",
"desc": "肤白貌美,娇憨可爱",
"tags": ["白", "富", "美"]
}
res = request.put('http://127.0.0.1:9200/lqz/_doc/6', json=data)
print(res.text)
<2>使用官方提供的包
from elasticsearch import Elasticsearch
client = Elasticsearch("http://localhost:9200")
print(client.info)
result = client.indices.create(index='user')
print(result)
result = client.indices.delete(index='user')
print(result)
'''
不用doc包裹会报错
ActionRequestValidationException[Validation Failed: 1: script or doc is missing
'''
data = {'doc': {'userid': '1', 'username': 'lqz', 'password': '123ee', 'test': 'test'}}
result = client.update(index='news', doc_type='_doc', body=data, id=1)
print(result)
result = client.del
print(result)
query = {'query': {'match_all': {}}}
query = {'query': {'term': {'name': 'lxx'}}}
query = {'query': {'range': {'price': {'gt': 100}}}}
allDoc = client.search(index='books', body=query)
print(allDoc)
<3>ORM包
elasticsearch-dsl
from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean,analyzer, InnerDoc, Completion, Keyword, Text,Integer
from elasticsearch_dsl.connections import connections
connections.create_connection(hosts=["localhost"])
class Article(Document):
title = Text(fields={'title': Keyword()})
author = Text()
class Index:
name = 'myindex'
if __name__ == '__main__':
Article.init()
article = Article()
article.title = "test"
article.author = "lxx"
article.save()
s=Article.search()
s = s.filter('match', title="test")
results = s.execute()
print(results)
s = Article.search()
s = s.filter('match', title="test").delete()
s = Article().search()
s = s.filter('match', title="test")
results = s.execute()
print(results[0])
results[0].title="xxx"
results[0].save()