J'essaye de trier la liste de Person par leur prénom. en utilisant la déclaration ouverte org.springframework.data.domain.Sort.Order.Order.ignoreCase()
comme indiqué ci-dessous.Spring Elastic Search ne tient pas compte de la casse avec Order.ignoreCase() ne fonctionne pas
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;
Order sortOrfer = new Order(Sort.Direction.ASC, "firstName").ignoreCase();
Dans le référentiel ES, j'ai un nom de personne avec différents cas. par exemple.
- Sachin
- ajai
- Dhoni
J'attend les données triées comme indiqué ci-dessous.
- ajai
- Dhoni
- Sachin
Mais les données sont triées comme ci-dessous, ce qui est correct (pas prévu),
- Dhoni
- Sachin
- ajai
la cause de ce comportement est que pour ajai
la première lettre est dans un petit cas. Selon les cas de ES le tri insensible est pris en charge, Quelqu'un peut-il me dire comment puis-je résoudre ce problème?
Quel est le mappage pour firstName? Avez-vous lu cette section sur le tri? https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-fields.html Nous avons récemment réindexé un champ pour qu'il soit insensible à la casse pour le tri en appliquant un analyseur en minuscules au champ brut. – shawnjohnson
que voulez-vous dire par cartographie? 'spring-es' fournit' Order.ignoreCase() 'qui devrait fonctionner sans appliquer d'analyseur en minuscules. – Jobin