0

私はPythonでelasticsearch-dslパッケージを使用しています。私は以下から分かるように非常に単純な検索クエリを持っている:私は、デバッグモードでそれを実行するが、私は、コンソールからコードを実行したとき、私は常に0ヒットを得れば正常に動作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

「デバッグモード」とはどういう意味ですか? – MrName

+0

私はVSコードを使用してこれをデバッグしています。私がデバッグモードに入っていれば動作します。私がPython を実行すると、そうではありません。本当に奇妙な – Dimitris

+0

私はそのIDEについてよく分かっていませんが、接続定義が何らかの形でIDEに設定されている可能性はありますか?これを 'pdb'でコンソール上で実行する価値があるかもしれません。 – MrName

答えて

0

問題は、テストデータのインデックスを作成した直後に検索が行われていたことでした。潜在的にElasticsearchはデータを索引付けして検索するのに十分な時間がありませんでした。結果として、ヒット率はゼロになりました。検索と異なる時点でインデックスが行われた場合、インデックスはすべて期待通りに機能します。この動作は、純粋に現在実行中の初期テストの結果です。

関連する問題