2017-03-15 7 views
0

私の目標は、1つのフィールドで最大値を見つけ出し、見つかったドキュメントに別のフィールドを印刷することです。 これまでの私のクエリ:弾性検索クエリ - 特定のフィールドを他のフィールドに基づいて印刷する

{ 
     "fields": ["text"], //NOT WORKING 
    "query": { 
    "query_string": { 
     "query": "_type:bmw AND _exists_:car_type", 
     "analyze_wildcard": True 
    } 
    }, 
    "size": 0, 
    "aggs": { 
    "2": { 
     "terms": { 
     "field": "compound", 
     "size": 5, 
     "order": { 
      "2-orderAgg": "desc" 
     } 
     }, 
     "aggs": { 
     "2-orderAgg": { 
      "max": { 
      "field": "compound" 
      } 
     } 
     } 
    } 
    } 
} 

結果は

'buckets': [{'doc_count': 1, '2-orderAgg': {'value': 0.8442}, 'key': 0.8442}, {'doc_count': 1, '2-orderAgg': {'value': 0.7777}, 'key': 0.7777}, {'doc_count': 1, '2-orderAgg': {'value': 0.7579}, 'key': 0.7579}, {'doc_count': 1, '2-orderAgg': {'value': 0.6476}, 'key': 0.6476}, {'doc_count': 1, '2-orderAgg': {'value': 0.6369}, 'key': 0.6369}] 

は、今私は、文書のようにcompound値0.8442が含まれており、中にtextフィールドを印刷する必要があります..あなたのアドバイスをありがとうです。

答えて

0

小さなワークラードでこれを達成しました。それはかなりではありませんが、最終的には私が望むものを得ることができます。 最初に、最初のクエリの応答を使用しました。それらの辞書からすべてkeysを取得し、特定のドキュメントのidを見つけるために新しいクエリを実行します。このidフィールド

for y in res1: 
    res3 = es.search(index='indexname', body={ 
         "size" : 1, 
         "query": { 
         "bool": { 
          "must": [ 
          { 
           "match": { 
           "id_str": y['key'] 
           } 
          } 
          ] 
         } 
         } 
        }) 
        for x in res3['hits']['hits']: 
         print (x['_source']['text']) 

で応答し、検索ドキュメントを反復処理よりも

{ 
    "size": 0, 
    "query": { 
    "query_string": { 
     "analyze_wildcard": True, 
     "query": "_type:bmw AND compound:"+str(0.8442)+" AND _exists_:car_type" 
    } 
    }, 
    "aggs": { 
    "3": { 
     "terms": { 
     "field": "id_str", 
     "size": 20, 
     "order": { 
      "_count": "desc" 
     } 
     } 
    } 
    } 
} 

今私が望んテキストです

Diamond stitch leather is a great addition to any custom vehicle. Prices start from 2k! @bmw i8 getting under car... 

ある結果。

関連する問題