Her yeni sohbet, belgelerinizi unutmuş bir ajanla başlar. Zaman ve bağlam maliyeti karşılığında onları yeniden okuyabilir ya da hatırlayan bir şeye danışabilir. GroupDocs.Search.Mcp, disk üzerinde yerel olarak adlandırılmış tam metin indeksini tutar; bu indeks oturumlar ve konteyner yeniden başlatmaları arasında ayakta kalır, böylece Claude Desktop, Cursor veya Copilot her oturuma projenin belgeleri zaten aranabilir olarak başlar ve dosyalar değiştiğinde tek bir çağrıyla bunları yeniler:
Bazı sözleşmeleri düzenledim. Sözleşmeler indeksini yenileyin, ardından şimdi bir ceza içeren sözleşmeleri bana söyleyin.
Yapılandırma ve sorun giderme ile adım adım sürüm belgelerde bulunur: Dosyalar değiştikçe bir belge indeksini güncel tutma.
Bir ajan için “hafıza” ne anlama gelir?
Pratikte iki şey: konuşmanın dışında kalıcı olan durum ve bu durumu doğru tutmanın ucuz bir yolu. Sohbet geçmişi ikisini de başarısız kılar: oturumla sona erer ve bir belge değiştiğinde onu güncelleyen bir şey yoktur. Arama indeksi belgeler için daha uygun bir çözümdür. Diskte, belgelerin yanında yaşar, “hangi dosyalar X diyor” sorusuna onları yüklemeden yanıt verir ve artımlı olarak yenilenebilir.
session 1 add_to_index --> index "contracts" --+
| kept on disk in
session 2 search, get_text_fragments <--------+ /data/.groupdocs-search-
(nothing is re-read) index/contracts
files edit update_index --> re-reads changed, added, deleted files only
new project create_index {"indexName":"legal-2026"} --> a separate index
Yenileme nasıl çalışır?
update_index indeksi, diskteki dosyalarla karşılaştırır ve yalnızca değişenleri yeniden okur. İşte bir sözleşmeye iki çağrı arasında bir ceza maddesi eklendikten sonra sunucunun testte döndürdüğü sonuç:
-> get_index_info {"indexName":"contracts"}
<- { "documentCount": 5, "indexedPaths": [ "contracts" ],
"documentsWithErrors": [], "status": "Ready" }
-> update_index {"indexName":"contracts"}
<- Index 'contracts' updated: 0 added, 1 updated, 0 removed;
5 document(s) in the index.
-> search {"query":"penalty","indexName":"contracts"}
<- documentsFound 3, including the edited initech-nda.docx
Sayılar ne olduğunu gösterir: bir dosya yeniden okundu, başka bir şey dokunulmadı. Silinen dosyalar aynı çağrıda kaybolur.
Proje başına neden tek bir indeks?
Çünkü ayrı korpuslar ayrı yanıtları hak eder. Bu yılın sözleşmeleriyle ilgili bir soru, geçen yılın taslaklarını ortaya çıkarmamalı ve bir müşterinin belgeleri başka bir müşterinin belgeleriyle karışmamalıdır. İndeks adları ucuzdur:
-> create_index {"indexName":"legal-2026"}
<- Index 'legal-2026' created. Add documents with add_to_index
(indexName: 'legal-2026').
Her indeks, /data/.groupdocs-search-index altında bir klasördür ve isim olmadan get_index_info hepsini listeler. add_to_index ilk kullanımda bir indeks oluşturduğundan create_indexi açıkça çağırmanız nadiren gerekir, ancak onları kasıtlı olarak adlandırmak “bir indeks"i “bu projenin hafızası"na dönüştürür.
Kaldırma hakkında tek kural
Motor, eklenen yolları kaldırır, içlerindeki tek tek dosyaları değil. Sunucu bunu açıkça söylerken:
-> remove_from_index {"documentPath":"contracts/hooli-supply-terms.txt",...}
<- Removal failed for 'contracts/hooli-supply-terms.txt':
'contracts/hooli-supply-terms.txt' is inside the indexed folder
'contracts'. GroupDocs.Search removes whole indexed paths only: ...
Bu yüzden tasarlayın: daha sonra bir korpusun bir kısmını (örneğin bir yıl, bir müşteri ya da taslaklar) bırakmayı düşünüyorsanız, bu bölümleri ayrı yollar (contracts/2025, contracts/2026) olarak indeksleyin ve her biri kendi başına kaldırılabilir. Diskte bir dosyayı silmek ve update_index çalıştırmak da onu kaldırır.
Sormadan güncel tutma
create_index (optional)
|
v
add_to_index ---> search ---> get_text_fragments
^ ^
| | get_index_info: counts, paths, status
update_index (files changed on disk)
|
remove_from_index (only a path that was given to add_to_index)
Yenilemeyi otomatik hâle getirmenin üç pratik yolu:
- Ajana verilen talimatlarda.
CLAUDE.mdya daAGENTS.mdiçinde bir satır, “dosyalar değişmiş olabileceği için bu projenin indeksineupdate_indexçağır” şeklinde, ajanın oturum başında bunu yapmasını sağlar. - Planlı bir zamanlayıcıda. MCP‑yetkin bir otomasyon,
update_indexi her gece çalıştırabilir; çok az değişiklik olduğunda çağrı hızlıdır. - Toplu bir kopyalamanın ardından. Tek bir çağrı, eklenen tüm dosyaları yakalar.
İndeksler yükseltmelerde de ayakta kalır: GroupDocs.Search 22.7‑den 26.8‑e kadar oluşturulan indeksler, ilk kullanımda dönüştürülür ve yanlarında bir yedek tutulur.
Ajana ne karar verir, indeks ne yapar
| Ajana ne karar verir | İndeks ne yapar |
|---|---|
| bir sorunun hangi indekse ait olduğu | her adlandırılmış indeksi kendi klasöründe tutar |
| dosyaların değişmiş olabileceği zaman | yalnızca değişen, eklenen ve silinen dosyaları yeniden okur |
| hangi kelimeleri arayacağı ve deneyeceği varyantlar | kelimeleri, ifadeleri, aralıkları eşleştirir; bulduğu terimleri rapor eder |
| ne kadar bağlamı alıntılayacağı | istenen kelime sayısı kadar çevresindeki pasajları döndürür |
| size ne söyleyecek | hiçbir şey: sayıları, yolları ve metni döndürür, asla sonuç çıkarmaz |
Bölünme kasıtlıdır. Yargı modelde kalır ve modelin dayandığı gerçekler, çıktısını inceleyebileceğiniz bir araçtan gelir.
Dürüst sınırlamalar
- Değerlendirme modunda bir indeks en fazla 100 belge tutar ve bir arama en fazla 10 sonuç döndürür. Gerçek bir kaynak olarak indekse güvenmeden önce
get_license_statusi çağırın. - İndeks yalnızca
/data(veya indeks hacmi) bir bağlanmış host klasörü olduğunda kalıcıdır; aksi takdirde konteynerle birlikte kaybolur. - İndeks, belgelerin metnini içerir: belgeler gibi koruyun ve imha edin.
- Sadece Docker; Linux’ta
--user "$(id -u):$(id -g)"ekleyin ki konteyner indeksi yazabilsin.
SSS
Ajans belgelerimi oturumlar arasında hatırlıyor mu?
Kalıcı bir indeksle evet: indeks disk üzerinde kalır ve bir sonraki oturum hiçbir şeyi yeniden okumadan onu arar.
Dosyalar değiştiğinde indeksi yeniden oluşturmam gerekir mi?
Hayır. update_index yalnızca değişen, eklenen ve silinen dosyaları yeniden okur.
İndeksi yalnızca okuma‑yalnızca belgelerden ayrı tutabilir miyim?
Evet. Belgeleri yalnızca‑okuma olarak bağlayın, yazılabilir bir klasörü /index olarak bağlayın ve GROUPDOCS_MCP_INDEX_PATH=/index ayarlayın.
Daha derine in
- Dokümantasyon, kanonik nasıl‑yapılır: Dosyalar değiştikçe bir belge indeksini güncel tutma
- Dokümantasyon merkezi: GroupDocs.Search MCP Server
- Buradan başlayın: Bir klasör içindeki belgeler hakkında sorular sormak için vektör veritabanına ihtiyacınız var mı?
- İlgili: grep PDF okuyamıyor: kodlama ajanınize bir belge indeksi verin
- İlgili: Bir AI ajanın bir soruya yanıt vermek için 300 sözleşmeyi okuması neden önerilmez
- İlgili: Dosyalarınızdan temellendirilmiş yanıtlar: pasajı alıntılayın, modelin hafızasını değil
- İlgili: AI ajanın e‑posta arşivinizi araması: PST, MSG, EML ve içindeki ekler
- Yerinde ve güvenlik modeli: AI belge işleme için 3 mimari ve dosyaları ağınız içinde tutan mimari
- Motor sürümü: GroupDocs.Search for .NET 26.10 – Ekim 2026 Sürüm Özetleri
- Sorular: GroupDocs Search forum
- Kaynak: GroupDocs.Search.Mcp on GitHub