Opérateurs booléens Java – Créer un index de recherche et recherche à facettes
Mettre en œuvre une expérience de recherche puissante en Java peut sembler intimidant, surtout lorsque vous devez create a search index Java qui prend en charge les boolean operators Java pour des requêtes à facettes et complexes. Dans ce tutoriel, nous allons parcourir la configuration de GroupDocs.Search for Java, la création d’un index, l’ajout de documents, et la conception à la fois de recherches simples à facettes et de requêtes multi‑critères sophistiquées utilisant la logique booléenne. À la fin, vous comprendrez comment exploiter les opérations content search Java, filename search Java, et même update index java pour garder vos données à jour.
Réponses rapides
- What is a faceted search? Une façon de filtrer les résultats par catégories prédéfinies telles que le type de fichier ou la date.
- How do I create a search index Java? Initialise un objet
Indexpointant vers un dossier et ajoute des documents. - Can I combine multiple criteria with boolean operators? Oui—utilisez des requêtes basées sur des objets ou des opérateurs booléens dans une requête texte.
- Do I need a license? Un essai gratuit suffit pour le développement ; une licence commerciale supprime les limites.
- Which IDE works best? Tout IDE Java (IntelliJ IDEA, Eclipse, NetBeans) fonctionne bien.
Qu’est‑ce que « create search index java » ?
Créer un index de recherche en Java signifie construire une structure de données interrogeable qui stocke les métadonnées et le contenu des documents, permettant une récupération rapide basée sur les requêtes des utilisateurs. Avec GroupDocs.Search, l’index est stocké sur disque, peut être mis à jour de façon incrémentielle, et prend en charge des fonctionnalités avancées comme le facettage, boolean operators Java, et la logique booléenne complexe.
Pourquoi utiliser GroupDocs.Search pour les requêtes à facettes et complexes ?
- Out‑of‑the‑box faceting – filtrer par champs tels que le nom de fichier, la taille ou les métadonnées personnalisées.
- Rich query language – combiner des requêtes texte, phrase et champ en utilisant les opérateurs AND/OR/NOT (le cœur des boolean operators java).
- Scalable performance – indexe des millions de documents tout en maintenant une latence faible.
- Pure Java – aucune dépendance native, fonctionne sur toute plateforme exécutant JDK 8+.
- Easy index maintenance – appelez
index.update()pour update index java après l’ajout ou la suppression de fichiers.
Prérequis
Avant de commencer, assurez‑vous d’avoir les éléments suivants :
- JDK 8 ou plus récent installé et configuré dans votre IDE.
- Maven (ou Gradle) pour la gestion des dépendances.
- GroupDocs.Search for Java ≥ 25.4.
- Familiarité de base avec les concepts OOP Java et la structure d’un projet Maven.
Configuration de GroupDocs.Search pour Java
Configuration Maven
Ajoutez le dépôt et la dépendance à votre fichier 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
Sinon, téléchargez le JAR le plus récent depuis la page officielle des releases :
GroupDocs.Search for Java releases
Acquisition de licence
Pour débloquer toutes les fonctionnalités :
- Free trial – parfait pour le développement et les tests.
- Temporary evaluation license – prolonge les limites de l’essai.
- Commercial license – supprime toutes les restrictions pour une utilisation en production.
Initialisation et configuration de base
Le fragment suivant montre comment create a search index Java en instanciant la classe Index :
import com.groupdocs.search.Index;
public class SearchSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
// Create an instance of Index – this creates the on‑disk index
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search initialized successfully!");
}
}
Avec l’index prêt, nous pouvons passer aux requêtes à facettes et complexes du monde réel.
Comment utiliser boolean operators java – Recherche simple à facettes
La recherche à facettes permet aux utilisateurs finaux de restreindre les résultats en sélectionnant des valeurs parmi des catégories prédéfinies (facettes). Vous trouverez ci‑dessous un guide étape par étape.
Étape 1 : Créer un index
Tout d’abord, pointez le Index vers un dossier où les fichiers d’index seront stockés.
import com.groupdocs.search.Index;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
Index index = new Index(indexFolder);
Étape 2 : Ajouter des documents à l’index
Indiquez à GroupDocs.Search où se trouvent vos documents sources. Tous les types de fichiers pris en charge (PDF, DOCX, TXT, etc.) seront indexés automatiquement.
import com.groupdocs.search.Index;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
// Adding documents to the index
index.add(documentsFolder);
Étape 3 : Effectuer une recherche dans le champ Content avec une requête texte
Une requête texte rapide filtre par le champ content. La syntaxe content: Pellentesque limite les résultats aux documents contenant le mot Pellentesque dans le texte du corps.
import com.groupdocs.search.results.SearchResult;
String query1 = "content: Pellentesque";
SearchResult result1 = index.search(query1);
// Output search results
System.out.println("Documents found (query 1): " + result1.getDocumentCount());
Étape 4 : Effectuer une recherche en utilisant une requête objet
Les requêtes basées sur des objets offrent un contrôle granulaire. Ici, nous construisons une requête de mot, l’enveloppons dans une requête de champ, puis l’exécutons.
import com.groupdocs.search.SearchQuery;
import com.groupdocs.search.options.CommonFieldNames;
SearchQuery wordQuery = SearchQuery.createWordQuery("Pellentesque");
SearchQuery fieldQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content, wordQuery);
SearchResult result2 = index.search(fieldQuery);
// Output search results
System.out.println("Documents found (query 2): " + result2.getDocumentCount());
Comment utiliser boolean operators java – Recherche de requêtes complexes
Les requêtes complexes combinent plusieurs champs, des opérateurs booléens et des recherches de phrases. Cela est idéal pour des scénarios comme les filtres e‑commerce ou la recherche de documents juridiques.
Étape 1 : Créer un index pour les requêtes complexes
Réutilisez la même structure de dossiers ; vous pouvez partager l’index entre les scénarios simples et complexes.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/ComplexQuery";
Index index = new Index(indexFolder);
index.add(documentsFolder);
Étape 2 : Effectuer une recherche avec une requête texte
La requête suivante recherche les fichiers nommés lorem et ipsum ou le contenu contenant l’une des deux phrases exactes.
import com.groupdocs.search.results.SearchResult;
String query1 = "(filename: (lorem AND ipsum)) OR (content: (\"lectus eu aliquam\" OR \"dignissim turpis\"))";
SearchResult result1 = index.search(query1);
// Output search results
class SearchResult {
public int getDocumentCount() {
// Implementation here
return 0; // Placeholder
}
}
System.out.println("Documents found (complex text query): " + result1.getDocumentCount());
Étape 3 : Effectuer une recherche avec une requête objet
La construction basée sur des objets reflète la requête textuelle mais offre la sécurité de type et l’assistance de l’IDE.
import com.groupdocs.search.SearchQuery;
SearchQuery word6Query = SearchQuery.createWordQuery("lorem");
SearchQuery word7Query = SearchQuery.createWordQuery("ipsum");
// Constructing AND, OR queries for filename field
SearchQuery andQuery = SearchQuery.createAndQuery(word6Query, word7Query);
SearchQuery filenameQuery = SearchQuery.createFieldQuery(CommonFieldNames.FileName, andQuery);
// Content search using OR query with phrases
SearchQuery phrase1Query = SearchQuery.createPhraseSearchQuery("lectus", "eu", "aliquam");
SearchQuery phrase2Query = SearchQuery.createPhraseSearchQuery("dignissim", "turpis");
SearchQuery contentQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content,
SearchQuery.createOrQuery(phrase1Query, phrase2Query));
// Final root query combining filename and content queries
SearchQuery rootQuery = SearchQuery.createOrQuery(filenameQuery, contentQuery);
SearchResult result2 = index.search(rootQuery);
// Output search results
System.out.println("Documents found (complex object query): " + result2.getDocumentCount());
Applications pratiques des recherches à facettes et complexes
| Scénario | Comment le facettage aide | Exemple de requête |
|---|---|---|
| E‑commerce catalog | Filtrer par catégorie, prix, marque | category: Electronics AND price:[100 TO 500] |
| Legal document repository | Restreindre par numéro de dossier, juridiction | caseNumber: 2023-045 AND jurisdiction: "California" |
| Research archives | Combiner auteur, année de publication, mots‑clés | (author: "Doe") AND (year: 2022) AND (keywords: "machine learning") |
| Enterprise intranet | Rechercher par type de fichier et département | filetype: pdf AND department: HR |
Pièges courants et dépannage
- Empty results – Vérifiez que les documents ont été ajoutés avec succès (
index.getDocumentCount()peut aider). - Stale index – Après avoir ajouté ou supprimé des fichiers, appelez
index.update()pour update index java et garder l’index synchronisé. - Incorrect field names – Utilisez les constantes
CommonFieldNames(Content,FileName, etc.) pour éviter les fautes de frappe. - Performance bottlenecks – Pour de très grandes collections, envisagez d’activer
index.setCacheSize()ou d’utiliser un SSD dédié pour le dossier d’index. - Missing highlights – Pour highlight search results java, récupérez les fragments correspondants via
SearchResult.getFragments()(non montré ici mais disponible dans l’API).
Questions fréquentes
Q : Puis‑je utiliser GroupDocs.Search avec Spring Boot ?
R : Absolument. Ajoutez la dépendance Maven, configurez l’index comme bean Spring, et injectez‑le partout où vous avez besoin de capacités de recherche.
Q : La bibliothèque prend‑elle en charge les champs de métadonnées personnalisés ?
R : Oui – vous pouvez ajouter des champs définis par l’utilisateur lors de l’indexation puis les utiliser pour le facettage.
Q : Quelle taille maximale peut atteindre l’index ?
R : L’index est basé sur le disque et peut gérer des millions de documents ; assurez‑vous simplement d’avoir suffisamment d’espace de stockage et de surveiller les paramètres de cache.
Q : Existe‑t‑il un moyen de classer les résultats par pertinence ?
R : GroupDocs.Search attribue automatiquement un score aux correspondances ; vous pouvez récupérer le score via SearchResult.getDocument(i).getScore().
Q : Que se passe‑t‑il si j’indexe des PDF chiffrés ?
R : Fournissez le mot de passe lors de l’ajout du document : index.add(filePath, password).
Conclusion
À présent, vous devriez être à l’aise pour create a search index Java avec GroupDocs.Search, ajouter des documents, et concevoir à la fois des requêtes simples à facettes et des recherches booléennes sophistiquées en utilisant boolean operators java. Ces capacités vous permettent d’offrir des expériences de recherche rapides, précises et conviviales sur un large éventail d’applications—des plateformes e‑commerce aux bases de connaissances d’entreprise.
Prêt pour l’étape suivante ? Explorez les fonctionnalités avancées de GroupDocs.Search telles que highlighting, suggestions, et real‑time indexing pour renforcer davantage la puissance de recherche de votre application.
Dernière mise à jour : 2026-02-16
Testé avec : GroupDocs.Search 25.4 for Java
Auteur : GroupDocs