Ajouter des documents à l’index pour la recherche insensible à la casse en Java
Lorsque vous avez besoin d’une recherche insensible à la casse en Java qui trouve de manière fiable les informations quel que soit le mode de saisie des utilisateurs, la clé est d’ajouter des documents à un index tout en normalisant le texte. Dans ce tutoriel, nous parcourons la configuration de GroupDocs.Search pour Java afin que chaque document que vous indexez soit automatiquement mis en minuscules (ou transformé autrement) pendant l’indexation, garantissant des résultats insensibles à la casse sans logique supplémentaire au moment de la requête.
Réponses rapides
- Que signifie « ajouter des documents à l’index » ? Cela signifie charger les fichiers source dans une structure de données consultable afin qu’ils puissent être interrogés ultérieurement.
- Pourquoi utiliser le remplacement de caractères ? Il normalise chaque caractère — généralement en minuscules — afin que les recherches ignorent automatiquement les différences de casse.
- Ai-je besoin d’une licence ? Un essai gratuit suffit pour le développement ; une licence complète est requise pour les déploiements en production.
- Quelle version de Java est requise ? Java 8 ou plus récent ; la bibliothèque cible Java 11+ pour des performances optimales.
- Puis-je basculer vers une recherche sensible à la casse si nécessaire ? Oui — les options de recherche vous permettent d’activer ou désactiver la sensibilité à la casse par requête.
Qu’est‑ce que « ajouter des documents à l’index » dans GroupDocs.Search ?
Chargez vos fichiers source (PDF, DOCX, TXT, etc.) dans un index consultable afin que le moteur puisse les récupérer rapidement. Ajouter des documents à un index analyse chaque fichier, extrait le texte brut et le stocke dans une structure de données optimisée qui permet des recherches rapides.
Pourquoi activer le remplacement de caractères lors de l’indexation ?
Le remplacement de caractères convertit chaque caractère en son équivalent prédéfini — le plus souvent en minuscules — pendant la construction de l’index. Cela garantit que les variations de capitalisation, de diacritiques ou de symboles spécifiques à une locale n’affectent pas les résultats de recherche. En normalisant le texte au moment de l’indexation, le moteur peut faire correspondre les requêtes à un ensemble de tokens cohérent, offrant un comportement rapide et fiable insensible à la casse sans traitement supplémentaire à chaque recherche.
Prérequis
- GroupDocs.Search for Java version 25.4 ou plus récente (la bibliothèque prend en charge plus de 30 formats de fichiers et peut indexer des documents de plusieurs centaines de pages sans charger le fichier complet en mémoire).
- Java Development Kit (JDK) 8 ou ultérieur installé.
- Familiarité de base avec Maven (ou capacité à ajouter les JARs manuellement).
Configuration de GroupDocs.Search pour Java
Configuration Maven
Add the GroupDocs repository and dependency to your pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
Téléchargement direct
If you prefer not to use Maven, grab the latest JAR from the official site: GroupDocs.Search for Java releases.
Acquisition de licence
- Essai gratuit – téléchargez une licence d’essai pour commencer à expérimenter.
- Licence temporaire – demandez une licence de test prolongée via le portail GroupDocs.
- Licence complète – achetez une licence de production lorsque vous êtes prêt à mettre en production.
Initialisation de base (Créer l’index)
The following snippet creates an index folder and enables character replacements:
import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);
Index index = new Index(indexFolder, settings);
Guide d’implémentation
Activer le remplacement de caractères dans les paramètres d’index
Activating this feature tells the engine to replace characters while indexing, which is the core step for case‑insensitive behavior.
Étape 1 : Configurer IndexSettings
IndexSettings is the configuration object that controls how the index stores and processes text. By setting useCharacterReplacements to true, you turn on automatic lower‑casing (or any custom mapping you provide).
import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";
// Create an instance of IndexSettings and enable character replacement.
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);
// Initialize the index with these settings.
Index index = new Index(indexFolder, settings);
Configurer les remplacements de caractères
Map each character to its lower‑case counterpart (or any custom mapping you need).
Étape 2 : Définir et ajouter des paires de remplacement
The replacement dictionary holds pairs such as 'A' → 'a', 'É' → 'e', etc. Adding these pairs before indexing ensures every token is normalized.
import com.groupdocs.search.dictionaries.CharacterReplacementPair;
// Access existing replacements and clear them.
index.getDictionaries().getCharacterReplacements().clear();
// Create an array for new replacements.
CharacterReplacementPair[] characterReplacements = new CharacterReplacementPair[Character.MAX_VALUE + 1];
for (int i = 0; i < characterReplacements.length; i++) {
char originalChar = (char) i;
char replacementChar = Character.toLowerCase(originalChar);
characterReplacements[i] = new CharacterReplacementPair(originalChar, replacementChar);
}
// Add these replacements to the index's dictionary.
index.getDictionaries().getCharacterReplacements().addRange(characterReplacements);
Indexation des documents
Now that the index is ready, you can add documents to index from any folder.
import com.groupdocs.search.Index;
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
// Initialize the index and add documents.
Index index = new Index(indexFolder, settings);
index.add(documentFolder);
Effectuer une recherche sensible à la casse (Optionnel)
Étape 4 : Exécuter des recherches sensibles à la casse
SearchOptions configures query behavior, such as toggling case sensitivity, allowing fine‑grained control over how searches are performed.SearchOptions.setUseCaseSensitiveSearch(true) forces the engine to treat upper‑ and lower‑case characters as distinct during a specific query, overriding the default case‑insensitive behavior.
import com.groupdocs.search.Index;
import com.groupdocs.search.SearchOptions;
import com.groupdocs.search.results.SearchResult;
String query = "Promotion";
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);
// Perform the search.
Index index = new Index(indexFolder, settings);
SearchResult result = index.search(query, options);
Applications pratiques
- Campagnes marketing – Normalisez les noms de produits afin que les équipes commerciales puissent localiser les ressources sans se soucier de la casse.
- Support client – Alimentez les boîtes de recherche du service d’assistance qui renvoient le bon article que l’utilisateur tape « login » ou « Login ».
- Catalogues e‑commerce – Assurez-vous que les acheteurs trouvent les articles quel que soit le mode de saisie des titres de produits, améliorant ainsi les taux de conversion.
Considérations de performance
- Organiser les fichiers source – Une hiérarchie de dossiers bien structurée réduit le temps passé à analyser pendant l’étape ajouter des documents à l’index.
- Surveiller la mémoire – L’indexation de grands corpus peut consommer une RAM importante ; traiter les fichiers par lots de 500 – 1 000 éléments maintient l’utilisation du tas sous contrôle.
- Indexation asynchrone – Lorsqu’elle est prise en charge, exécutez l’indexation sur un thread d’arrière‑plan pour garder l’interface réactive et éviter de bloquer les opérations utilisateur.
Problèmes courants et dépannage
| Symptôme | Cause probable | Solution |
|---|---|---|
| Aucun résultat retourné pour un terme connu | Remplacements de caractères non activés | Vérifiez settings.setUseCharacterReplacements(true) et que le dictionnaire de remplacement contient les caractères nécessaires. |
| Erreur de mémoire insuffisante pendant l’indexation | Indexation de trop nombreux fichiers volumineux en même temps | Indexez par lots plus petits ou augmentez le tas JVM (-Xmx4g). |
| La recherche renvoie des résultats sensibles à la casse de façon inattendue | SearchOptions.setUseCaseSensitiveSearch(true) était activé | Supprimez-le ou réglez-le sur false pour le comportement par défaut insensible à la casse. |
| Le temps de chargement de l’index dépasse les attentes | Structure de dossiers inefficace ou SSD non utilisé | Réorganisez les fichiers, supprimez les documents inutilisés et stockez l’index sur un SSD rapide. |
| Les caractères spéciaux sont ignorés | Le dictionnaire de remplacement ne contient pas les entrées Unicode | Ajoutez des correspondances pour des caractères comme « é », « ß », « ø » vers leurs équivalents souhaités. |
Questions fréquentes
Q : Comment gérer les caractères spéciaux (par ex., « é », « ß ») lors de l’indexation ?
R : Incluez ces caractères dans votre dictionnaire de remplacement, en les mappant vers leurs équivalents ASCII ou en les laissant inchangés selon les exigences de recherche.
Q : Puis‑je limiter le remplacement de caractères à une langue spécifique ?
R : Oui. Créez un tableau de remplacement personnalisé qui ne contient que les caractères de la langue cible avant de l’ajouter au dictionnaire.
Q : Que faire si l’index met longtemps à se charger ?
R : Optimisez la structure des dossiers, supprimez les fichiers inutiles et stockez l’index sur un SSD haute vitesse. L’indexation incrémentielle réduit également la charge de chargement.
Q : Est‑il possible d’annuler les remplacements de caractères après l’indexation ?
R : Non. Les remplacements sont intégrés aux données indexées ; vous devez reconstruire l’index avec de nouveaux paramètres pour les modifier.
Q : Où trouver une documentation API plus détaillée ?
R : La documentation officielle et la référence API offrent des détails exhaustifs (voir les Ressources ci‑dessous).
Ressources
- Documentation
- Référence API
- Télécharger GroupDocs.Search
- Référentiel GitHub
- Forum d’assistance gratuit
- Informations sur la licence temporaire
Dernière mise à jour : 2026-07-31
Testé avec : GroupDocs.Search 25.4 for Java
Auteur : GroupDocs