-
Notifications
You must be signed in to change notification settings - Fork 0
TR Concept Disjunctive Faceting
Turkce Dokumantasyon | English Documentation
Kategori: Mimari Kavramlar ve Prensipler
Alt Sistem: Facet Navigasyon Motoru (AmberDB::Index::Facet)
Madde Turu: Mimari Kavram
Kolon Tabanli Ayrik Facet Filtreleme (Disjunctive Faceting), AmberDB'nin e-ticaret siteleri ve katalog uygulamalari icin gercek zamanli, cok boyutlu dinamik kategori ve ozellik filtre menuleri ureten motorudur.
Modern e-ticaret filtreleme mantiginda, ayni ozellik grubu icindeki coklu secimler (orn: Renk = Kirmizi VEYA Mavi) Ayrik (OR) mantigi ile calisirken, farkli ozellik gruplari arasindaki secimler (orn: Marka = Apple VE Renk = Kirmizi) Birlestirici (AND) mantigi ile kesistirilir. En kritik gereksinim, secilmemis diger seceneklerin de mevcut filtre kombinasyonunda kac urun getirecegini (disjunctive sayim) aninda hesaplamaktir.
AmberDB, facet verilerini kolon bazli bitset dosyalarinda (_${blk}.fac) ve cift yonlu metin sozluklerinde (_${blk}.unq) saklayarak milyonlarca urun uzerinde bu sayimlari milisaniyeler icinde gerceklestirir.
Ayrik Facet Filtreleme Akis Semasi
Aktif Secimler: { Kategori => 5, Marka => ["Apple", "Sony" ], Renk => "Siyah" }
Kategori Filtresi: [Kategori = 5 ] (AND)
Marka Filtresi: [Marka = Apple VEYA Marka = Sony ] (OR - Ayrik Coklu Secim)
Renk Filtresi: [Renk = Siyah ] (AND)
Kolon Tabanli .fac Bitset Kesisimleri
Filtrelenmis Urun ID'leri + Yeniden Hesaplanmis Menü Sayimlari:
- Markalar: Apple (42), Sony (18), Bose (12), Sennheiser (7)
- Renkler: Siyah (60), Gumus (24), Beyaz (15)
- Fiyat: 0-1000 TL (15), 1000-3000 TL (45), 3000+ TL (20)
-
Kolon Tabanli Bitset Dosyalari (
_${blk}.fac): Her facet blogu icin kayit ID'lerini sikistirilmis deger ID'lerine esleyen ileri yonlu dosyalardir. Yalnizca aktif ve stogu bulunan urunler saklanir. -
Cift Yonlu Sozlukler (
_${blk}.unq): Metin tabanli etiketleri (orn: "Uzay Grisi", "16GB RAM") sayisal sozluk anahtarlarina cevirir. -
Dinamik Kapsam (
base_ids): Facet menusu bir arama sorgusu sonucuna (search_table) veya ozel bir urun listesine dinamik olarak sinirlanabilir.
# Sayimli dinamik filtre menusu olusturma
my $menu = $adb->facet_menu(
"catalog_product",
{
1 => "5", # Kategori = 5
2 => ["12", "14" ], # Marka = 12 VEYA 14 (Ayrik coklu secim)
},
undef, # Semadaki facet_block tanimlarini otomatik okur
{
sort => "count", # Secenekleri adet sayisina gore coktan aza sirala
top => 10, # Her grupta en cok gecen 10 secenegi getir
min_count => 1, # Eslesme sayisi 0 olan secenekleri gizle
}
);
# $menu yapisi:
# {
# count => 56, # Eslesen toplam urun sayisi
# ids => [101, 104, ...], # Eslesen urun ID listesi
# groups => [... ], # Arayuzde basilmaya hazir menu agaci
# active_counts => { ... } # Secenek sayim haritasi
# }AmberDB — High-Performance Schema-Driven NoSQL Database Engine for Perl.
Copyright 2005-2026 Maruf Cetin. Released under the Artistic License 2.0.
CPAN · GitHub Repository · Issue Tracker
- Berkeley DB (DB_File) Engine
- AmberDB Table Schema
- Global Flags
- Table Schema Flags
- Directory Structure
- File Structure (Extensions)
- Repeat Blocks
- Auto-Increment ID
- ASCII ID
- Relational Records
- Record Anatomy
- JOIN-Free Architecture
- Packed Binary Index
- Strict 2PL Locking
- Undo Journal & Rollback
- Tiered Junk Indexing
- Disjunctive Faceting
- Phonetic Accent Search
- 2-Pillar Disaster Recovery
- RAM-Disk Acceleration
- In-Memory Schema Mutation
- Simple Mode
- new
- config
- set_datadir
- insert_id
- insert_list
- modify_id
- modify_list
- delete_id
- delete_list
- read_id
- read_all
- read_list
- exist_id
- exist_list
- exist_table
- table_count
- table_keys
- table_lastid
- table_attr
- table_create
- field_fetch
- field_filter
- search_table
- facet_menu
- field_fltkeys
- field_allfltkeys
- facet_rules
- slug_read
- slug_fetch
- transact_start
- transact_end
- transact_commit
- transact_rollback
- transact_recover
- flock_open
- flock_close
- cache_setup
- cache_read
- cache_write
- cache_delete
- cache_preload
- cache_ensure
- buffer_write
- buffer_read
- buffer_delete
- recs_scan
- recs_get
- recs_put
- recs_del
- locale_uc
- locale_lc
- locale_sort
- locale_to_ascii
- locale_num2text
- locale_format_currency
- locale_format_date
- array_sort
- array_punch
- array_filter
- array_sublist
- deep_copy
- log_owner
- use_counter
- use_junk
- keep_deleted
- auto_id
- buffer_write
- simple
- no_write
- no_backup
- jnktype
- keys_only
- id_type
- language
- .db · .table · .dbase
- .inx · .fld · .src
- .fac · .srt · .slg
- .unq · .del · .aut
- .cnt · .txn · .amberdb
- .csv · .cache · .tmp