Boolean Operators Java – Arama Dizini Oluşturma ve Faceted Arama
Java’da güçlü bir search experience (arama deneyimi) oluşturmak, özellikle create a search index Java (arama dizini oluşturma) ve boolean operators Java (boolean operatörleri) destekleyen faceted ve karmaşık sorgular gerektiğinde göz korkutucu olabilir. Bu öğreticide GroupDocs.Search for Java kurulumunu, bir dizin oluşturmayı, belgeleri eklemeyi ve hem basit faceted aramaları hem de Boolean mantığını kullanan çok‑kriterli sorguları adım adım inceleyeceğiz. Sonunda content search Java, filename search Java ve update index java (dizin güncelleme) işlemlerini nasıl kullanacağınızı anlayacaksınız.
Quick Answers
- Faceted arama nedir? Dosya türü veya tarih gibi önceden tanımlanmış kategorilere göre sonuçları filtrelemenin bir yoludur.
- Bir search index Java nasıl oluşturulur? Bir klasöre işaret eden bir
Indexnesnesi başlatın ve belgeleri ekleyin. - Boolean operatörleriyle birden fazla kriteri birleştirebilir miyim? Evet—nesne‑tabanlı sorgular veya metin sorgusunda Boolean operatörleri kullanın.
- Lisans gerekli mi? Geliştirme için ücretsiz deneme sürümü yeterlidir; ticari lisans sınırlamaları kaldırır.
- Hangi IDE en iyisidir? Herhangi bir Java IDE (IntelliJ IDEA, Eclipse, NetBeans) sorunsuz çalışır.
“create search index java” nedir?
Java’da bir arama dizini oluşturmak, belge meta verilerini ve içeriğini depolayan, kullanıcı sorgularına hızlı erişim sağlayan bir veri yapısı inşa etmek anlamına gelir. GroupDocs.Search ile dizin disk üzerinde bulunur, artımlı olarak güncellenebilir ve faceting, boolean operators Java, karmaşık Boolean mantığı gibi gelişmiş özellikleri destekler.
Faceted ve karmaşık sorgular için GroupDocs.Search neden kullanılmalı?
- Out‑of‑the‑box faceting – dosya adı, boyut veya özel meta veri gibi alanlara göre filtreleme.
- Zengin sorgu dili – AND/OR/NOT operatörlerini ( boolean operators java ’nın çekirdeği) kullanarak metin, ifade ve alan sorgularını karıştırma.
- Ölçeklenebilir performans – milyonlarca belgeyi düşük gecikme süresiyle indeksler.
- Saf Java – yerel bağımlılık yok, JDK 8+ çalışan her platformda çalışır.
- Kolay dizin bakımı – dosya ekleyip kaldırdıktan sonra
index.update()çağırarak update index java (dizin güncelleme) yapabilirsiniz.
Prerequisites
İlerlemeye başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- JDK 8 veya daha yeni bir sürüm, IDE’nizde kurulu ve yapılandırılmış.
- Maven (veya Gradle) bağımlılık yönetimi için.
- GroupDocs.Search for Java ≥ 25.4.
- Java OOP kavramları ve Maven proje yapısı hakkında temel bilgi.
GroupDocs.Search for Java Kurulumu
Maven Setup
pom.xml dosyanıza depo ve bağımlılığı ekleyin:
<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>
Direct Download
Alternatif olarak, resmi sürüm sayfasından en son JAR dosyasını indirin:
GroupDocs.Search for Java releases
License Acquisition
Tam işlevselliği açmak için:
- Free trial – geliştirme ve test için idealdir.
- Temporary evaluation license – deneme sınırlarını uzatır.
- Commercial license – üretim kullanımında tüm kısıtlamaları kaldırır.
Basic Initialization and Setup
Aşağıdaki kod parçacığı, Index sınıfını örnekleyerek create a search index Java (arama dizini oluşturma) işlemini gösterir:
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!");
}
}
Dizin hazır olduğunda, gerçek dünyada faceted ve karmaşık sorgulara geçebiliriz.
How to use boolean operators java – Simple Faceted Search
Faceted arama, son kullanıcıların önceden tanımlanmış kategorilerden (facet) değerler seçerek sonuçları daraltmasını sağlar. Aşağıda adım adım bir yürütme bulabilirsiniz.
Step 1: Create an Index
İlk olarak, Indexi dizin dosyalarının saklanacağı bir klasöre yönlendirin.
import com.groupdocs.search.Index;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
Index index = new Index(indexFolder);
Step 2: Add Documents to the Index
GroupDocs.Search’e kaynak belgelerinizin nerede olduğunu söyleyin. Desteklenen tüm dosya türleri (PDF, DOCX, TXT vb.) otomatik olarak indekslenir.
import com.groupdocs.search.Index;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
// Adding documents to the index
index.add(documentsFolder);
Step 3: Perform a Search in the Content Field with a Text Query
Hızlı bir metin sorgusu, content alanına göre filtre uygular. content: Pellentesque sözdizimi, gövde metninde Pellentesque kelimesi geçen belgelerle sonuçları sınırlar.
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());
Step 4: Perform a Search Using an Object Query
Nesne‑tabanlı sorgular, ince ayar kontrolü sağlar. Burada bir kelime sorgusu oluşturup bir alan sorgusuna sarıyor ve çalıştırıyoruz.
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());
How to use boolean operators java – Complex Query Search
Karmaşık sorgular, birden fazla alanı, Boolean operatörlerini ve ifade aramalarını birleştirir. Bu, e‑ticaret filtreleri veya hukuki belge araştırmaları gibi senaryolar için idealdir.
Step 1: Create an Index for Complex Queries
Aynı klasör yapısını yeniden kullanın; dizini hem basit hem de karmaşık senaryolar arasında paylaşabilirsiniz.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/ComplexQuery";
Index index = new Index(indexFolder);
index.add(documentsFolder);
Step 2: Perform a Search with a Text Query
Aşağıdaki sorgu, lorem ve ipsum adındaki dosyaları veya iki tam ifadeden birini içeren içerikleri arar.
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());
Step 3: Perform a Search with an Object Query
Nesne‑tabanlı yapı, metinsel sorguya benzer ancak tip güvenliği ve IDE desteği sunar.
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());
Practical Applications of Faceted & Complex Searches
| Senaryo | Faceting Nasıl Yardımcı Olur? | Örnek Sorgu |
|---|---|---|
| E‑commerce kataloğu | Kategori, fiyat, marka gibi alanlarda filtreleme | category: Electronics AND price:[100 TO 500] |
| Hukuki belge deposu | Dava numarası, yargı bölgesi ile daraltma | caseNumber: 2023-045 AND jurisdiction: "California" |
| Araştırma arşivleri | Yazar, yayın yılı, anahtar kelimeler birleştirme | (author: "Doe") AND (year: 2022) AND (keywords: "machine learning") |
| Kurumsal intranet | Dosya türü ve departmana göre arama | filetype: pdf AND department: HR |
Bu örnekler, boolean operators java ve filename search java tekniklerini ustalıkla kullanmanın veri‑ağır uygulamalarda ne kadar büyük bir fark yaratacağını gösterir.
Common Pitfalls & Troubleshooting
- Boş sonuçlar – Belgelerin başarıyla eklendiğini
index.getDocumentCount()ile kontrol edin. - Eski dizin – Dosya ekleyip çıkardıktan sonra
index.update()çağırarak update index java (dizin güncelleme) yapın ve dizinin senkronize olduğundan emin olun. - Yanlış alan adları – Yazım hatalarını önlemek için
CommonFieldNamessabitlerini (Content,FileNamevb.) kullanın. - Performans darboğazları – büyük koleksiyonlar için
index.setCacheSize()etkinleştirmeyi veya dizin klasörü için ayrı bir SSD kullanmayı düşünün. - Vurgulama eksikliği – highlight search results java (arama sonuçlarını vurgulama) için eşleşen parçaları
SearchResult.getFragments()ile alın (burada gösterilmemiştir ancak API’da mevcuttur).
Frequently Asked Questions
S: GroupDocs.Search’i Spring Boot ile kullanabilir miyim?
C: Kesinlikle. Maven bağımlılığını ekleyin, dizini bir Spring bean’i olarak yapılandırın ve arama yeteneklerine ihtiyaç duyduğunuz her yerde enjekte edin.
S: Kütüphane özel meta veri alanlarını destekliyor mu?
C: Evet – indeksleme sırasında kullanıcı tanımlı alanlar ekleyebilir ve ardından bu alanlarda facet uygulayabilirsiniz.
S: Dizin ne kadar büyük olabilir?
C: Dizin disk‑tabanlıdır ve milyonlarca belgeyi kaldırabilir; yeterli depolama alanı sağlayın ve önbellek ayarlarını izleyin.
S: Sonuçları alaka düzeyine göre sıralamak mümkün mü?
C: GroupDocs.Search otomatik olarak eşleşmeleri puanlar; puanı SearchResult.getDocument(i).getScore() ile alabilirsiniz.
S: Şifreli PDF’leri indekslersem ne olur?
C: Belgeyi eklerken şifreyi sağlayın: index.add(filePath, password).
Conclusion
Artık create a search index Java (arama dizini oluşturma) işlemini GroupDocs.Search ile rahatça yapabildiğinizi, belgeleri ekleyebildiğinizi ve hem basit faceted sorguları hem de boolean operators java kullanan gelişmiş Boolean aramaları oluşturabildiğinizi umuyoruz. Bu yetenekler, e‑ticaret platformlarından kurumsal bilgi tabanlarına kadar geniş bir uygulama yelpazesinde hızlı, doğru ve kullanıcı‑dostu arama deneyimleri sunmanızı sağlar.
Bir sonraki adıma hazır mısınız? GroupDocs.Search’in highlighting, suggestions ve real‑time indexing gibi ileri özelliklerini keşfederek uygulamanızın arama gücünü daha da artırın.
Last Updated: 2026-02-16
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs