elasticsearch-dsl搜索仅在调试模式下工作
问题描述:
我在我的项目中使用Python中的elasticsearch-dsl软件包。我有一个非常简单的搜索查询中可以看到下面:elasticsearch-dsl搜索仅在调试模式下工作
s = Search(using=connections.get_connection(), index= 'registry', doc_type=['storage_doc']).params(request_timeout=60)
s.filter("match", postcode="SW1").query("match", forename="Brendan")
response = s.execute(ignore_cache=True)
print(response.success())
print(response.took)
print(response.to_dict())
print('Total %d hits found.' % response.hits.total)
,如果我在调试模式下运行,但是当我从控制台运行的代码,我总是得到0人次,工作正常。我不知道为什么会发生这种情况,并且我已经花了半天的时间试图寻找解决方案。有任何想法吗?
答
问题在于搜索是在索引测试数据之后立即进行的。潜在的Elasticsearch没有足够的时间对数据进行索引和搜索,结果我的搜索结果为零。如果索引发生在与搜索不同的时间点,那么它将按预期工作。这种行为纯粹是我们当前运行的早期测试的结果。
“调试模式”是什么意思? – MrName
我正在使用VS代码并进行调试。如果我处于调试模式,那么它工作。如果我运行python那么它不是。真的很奇怪 –
Dimitris
我对这个IDE并不是很了解,但是你的连接定义是否可以在你的IDE中设置?这可能值得用'pdb'在控制台上完成。 – MrName