5

このサンプルを作成したい

GET /my_store/products/_search
{
    "query" : {
        "filtered" : { 
            "query" : {
                "match_all" : {} 
            },
            "filter" : {
                "term" : { 
                    "price" : 20
                }
            }
        }
    }
}

Pythons elasticsearch_dsl を使用します。

import elasticsearch as ES
import elasticsearch_dsl as dsl
from elasticsearch_dsl import Search

client = ES.Elasticsearch() # i'm using the localhost default client
s = Search(using = client, index = "my_store") 

わかりました、これはホスト、ポート、およびインデックスを指定します。

s = s.filter("term", price = 20)
results = s.execute().to_dict()

しかし、文書タイプが「製品」であることを指定するにはどうすればよいですか? Search() 関数には引数が必要なようです。

同様の質問で、同じクエリを実行したいとしますが、インデックス "my_store" と "her_store" で実行したいとします。これを指定するにはどうすればよいですか?

4

2 に答える 2

5

こんな感じで使えます。

s = Search(using=client, index=('my_report', 'my_store'), doc_type=('products'))

インデックス パラメータは、、、listtupleを取りstringます。

検索コンストラクターで見ることができます

if isinstance(index, (tuple, list)):
    self._index = list(index)
elif index:
    self._index = [index]
于 2015-11-18T02:38:43.603 に答える