GroupDocs.Search untuk .NET 26.10 kini tersedia. Ini adalah rilis utama: format indeks telah dirancang ulang, sehingga indeks mengambil ruang lebih sedikit di disk, membutuhkan setengah RAM dan membuka 2 hingga 4 kali lebih cepat. Pencarian, penghapusan, optimalisasi, dan pencarian gambar dipercepat beberapa hingga ratusan kali, pencarian tidak lagi menunggu proses pengindeksan, dan data indeks dilindungi dengan checksum serta pembaruan atomik.
Indeks yang ada yang dibuat oleh versi 22.7–26.8 dikonversi ke format baru tanpa melakukan pengindeksan ulang. Rilis ini berisi 22 perubahan: 4 fitur baru, 15 perbaikan, dan 3 perbaikan bug.
Sorotan Kinerja
Sebagian besar peningkatan meningkat seiring ukuran indeks dan jumlah segmennya.
| Apa | Peningkatan di 26.10 |
|---|---|
| RAM yang dibutuhkan oleh indeks yang dimuat | 2 kali lebih sedikit |
| Membuka indeks | 2 hingga 4 kali lebih cepat |
| Ukuran indeks di disk | Bertambah proporsional dengan data yang diindeks; semakin besar indeks, semakin besar penghematan |
| Pencarian kata dalam indeks besar | Hingga 2 kali lebih cepat; kata langka 10 hingga 40 kali lebih cepat |
| Pencarian fuzzy dalam indeks besar | 2,5 hingga 5 kali lebih cepat |
| Pencarian wildcard dalam indeks besar | 2,5 hingga 3 kali lebih cepat |
| Pencarian wildcard, ekspresi reguler, rentang numerik, dan fuzzy per potongan | 7 hingga 150 kali lebih cepat |
| Pencarian rentang tanggal | 2 hingga 27 kali lebih cepat |
| Menghapus dokumen | Ratusan kali lebih cepat, 4 kali lebih sedikit memori, tidak memerlukan ruang disk tambahan |
| Optimalisasi indeks | 4 kali lebih cepat, 4 kali lebih sedikit memori |
| Puncak RAM selama pengindeksan | 2 kali lebih sedikit |
| Mengambil teks yang disimpan dari dokumen | Hingga 15 kali lebih cepat |
| Data pencarian gambar | 2,9 kali lebih sedikit memori, dimuat 6,6 kali lebih cepat, disimpan 100 kali lebih cepat; pencarian gambar terbalik hingga 1,8 kali lebih cepat |
| Pencarian saat indeks sedang dimodifikasi | Tidak lagi terblokir |
| Keandalan indeks | Checksum dan perubahan atomik; operasi yang terputus selesai atau dibatalkan |
| Thread pencarian | Semua core prosesor secara default; dapat diubah kapan saja |
Apa yang baru di rilis ini
| Kunci | Ringkasan | Kategori |
|---|---|---|
| SEARCHNET-3665 | Implementasikan kemampuan mengubah jumlah thread pencarian kapan saja | Fitur |
| SEARCHNET-3666 | Implementasikan opsi untuk mengganti karakter surrogate yang tidak berpasangan | Fitur |
| SEARCHNET-3667 | Implementasikan opsi untuk melewatkan istilah yang hanya terdiri dari karakter campuran | Fitur |
| SEARCHNET-3668 | Implementasikan pembaruan versi indeks ke format indeks baru tanpa mengindeks ulang dokumen | Fitur |
| SEARCHNET-3669 | Implementasikan optimalisasi konsumsi ruang disk sebuah indeks | Peningkatan |
| SEARCHNET-3670 | Implementasikan optimalisasi konsumsi RAM sebuah indeks yang dimuat | Peningkatan |
| SEARCHNET-3671 | Implementasikan optimalisasi kecepatan pemuatan indeks | Peningkatan |
| SEARCHNET-3672 | Implementasikan optimalisasi kecepatan pencarian dalam indeks besar | Peningkatan |
| SEARCHNET-3673 | Implementasikan optimalisasi pencarian fuzzy | Peningkatan |
| SEARCHNET-3674 | Implementasikan optimalisasi pencarian wildcard | Peningkatan |
| SEARCHNET-3675 | Implementasikan optimalisasi penghapusan dan pembaruan dokumen | Peningkatan |
| SEARCHNET-3676 | Implementasikan optimalisasi operasi optimalisasi indeks | Peningkatan |
| SEARCHNET-3677 | Izinkan pencarian saat indeks sedang dimodifikasi | Peningkatan |
| SEARCHNET-3678 | Tingkatkan keandalan indeks | Peningkatan |
| SEARCHNET-3679 | Implementasikan optimalisasi penggunaan memori selama pengindeksan | Peningkatan |
| SEARCHNET-3680 | Implementasikan optimalisasi pengambilan teks dokumen | Peningkatan |
| SEARCHNET-3681 | Implementasikan optimalisasi pencarian gambar | Peningkatan |
| SEARCHNET-3682 | Implementasikan penanganan huruf besar/kecil secara identik di semua platform | Peningkatan |
| SEARCHNET-3688 | Implementasikan optimalisasi pencarian per potongan | Peningkatan |
| SEARCHNET-3683 | Perbaiki jumlah default thread pencarian | Perbaikan |
| SEARCHNET-3684 | Cegah pengindeksan tidak konsisten setelah mengubah kamus istilah | Perbaikan |
| SEARCHNET-3685 | Cegah penggabungan indeks yang memproses teks secara berbeda | Perbaikan |
Fitur utama
Penyimpanan dan keandalan indeks
- Ukuran indeks kini bertambah proporsional dengan data yang diindeks, sehingga indeks besar dengan banyak segmen menghemat ruang paling banyak.
- Indeks yang dimuat membutuhkan setengah RAM, dan membuka indeks 2 hingga 4 kali lebih cepat.
- Data indeks dilindungi dengan checksum, dan semua perubahan diterapkan secara atomik. Jika operasi terhenti karena error, kegagalan daya, atau penghentian proses, indeks tetap berada dalam keadaan konsisten sebelumnya.
Pencarian
- Hanya segmen yang berisi istilah kueri yang dibaca, yang mempercepat pencarian kata, fuzzy, wildcard, dan pencarian per potongan.
- Pencarian menggunakan semua core prosesor secara default, dan jumlah thread dapat diubah kapan saja melalui
IndexSettings.SearchThreads. - Pencarian dan operasi yang memodifikasi indeks (pengindeksan, pembaruan, penghapusan, penggabungan, optimalisasi) tidak lagi saling memblokir. Setiap pencarian bekerja dengan snapshot indeks yang konsisten.
Pengindeksan dan pemeliharaan
- Menghapus dokumen tidak lagi menulis ulang indeks: dokumen dikeluarkan dari pencarian secara langsung dan dihapus secara fisik selama optimalisasi.
- Optimalisasi indeks 4 kali lebih cepat dan menggunakan 4 kali lebih sedikit memori; indeks sangat besar dioptimalkan menjadi beberapa segmen berukuran terbatas.
- Pengindeksan mengonsumsi sekitar setengah RAM puncak.
Pemrosesan teks
- Huruf besar/kecil ditangani secara identik pada .NET Framework dan .NET, sehingga hasil pencarian tidak bergantung pada platform.
- Karakter surrogate yang tidak berpasangan diganti dengan U+FFFD alih-alih dihapus, dan istilah yang hanya terdiri dari karakter campuran tidak lagi diindeks.
Perubahan API Publik
Dua properti telah ditambahkan ke kelas GroupDocs.Search.IndexSettings:
Boolean ReplaceUnpairedSurrogates– mengganti karakter surrogate UTF-16 yang tidak berpasangan dengan karakter pengganti Unicode (U+FFFD). Diaktifkan secara default.Boolean SkipBlendedOnlyTerms– mengecualikan dari pengindeksan istilah yang hanya terdiri dari karakter campuran. Diaktifkan secara default.
Kedua pengaturan ini tetap setelah indeks dibuat.
Contoh kode
Contoh berikut memperbarui indeks yang dibuat oleh versi sebelumnya ke format indeks baru tanpa mengindeks ulang dokumen.
string sourceIndexFolder = @"c:\MyOldIndex\"; // Tentukan path ke indeks versi sebelumnya
string targetIndexFolder = @"c:\MyNewIndex\"; // Tentukan path ke folder untuk indeks yang diperbarui
IndexUpdater updater = new IndexUpdater(); // Membuat pembaruan indeks
if (updater.CanUpdateVersion(sourceIndexFolder)) // Memeriksa apakah versi indeks dapat diperbarui
{
VersionUpdateResult result = updater.UpdateVersion(sourceIndexFolder, targetIndexFolder); // Memperbarui versi indeks; indeks sumber tidak diubah
}
Catatan peningkatan
Perhatikan perubahan berikut saat meningkatkan dari versi sebelumnya:
- Format indeks telah berubah. Indeks versi sebelumnya harus dikonversi dengan kelas
IndexUpdatersebelum dapat dibuka. Dokumen sumber tidak diperlukan, indeks yang dikonversi disimpan ke folder berbeda, dan indeks sumber tidak dimodifikasi. - Kamus istilah ditetapkan sekali indeks berisi dokumen. Alfabet, kamus tokenisasi, penggantian karakter, kata berhenti, serta pengaturan
UseStopWordsdanUseCharacterReplacementsharus dikonfigurasi sebelum dokumen pertama diindeks. Perubahan kemudian akan menimbulkanInvalidOperationException. - Indeks yang tidak kompatibel tidak digabungkan.
Index.MergemenimbulkanInvalidOperationExceptionjika indeks yang digabung memisahkan teks menjadi istilah secara berbeda. - Pencarian multithread secara default. Dengan
IndexSettings.SearchThreadsdefault, pencarian menggunakan sebanyak thread sebanyak core prosesor. Untuk membatasi jumlah thread, setel properti secara eksplisit. - Dua pengaturan indeks baru diaktifkan secara default. Untuk mempertahankan perilaku sebelumnya, setel
ReplaceUnpairedSurrogatesdanSkipBlendedOnlyTermskefalsesebelum membuat indeks. - Dokumen yang dihapus dihapus secara fisik selama optimalisasi. Panggil
Index.Optimizeuntuk memulihkan ruang. - Jumlah potongan telah berubah. Pencarian per potongan tidak lagi mengembalikan satu potongan untuk setiap segmen. Iterasi potongan selama
SearchResult.NextChunkSearchTokentidak null alih-alih mengandalkan jumlah segmen.
Cara mendapatkan pembaruan
NuGet
- NuGet – Instal paket terbaru:
# Package Manager
NuGet\Install-Package GroupDocs.Search -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search --version 26.10.0
# Package Manager
NuGet\Install-Package GroupDocs.Search.NETFramework -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search.NETFramework --version 26.10.0
Unduhan langsung
- Unduhan langsung – Unduh assembly yang telah dikompilasi untuk .NET dari halaman rilis resmi:
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10-dlls-only/
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10/
Sumber daya
- Catatan Rilis Lengkap – https://releases.groupdocs.com/search/net/release-notes/2026/groupdocs-search-for-net-26-10-release-notes/
- Dokumentasi – https://docs.groupdocs.com/search/net/
- Contoh Kode – https://github.com/groupdocs-search/GroupDocs.Search-for-.NET/
- Free Support Forum – https://forum.groupdocs.com/c/search/
- Gunakan dari agen AI – server MCP GroupDocs.Search menjalankan mesin ini secara lokal untuk Claude, Cursor, dan Copilot: https://docs.groupdocs.com/search/mcp/ · Apakah Anda memerlukan basis data vektor untuk menanyakan pertanyaan tentang folder dokumen?