İçeriğe Geç

Anahtar Kelime Araması

POST /api/v1/search/keyword

Anahtar Kelime Araması

Belge başlığı ve AI özeti üzerinde SQL tabanlı serbest metin araması yapar. Sunucu LIKE '%query%' benzeri bir alt-dize filtresi uygular: büyük/küçük harfe duyarlıdır ve Türkçe kök eki farkındalığı yoktur. Bu yüzden "bankacılık" aramak "banka" kelimesini içeren belgeleri döndürmez, "Kripto" ile "kripto" da aynı sonucu vermez.

Belgenin çıkarılmış tam metni bu aramaya dâhil değildir — yalnızca gövdede geçen bir terim bu uçtan asla bulunamaz. Gövde metninde arama için /library/semantic (anlamlı arama) kullanın.

İstek gövdesi

  • queryzorunlu, 1-500 karakter. Boş değer 400 VALIDATION_ERROR döner.
  • maxResults — 1-100 arası; varsayılan 10. Sayfalama yoktur; daha fazla istiyorsanız filtreleri daraltın.
  • sourceId — opsiyonel kaynak filtresi.
  • startDate / endDate — opsiyonel yayım tarihi penceresi.

Yürürlük süzgeci

Bu uç nokta yalnızca yürürlükteki mevzuatı arar; mülga belgeler sonuçlara hiçbir koşulda girmez ve bunu kapatan bir parametre yoktur ("Değişmiş", yani değiştirilmiş ama hâlâ yürürlükteki belgeler dâhildir). Aradığınız belge mülga ise sonuç boş döner — bu bir hata değildir. Mülga mevzuatta arama yapmanız gerekiyorsa GET /library?search=...&legalStatus=all (veya legalStatus=mulga) ya da GET /documents?filter=...&legalStatus=all kullanın.

Yanıt alanları

  • matchedSnippetanahtar kelime aramasında her zaman boş string döner; snippet yalnızca semantik aramada anlamlıdır.
  • score — anahtar kelime aramasında her zaman 1.0 döner (sıralama skorlaması yoktur).

Ne zaman semantiğe geçmeli

Eş anlamlı kelimeler veya kavram bazlı arama gerekiyorsa /library/semantic kullanın. Anahtar kelime araması yalnızca kesin eşleşmeler (exact substring) için uygundur ve semantikten ~10× daha ucuzdur.

Önbellek

Aynı (query, maxResults, sourceId, startDate, endDate) beşlisi 5 dakika boyunca önbelleklenir — tekrar sorgu atarsanız anında yanıt alırsınız.

Parametreler

İsimKonumTipZorunluAçıklama
query Body string Evet 1-500 karakter serbest metin. Belge başlığı ve AI özetinde alt-dize olarak aranır (büyük/küçük harfe duyarlı); çıkarılmış tam metin bu aramaya dâhil değildir.
maxResults Body integer Hayır 1-100 arası; varsayılan 10.
sourceId Body uuid? Hayır Kaynakla sınırlandırma.
startDate Body date-time? Hayır Yayım alt sınırı.
endDate Body date-time? Hayır Yayım üst sınırı.

Yanıtlar

200 — Eşleşen belgeler. Yalnızca yürürlükteki mevzuat döner — mülga belgeler hiçbir koşulda sonuçlara girmez ve bunu kapatan bir parametre yoktur.

{
  "success": true,
  "data": [
    {
      "documentId": "...",
      "title": "...",
      "sourceName": "Resmi Gazete",
      "publishedDate": "2026-03-28T00:00:00Z",
      "score": 1.0,
      "matchedSnippet": "",
      "summary": "..."
    }
  ]
}

400 — Query alanı boş.