2016-03-28 21 views
0

Belgedeki değerlerim var.Elasticsearch Dizi

"dönüş kodu": [ "0", "0"]
"dönüş kodu": Ben 0,0 arama yaparsanız [ "0", "1"]

o 1 belgeyi dönmelidir ve ben ise 0,1 ara sonra 2. belge dönmelidir. Aşağıdaki sorguyu deniyorum ama doğru sonuç vermiyor. Sonuç tüm dizi elemanları ile eşleşmelidir.

GET test/_search 
{ 
"query": { 
"filtered": { 
    "query": { 
    "match_all": {} 
    }, 
    "filter": { 
    "bool": { 
     "must": [ 
     { 
      "terms": { "ReturnCode":[ "0","1"] } 
     } 
     ] 

    } 
    } 
} 
} 
}  

Teşekkür

cevap

0

Şartlar sorgu Sen Cevabınız için

+0

teşekkür yukarıdaki gibi zorunluluk maddesi içindeki bireysel süreli sorguları oluşturmak için gereken bir OR sorgusu

GET test/_search { "query": { "filtered": { "query": { "match_all": {} }, "filter": { "bool": { "must": [ { "term": { "ReturnCode":"0"} }, { "term": { "ReturnCode":"1"} } ] } } } } } 

olduğunu. 0,0 ile arama yapmaya çalıştığımda 0.1 kaydı da çekiyor. Ben 0,1 ile ararken, doğru 1 kayıt çeker. neden biliyor musun ? – Rakesh

+0

returnCode dizgisi olduğundan, alan için varsayılan analizör 'standart analizör'dür. '0.1', '0' ve '1' olarak belirlenir. Bu nedenle, hem 0 hem de 1 ile eşleşir. – Rahul

+0

Bunu önlemek için, ya sayısal bir alan olarak eşleştirin ya da eşlemeyi not_analyzed olarak ayarlayın ya da analizörü – Rahul