我决定编写一个使用mysql和ElasticSearch的简短python程序。 当我的rowcount返回更多结果时,我的ElasticSearch的seconde查询不起作用。 这是我的代码:
#!/usr/bin/python
c = pycurl.Curl()
b = StringIO.StringIO()
def BuildUrl():
return "http://"+ip_ES+":"+port_ES+"/"+index_ES+"/"+type_ES+"/"
def CreateRqtES(brand, count):
request = BuildUrl()+'_search?sort=title:asc&from=0&size='+str(count)+'&q=brand:'+brand
print("link:", request)
try:
c.setopt(c.URL, request)
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.perform()
print "test"
try:
decoded = json.loads(b.getvalue())
json.dumps(decoded, sort_keys=True, indent=4)
for index in decoded['hits']['hits']:
var = index['_source']['link']
print var
except (ValueError, KeyError, TypeError):
print "JSON format error"
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
except Exception, e:
logger.info("[-][Error] pycurl")
def connectionBDD():
try:
con = mdb.connect('localhost', 'root', 'root', 'mydbb')
with con:
cur = con.cursor()
cur.execute("SELECT * FROM newsletters")
for i in range(cur.rowcount):
row = cur.fetchone()
print row[1], row[2]
CreateRqtES(row[1], row[2])
except _mysql.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit(1)
finally:
if con:
con.close()
在Es的第二次请求中没有结果。 如何解决这个问题。
提前致谢。
答案 0 :(得分:0)
我改进了错误消息,现在我的seconde请求出现了这个错误:
额外数据:第1行第5499行 - 第1行第10973行(字符5499 - 10973)
但是当我第一次提出第二次请求时,我没有错误......