Bir Elasticsearch endeksini bir zaman aralığına göre sorgulamaya çalışıyorum ve ayrıca bir terimin belirli bir dize değeriyle eşleşmesini sağlamaya çalışıyorum.Bir aralık ve bir terim eşleşme json biçimini birleştirerek Elasticsearch sorgulama
ben oldukça basit görünüyor, bu sorguyu çalıştık: Bu durumda
{
"query" : {
"bool": {
"must": [
{
"match": {
"method": "/customer/help"
}
},
{
"range" : {
"startTime": {
"from" : "2015-10-20T13:00-04:00",
"to" : "2015-10-20T14:00-04:00"
}
}
}
]
}
}
}
, ben de "/customer/help"
yöntemi değerine sahip belirli bir zaman aralığında belgelerin hepsini istiyorum.
Sonuçlarımda, zaman aralığı içinde sonuçlar alıyorum, ancak "method"
alanı için yalnızca "/customer/help"
ile sonuç istediğimde çeşitli değerler içeren belgeler alıyorum. eşlemenizde olarak
Beklenen "müşteri/yardıma" sahip sonuçlarla birlikte "müşteri" veya "yardıma" sahip "yöntem" alan değerleri için çeşitli değerler var mı? Bu durumda sorun, Elasticsearch'in alanı analiz etmesidir (muhtemelen haritalamayı belirlemediyseniz Standart analizör). Gelecekte bu alan için analiz cihazını kullanmayı düşünmüyorsanız, o alan için "index": "not_analyzed" özelliğini ayarlayabilirsiniz. – eemp
Diğer değerlerin müşterisi var başka>> ancak garip olan şu ki, aralık dışında olduğum bir sorguyu ayrı olarak çalıştırıyorsam, yalnızca method = "customer/help" sonucunu elde ederim. –
Boyut param için ne geçiyorsunuz? Sadece bir tesadüf mi ve aralık sorgusunu kestiğinde sadece tüm sonuçların bir alt kümesini görüyor musunuz? – eemp