2012-02-01 29 views
5

Filtrelenmiş arama bir alt nesne alanında ElasticSearch içinde nasıl çalışırım?Elasticsearch filtrelenmiş nesne arama sonucu

{_id: 000, merchant: "merchant_1", email: "[email protected]"}

Arama sorgusu:

"query": { 
    "filtered": { 
     "filter": { "term": { "data.merchant": "merchant_1"} }, 
     "query": { 
      "query_string": {"query": "hello"} } 
     } 
    } 
} 

doesn' Örneğin, benim belge id ve veri benim veritabanında saklanan nasıl bir JSON dizisi olan data alana sahip t bir şey döndürmek, ancak sadece sorgu_string hello ile bir sorgulama yapmak doğru satırları döndürür. "data.merchant" =>"merchant" öğesinin değiştirilmesi, hiçbir şeyi de değiştirmez.

Burada yanlış bir şey yapıyorum?

Güncelleme: Sadece çalışmış bir boolean sorgu kullanarak sona erdi.

cevap

0
"query": { 
    "filtered": { 
     "filter": { "term": { "data.merchant": "merchant_1"} }, 
     "query": { 
      "query_string": { 
       "default_field": "_all", 
       "query": "hello" 
      } 
     } 
    } 
} 

Bu, sizin durumunuz için çalışmalıdır.