İçeriğe Geç

Mevzuat Anlamlı Arama

GET /api/v1/library/semantic

Mevzuat Anlamlı Arama

Cümle veya soru bazlı, niyet temelli mevzuat aramasıdır. Anahtar kelime eşleşmesi yerine vektör benzerliği + tam metin füzyonu kullanır; bu nedenle "müşteri şikayetlerinin yönetim süreci" gibi günlük dilde ifadelere doğal yanıt verir.

Hibrit boru hattı

  1. Sorgu, çok dilli e5-large modeliyle 1024 boyutlu vektöre çevrilir
  2. Qdrant (vektör) + Postgres FTS (anahtar kelime) paralel olarak çalışır — her biri top-K = max(50, take*3) döner
  3. Sonuçlar RRF (Reciprocal Rank Fusion, k=60) ile birleştirilir
  4. Re-ranking: başlıkta sorgu kelimesi geçen sonuçlara +0.05, aktif filtreyle eşleşen etiket başına +0.10 ek puan eklenir

Filtreler tercih sinyalidir

institutionType, topic, department parametreleri eleme yapmaz — sadece sıralamada öne çekme/aşağı itme sinyali olarak kullanılır. Yani filtreyle eşleşmeyen sonuçlar yine listelenir, daha alta düşer. Bu davranış, anlamlı arama sonuçlarının çok dar bir filtre yüzünden tamamen kaybolmasını engeller.

/library (anahtar kelime) ile farkını burada vurgulamak gerek: orada filtreler sert filtredir; burada yumuşak sinyaldir.

Sayfalama ve top-K sınırı

  • pageSize 1-50 arası (varsayılan 12)
  • Toplam top-K = 100 ile sınırlıdır; bunun ötesi sıralama gürültüsüdür
  • pagination.truncated = true döndüğünde, sınır aşıldığı için daha fazla sayfa istemenin manası yoktur

/library ile karşılaştırma

Özellik /library (anahtar kelime) /library/semantic (anlamlı)
Sorgu yapısı Token bazlı Cümle/soru bazlı
Filtre davranışı Sert (eler) Yumuşak (sinyal)
Eşleşme Exact + ILIKE substring Vektör benzerliği + FTS
pageSize üst sınırı 100 50
Sıralama Customizable (sort parametresi) Sabit — relevance
Snippet <b> highlight, FTS headline <b> highlight, kelime tabanlı

Listeleme veya filtreleme önceliğiniz varsa /library'yi, doğal dille soru sorduğunuzda /library/semantic'i tercih edin.

Parametreler

İsimKonumTipZorunluAçıklama
search Query string Evet Arama cümlesi.
institutionType Query integer Hayır Tercih sinyali — InstitutionType enum sayı değeri (1-21). Sonuçları dışlamaz, yeniden sıralar.
topic Query integer Hayır Tercih sinyali — TopicType enum sayı değeri (1-25).
department Query integer Hayır Tercih sinyali — DepartmentType enum sayı değeri (1-24).
page Query integer Hayır Sayfa numarası.
pageSize Query integer Hayır 1-50; varsayılan 12.

Yanıtlar

200 — Anlamlı arama sonuçları (top-K=100); pagination.truncated=true ise sınır aşılmıştır.