Mevzuat Anlamlı Arama
/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ı
- Sorgu, çok dilli e5-large modeliyle 1024 boyutlu vektöre çevrilir
- Qdrant (vektör) + Postgres FTS (anahtar kelime) paralel olarak çalışır — her biri top-K =
max(50, take*3)döner - Sonuçlar RRF (Reciprocal Rank Fusion, k=60) ile birleştirilir
- Re-ranking: başlıkta sorgu kelimesi geçen sonuçlara
+0.05, aktif filtreyle eşleşen etiket başına+0.10ek 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ı
pageSize1-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 = truedö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
| İsim | Konum | Tip | Zorunlu | Açı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. |