Salut,
Nous sommes en pleine migration de ES 1.7.6 vers 2.4.6. Ce fut un peu rude mais heureusement nos tests ont permis de débroussailler la plupart des sujets.
Plus qu'un test à faire passer, courage
Mais ce test semble soulever une question douloureuse.
Auparavant en version 1.7.6, il était possible d'utiliser une aggrégation terms de cette facon :
"keywords" : {
"terms" : {
"field" : "keyWords",
"size" : 20,
"min_doc_count" : 3,
"include" : {
"pattern" : "\\Qpresta\\E.*",
"flags" : 2
}
}
}
Cela permettait de spécifier qu'on souhaitait une aggrégation de type terme mais en incluant ou excluant uniquement les termes respectant un pattern donné. Le flag 2 indiquait "non sensible à la casse".
En 1.7.6 par exemple cette aggrégation me renvoie cela:
> "aggregations": {
> "completelyFilteredAggregation": {
> "doc_count": 1099,
> "keywords": {
> "doc_count_error_upper_bound": 0,
> "sum_other_doc_count": 0,
> "buckets": [
> {
> "key": "Prestashop",
> "doc_count": 542
> }
> ]
> }
> }
> }
Cela a bien ignoré la casse.
En 2.4.6, cette notation ne marche plus. Le Flag semble ignoré.
J'ai testé également avec une syntaxe plus simple :
"aggregations" : {
"keywords" : {
"terms" : {
"field" : "freelanceProfile.profile.infos.keyWords",
"size" : 20,
"min_doc_count" : 1,
"include" : {
"pattern" : "presta(.*)", "flags" : 2
}
}
}
Ca semble lié à ce "breaking change" : https://www.elastic.co/guide/en/elasticsearch/reference/2.3/breaking_20_aggregation_changes.html#_including_excluding_terms
Ca semble cependant un peu brutal. J'ai peut être mal lu. Cette fonctionnalité a vraiment été supprimé ?
a+