Ich habe Probleme mit der Migration von elastischer Suche 1.5 zu 5.1. Es folgt meine Elasticsearch - 1.5 Abfrage:Aggregation, Abfragekontext und Filter Kontext funktioniert nicht in Elasticsearch 5.1
{
"_source":["_id","spotlight"],
"query":{
"filtered":{
"filter":{
"and":[
{"term":{"gender":"female"}},
{"range":{"lastlogindate":{"gte":"2016-10-19 12:39:57"}}}
]
}
}
},
"filter":{
"and":[
{"term":{"maritalstatus":"1"}}
]
},
"sort":[{"member2_dummy7":{"order":"desc"}}],
"size":"0",
"aggs": {
"maritalstatus": {
"filter": {},
"aggs" : {
"filtered_maritalstatus": {"terms":{"field":"maritalstatus","size":5000}}
}
}
}
}
Diese Abfrage mich richtig doc_count in Aggregationen gibt. Dieser doc_count wird über die vom Abfragekontext zurückgegebene Ergebnismenge berechnet und ignoriert den Filterkontext.
Ich habe 5.1 in Elasticsearch gleiche Abfrage geschrieben:
{
"_source":["_id","spotlight"],
"query":{
"bool":{
"must":[
{"term":{"gender":"female"}},
{"range":{"lastlogindate":{"gte":"2016-10-19 12:39:57"}}}
],
"filter":{
"bool":{
"must":[
{"term":{"maritalstatus":"1"}}
]
}
}
}
},
"sort":[{"member2_dummy7":{"order":"DESC"}}],
"size":"0",
"aggs": {
"maritalstatus": {
"filter": {},
"aggs" : {
"filtered_maritalstatus": {"terms":{"field":"maritalstatus","size":5000}}
}
}
}
}
Aber in Elasticsearch 5.1, es ist mir falsch doc_count in Aggregation zurück. Ich denke, es nimmt Filter im Abfragekontext und folglich gibt es falsches doc_cout zurück. Kann mir jemand sagen, wie man Abfrage und Filter in der elastischen Suche 5.1 richtig trennt?
Überprüfen Sie zuerst Begriff Abfrage, die Sie suchen 'weiblich 'und in 5.1 hast du nach' Female' gesucht. Es spielt eine große Rolle in der Term-Abfrage. Ändern Sie also Ihre Termabfrage in '5.1' von' Female' nach 'female' und überprüfen Sie die Ergebnisse. Sehen Sie sich auch den Zeitstempel an. Die Abfrage in '5.1' ist 5 Sekunden größer als die Abfrage in 1.5. – avr