您的位置:首页 > 编程语言 > Python开发

python连接elasticsearch获取数据

2017-02-10 17:05 453 查看
# -*- encoding: utf-8 -*-
import sys
import json
from elasticsearch import Elasticsearch

reload(sys)
sys.setdefaultencoding("utf8")

######################################################
# 用于连接ES环境,查询检索小区信息,返回排名靠前10的小区信息。
# http_auth=('es_username', 'es_passwd')
# es_search(city,name):es_search(深圳,登科花园)
######################################################

es = Elasticsearch(
['xxx.xxx.xxx.xxx'],
http_auth=('elastic', 'passwd'),
port=9200
)

def es_search(city, name):
query_json = {
"bool": {
"must": {
"term": {
"city": city
}
},
"must_not":{
"term": {
"base_inf.kind":'商铺'
}
},
"should": [
{
"match": {
"message": name
}
}
]
}
}

source_arr = ["name",
"Long_lat.lon",
"Long_lat.lat",
"detail_inf",
"avg_price",
"base_inf.kind",
"base_inf.build_time"]

res = es.search(index="st_soufang", body={"query": query_json, "_source": source_arr})  # 获取所有数据

# 获取第一条数据,得分最高。
top_10_recodes = res['hits']['hits']
# print json.dumps(top_10_recodes)
return [top_10_recodes]
#
# for item in best_recode:
#     if item != '_source':
#         print item,best_recode[item]

if __name__ == "__main__":
# 测试单例
city = '深圳'
name = '东方星大厦'
es_search(city, name)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python elasticsearch