from elasticsearch
import Elasticsearch
#连接Elasticsearch
es = Elasticsearch([{
'host':
'192.168.0.102',
'port':
9200}])
#查询条件,按日期区间查询名为data_index2的索引中Fcontent字段包含四川宜宾或者四川成都的两个关键词的数据统计结果,像mysql中的like效果query_where={
"query":{
"bool":{
#所有分句都必须匹配,与 AND 相同。
"must":[
{"range":{
"Fdate":{
"gte":"2017-04-10",
"lte":"2017-04-20"
}
}
},
{
"bool":{ #至少有一个分句匹配,与 OR 相同
"should":[
{
"query_string":{
"default_field" : "Fcontent",
"query" : "\"四川\" AND \"宜宾\" "
}
},
{
"query_string":{
"default_field" : "Fcontent",
"query" : "\"四川\" AND \"成都\" "
}
},
]
}
},
],
}
},
"size": 0
}#执行查询操作获取返回结果
res = es.search(
index=
"data_index2",
body=query_where)
print res打印出来的结果是:{u'hits': {u'hits': [], u'total': 51, u'max_score': 0.0}, u'_shards': {u'successful': 5, u'failed': 0, u'total': 5}, u'took': 28, u'timed_out': False}
其中u'total'就是统计出来的数据条数
刘延林 | 梦陆
认证博客专家
屌丝程序猿
一个IT界富有灵魂的业余哲学家、思想家兼吹牛皮专家,乃当代程序猿中不可多得的一个旷世奇葩!个人出版作品《Python网络爬虫开发从入门到精通》