2

私はこのようなコードをいくつか持っています

from elasticsearch import Elasticsearch

client = Elasticsearch(hosts = [myhost])
try:
    results = es_client.search(
        body = {
            'query' : {
                'bool' : {
                    'must' : {
                        'term' : {
                            'foo' : 'bar',
                            'hello' : 'world'
                        }
                    }
                }
            }
        },
        index = 'index_A,index_B',
        size = 10,
        from_ = 0
    )
except Exception as e:
    ## my code stops here, as there is an exception
    import pdb
    pdb.set_trace()

例外の調査

SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;

そしてさらに下へ

Parse Failure [Failed to parse source [{"query": {"bool": {"must": {"term": {"foo": "bar", "hello": "world"}}}}}]]]; nested: QueryParsingException[[index_A] [bool] query does not support [must]];

スタック トレースは巨大だったので、その一部を取得しましたが、主なエラーは、少なくともクエリを作成した方法では、「must」がサポートされていないようです。

クエリを作成する際のガイダンスとして、これこれを使用していました。

より完全なスタック トレースを投稿できますが、「search」メソッド内の「body」パラメーター内で作成した非常に明白なエラーを誰かが確認できることを期待していました。

Python API のクエリ本体を構築する限り、私が明らかに間違ったことを誰かが見ることができますか?

4

1 に答える 1