Web uygulamasının uygulamaları, ayar sayfalarını, uygulama ekranlarını, aksiyonları ve kayıtları bulan tek bir arama motoru vardır. Ana ekranın üstünde bir katman olarak açılır ve Uygulamalar kitaplığına da gömülüdür. Bu sayfa sonuç ailelerini, mod öneklerini, klavye kullanımını, kayıtların nasıl sorgulandığını ve son seçimlerin nasıl tutulduğunu listeler. Sunucu tarafı arama yardımcıları arama, sayfalama ve toplu işlemler sayfasındadır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
webapp/js/home.js(openSpot,runSearch,searchableEntities,rowContainsQuery,settingsSearchTargets),webapp/js/search-index.js(screenTargets,actionTargets,matchTargets,SPOT_MODES,parseSpotQuery) - Sayı: 6 sonuç ailesi (son, uygulamalar, ayarlar, ekranlar, aksiyonlar, kayıtlar) ve 5 mod öneki (
SPOT_MODES,webapp/js/search-index.js:163-169)
Paleti açma¶
| Giriş | Kaynak |
|---|---|
| Ana ekran durum satırındaki arama düğmesi | webapp/js/home.js:151 |
| Ana ekranda aşağı kaydırma | webapp/js/home.js:4446-4453 |
| Her yerden Ctrl+K veya Apple platformlarında Cmd+K | webapp/js/home.js:4363-4370, webapp/js/home.js:1138-1142 |
| Uygulamalar kitaplığının arama alanı, 200 ms geciktirilir | webapp/js/home.js:2644-2659 |
Katman, açma kısayolunu, her mod önekini ve ok ile Enter tuşlarını gösteren bir ipucu çubuğu gösterir (webapp/js/home.js:1143-1152). Ok tuşları vurguyu taşır ve Enter onu açar (webapp/js/home.js:4329-4337). Yazma, bir sorgu çalışmadan önce 220 ms geciktirilir (webapp/js/home.js:4340-4343).
Sonuç aileleri¶
| Aile | Hedeflerin kaynağı | Eşleşme kuralı | Sınır | Kaynak |
|---|---|---|---|---|
| Son | Kullanıcının son seçimleri | Başlık veya alt başlık sorguyu içerir | 8 tutulur | webapp/js/home.js:1135-1157, webapp/js/home.js:1406-1424 |
| Uygulamalar | Kayıttaki kurulu uygulamalar | Etiket sorguyu içerir | yok | webapp/js/home.js:1426-1431 |
| Ayarlar | open işleyicisi olan settingsRows() satırları ve yönetim varlık ekranları |
Etiket sorguyu içerir | yok | webapp/js/home.js:3517-3527, webapp/js/home.js:1432-1438 |
| Ekranlar | Kurulu modül uygulamalarının her kenar çubuğu bölümü ve ayar bölümlerinin her sekmesi | matchTargets |
12 | webapp/js/search-index.js:30-71, webapp/js/home.js:1440-1442 |
| Aksiyonlar | Kullanıcının okuyabildiği varlıkların her ActionMeta ve record_actions girdisi |
matchTargets |
12 | webapp/js/search-index.js:78-127, webapp/js/home.js:1443-1445 |
| Kayıtlar | Aranabilir varlıkların canlı liste sorguları | Sunucu araması, ardından istemci denetimi | varlık başına 6 | webapp/js/home.js:1235-1276, webapp/js/home.js:1375-1396 |
matchTargets(targets, query) sorgunun her sözcüğünü başlıkta veya alt başlıkta ister. Tek sözcüklü bir sorgu başlıkla eşleşmelidir. Başlığı ilk sözcükle başlayan sonuçlar önce, sonra başlığında her sözcüğü içeren sonuçlar gelir (webapp/js/search-index.js:134-155).
Mod önekleri¶
Baştaki bir işaret paleti tek bir aileyle daraltır (webapp/js/search-index.js:157-176).
| Önek | Aile | Etiket anahtarı |
|---|---|---|
> |
Aksiyonlar | spotlight.actions |
/ |
Ekranlar | spotlight.screens |
@ |
Uygulamalar | spotlight.apps |
? |
Ayarlar | spotlight.settings |
# |
Kayıtlar | spotlight.records |
Kayıt araması¶
searchableEntities(), liste görünümünde search_enabled olan ve kullanıcının <entity_type>.read iznine sahip olduğu varlıkları toplar. Kurulu her list uygulamasının varlığını, kurulu modül uygulamalarının list, tree ve tabbed_list bölümlerini ve auth modülünün yönetim varlıklarını kapsar (webapp/js/home.js:1235-1276). Palet her varlık için GenApi.list işlevini search ve limit: 6 ile paralel çağırır (webapp/js/home.js:1538-1575).
Sunucu search değerini her liste ucunda uygular; bkz. arama, sayfalama ve toplu işlemler. Merkezi bir arama ucu yoktur: istemci liste uçlarını tek tek sorgular. rowContainsQuery yalnız sığ bir dize değerinin sorguyu içerdiği satırları tutar; böylece search değerini yok sayan bir uç ilgisiz satırlar ekleyemez (webapp/js/home.js:1369-1396). İnsan okunur başlığı olmayan bir satır dışarıda bırakılır (webapp/js/home.js:1278-1282, webapp/js/home.js:1557-1561). 401 veya 403 yanıtı o varlığı sessizce düşürür; diğer hatalar konsola yazılır (webapp/js/home.js:1567-1573).
Daha yeni bir sorgu, eski yanıtların gösterimini bir sıra numarasıyla iptal eder (webapp/js/home.js:1404, webapp/js/home.js:1576).
Bir sonucu açma¶
| Tür | Etki | Kaynak |
|---|---|---|
| Uygulama | Uygulamayı açar | webapp/js/home.js:1466 |
| Ayarlar | Ayarlar uygulamasını açar ve ayar ekranını iter | webapp/js/home.js:1284-1291 |
| Ekran | Uygulamayı açar ve bölüme geçer; bir ayar sekmesi hedefi o sekmeyi bir kez açar | webapp/js/home.js:1296-1310, webapp/js/gen-settings.js:20-25 |
| Aksiyon | Aksiyonun yaşadığı ekranı açar; kullanıcı sonra bir kayıt seçer | webapp/js/search-index.js:73-77, webapp/js/home.js:1296-1310 |
| Kayıt | Kayıt kartını kendi uygulamasında açar | webapp/js/home.js:1312-1332 |
Son seçimler¶
Açılan her sonuç, son seçimler listesinin başına, en çok 8 girdi olacak biçimde, spot_recent arayüz durumu anahtarı altında saklanır (webapp/js/home.js:1135-1157). Son bir girdi gösterilmeden önce kurulu ve izinli olanlara karşı yeniden denetlenir; hedefi kalmamış bir girdi atlanır (webapp/js/home.js:1157-1191). Boş bir sorgu yalnız son seçimler bölümünü gösterir (webapp/js/home.js:1420-1424).
Kısıtlar ve doğrulama¶
- Dizin sorgu anında canlı katalog ve metadata'dan kurulur; sorgular arasında hiçbir şey önbelleğe alınmaz (
webapp/js/search-index.js:8-15). - Arama dile duyarlıdır: eşleşme geçerli dille
toLocaleLowerCasekullanır (webapp/js/search-index.js:21-22). - Tarayıcı testleri:
web-client/_e2e_universal_search.mjs,web-client/_e2e_command_palette.mjs,web-client/_e2e_search.mjs,web-client/_e2e_library_search.mjs,web-client/_e2e_widgets_spot.mjs.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| command palette | openSpot |
Uygulamaları, ayarları, ekranları, aksiyonları ve kayıtları bulan arama katmanı. | komut paleti | webapp/js/home.js:1121 |
| mode prefix | SPOT_MODES |
Paleti tek bir sonuç ailesiyle daraltan baştaki işaret. | mod öneki | webapp/js/search-index.js:163 |
| search target | screenTargets |
Paletin açabildiği, metadata'dan türetilmiş gezilebilir bir yer. | arama hedefi | webapp/js/search-index.js:30 |
İlgili sayfalar¶
- Web uygulaması platformu
- Ana ekran, dock ve başlatıcı
- Modül uygulamaları ve uygulama kapsamı
- Arama, sayfalama ve toplu işlemler
- Kullanıcı arayüz durumu
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.