2015-07-22 13 views
5

böyle bir dizin üzerinden bir sorgu çalıştırdığınızda:Elastik Arama - json yanıtından indeksi ve türünü hariç

{ 
    "_source":["bar"] , "size":100, 
    "query": { 
     "match_all": {} 
    }, 
    "filter": { 
     "type" : { 
      "value" : "foo" 
     } 
    } 
} 

tepki endeksi, tipi vb içerir Ama zaten çünkü ben indeksi ve türünü bilmek belirtildi. Bu bilgi sadece json verilerinin boyutunu şişiriyor. Bunları yanıttan çıkarmanın bir yolu var mı?

Bu

ne alıyorum: İstediğim böyle bir şey,

{ 
"took": 31, 
"timed_out": false, 
"_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
"hits": { 
    "total": 364024, 
    "max_score": 1, 
    "hits": [ 
      { 
     "_index": "foo_bar", 
     "_type": "foo", 
     "_id": "asdjj123123", 
     "_score": 1, 
     "_source": { 
      "bar": "blablablabla" 
    } 
    } 
,... 

yani tipi, skor, endeks olmadan yanıtı: ES 1.6 itibariyle

{ 
"took": 31, 
"timed_out": false, 
"_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
"hits": { 
    "total": 364024, 
    "max_score": 1, 
    "hits": [ 
      { 
     "_id": "asdjj123123", 
     "_source": { 
      "bar": "blablablabla" 
    } 
    } 
,... 

cevap

7

Evet, response filtering kullanın ve sorgudaki yalnızca filter_path parametresini kullanarak yanıtta yalnızca gerekenleri numaralandırın:

curl -XGET 'localhost:9200/foo_bar/foo/_search?pretty&filter_path=hits.total,hits.max_score,hits.hits._id,hits.hits._source' 
+1

URL'de yer almak yerine, nasıl bir post gövdeye filter_path ekleyebilirim? – benbo

+2

Yapmanız gerekmez, sorgunuz için bir beden belirtebilir ve yine de URL'de bir 'filter_path 'öğesi sağlayabilirsiniz. – Val

İlgili konular