0

我在我的项目中使用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人次,工作正常。我不知道为什么会发生这种情况,并且我已经花了半天的时间试图寻找解决方案。有任何想法吗?

+0

“调试模式”是什么意思? – MrName

+0

我正在使用VS代码并进行调试。如果我处于调试模式,那么它工作。如果我运行python 那么它不是。真的很奇怪 – Dimitris

+0

我对这个IDE并不是很了解,但是你的连接定义是否可以在你的IDE中设置?这可能值得用'pdb'在控制台上完成。 – MrName

回答

0

问题在于搜索是在索引测试数据之后立即进行的。潜在的Elasticsearch没有足够的时间对数据进行索引和搜索,结果我的搜索结果为零。如果索引发生在与搜索不同的时间点,那么它将按预期工作。这种行为纯粹是我们当前运行的早期测试的结果。

相关问题