# Tutoriál na temat Noterich i zaawansowanego wyszukiwania W epoce, gdy nadmiar informacji jest normą, efektywne organizowanie swoich cyfrowych myśli nie jest tylko luksusem – to konieczność. **NoteRich** wprowadza dwa potężne funkcje, które zmieniają sposób zarządzania i wyszukiwania wiedzy: **Izolowane Wielokoszty** oraz **Zaawansowane Wyszukiwanie Semantyczne**. Ten tutoriál pomoże ci opanować te funkcje, co pozwoli na stworzenie personalizowanego systemu zarządzania wiedzą, który rośnie wraz z twoimi potrzebami. --- ## Część 1: Zrozumienie Wielokosztów w NoteRich ### Czym są Wielokosty? Wyobraź sobie oddzielne notesy fizyczne dla różnych obszarów twojego życia – jeden na projekty pracowe, drugi na dziennikarstwo osobiste i trzeci na notatki badawcze. **Wielokosty** w NoteRich przenoszą tę organizację na twoje środowisko cyfrowe. Każdy wielokoszt w NoteRich jest **pełnie izolowanym pojemnikiem** dla twoich notatek, z własnym: - Niezależną bazą danych notatek - Odrębnym indeksem wyszukiwania - Unikalnym routerem URL - Izolowanym kontekstem pamięci AI ```mermaid graph TB subgraph "Noterich Application" A[Workspace Router] --> B[Workspace: Work] A --> C[Workspace: Personal] A --> D[Workspace: Research] B --> B1[Notes Database] B --> B2[Search Index] B --> B3[AI Context] C --> C1[Notes Database] C --> C2[Search Index] C --> C3[AI Context] D --> D1[Notes Database] D --> D2[Search Index] D --> D3[AI Context] end style A fill:#000,stroke:#000,color:#fff style B fill:#fafafa,stroke:#eaeaea,color:#333 style C fill:#fafafa,stroke:#eaeaea,color:#333 style D fill:#fafafa,stroke:#eaeaea,color:#333 ``` ### Dlaczego używać Wielokosztów? | Scenariusz | Korzyść | |----------|---------| | **Rozdzielenie Pracy i Życia** | Zachowaj notatki profesjonalne całkowicie oddzielone od dzienników osobistych | | **Izolacja Projektu** | Przydzielić wielokosce specjalnych klientów lub długoterminowych projektów | | **Przemiana Kontekstu** | Natychmiastowa zmiana między różnymi kontekstami myślowymi bez rozpraszania uwagi | | **Kontrola Prywatności** | Udzielić dostępu do specjalnych wielokosztów bez ekspozycji niepowiązanych treści | | **Optymalizacja Wydajności** | Duże bazy wiedzy pozostają szybkie, gdy podzielone na skoncentrowane wielokosty | --- ## Część 2: Nawigacja Między Wielokosztami ### System Router Wielokosztów NoteRich wykorzystuje inteligentny system routingu, który pamięta preferencje wielokosztów i zapewnia płynne nawigację. #### Identyfikacja Wielokosztów na Podstawie URL Każdy wielokoszt ma unikalny identyfikator odzwierciedlony w URL-ie przeglądarki: ``` https://noterich.app/#workspace=work-projects https://noterich.app/#workspace=personal-journal https://noterich.app/#workspace=research-notes ``` Identyfikator wielokosztu to: - **Bezpieczny dla URL-ów**: Tylko litery alfanumeryczne, hypen i podkreślenia są dozwolone - **Trwały**: Przechowywany w lokalnym magazynie przeglądarki dla szybkiego odzyskania - **Dostępny do udostępnienia**: Możesz udostępniać bezpośrednie linki do specjalnych wielokosztów #### Jak Funkcjonuje Przemiana Wielokosztów Gdy zmieniasz wielokosce w NoteRich, to, co dzieje się za kulami: ```mermaid sequenceDiagram participant U jako Użytkownik participant R jako Router Wielokosztów participant L jako LocalStorage participant W jako Web Worker participant S jako Silnik Wyszukiwania participant D jako IndexedDB U->>R: Kliknięcie przycisku zmiany wielokosztu R->>L: Zapisanie identyfikatora wielokosztu R->>R: Aktualizacja hash URL R->>W: Wysłanie wiadomości o identyfikatorze wielokosztu R->>S: Ponowne inicjowanie silnika wyszukiwania W->>D: Przemiana połączenia bazy danych S->>D: Odzyskanie indeksu specyficznego dla wielokosztu S-->>U: Ostrzeżenie o gotowości do wyszukiwania ``` ### Dobre Praktyki Nazewnictwa Wielokosztów Wybierz identyfikatory wielokosztów, które są: - **Opisowe**: `marketing-q4-2025` zamiast `work1` - **Spójne**: Używaj konwencji nazewnictwa w całej organizacji - **Przyszłościowy**: Unikaj nazw czasowych, chyba że są tymczasowe (`project-phoenix` zamiast `temp-notes`) --- ## Część 3: Architektura Zaawansowanego Wyszukiwania ### Od Matchingu Słów Kluczowych do Rozumienia Semantycznego Tradycyjne narzędzia wyszukiwania polegają na dokładnym matchowaniu słów kluczowych. Jeśli wyszukasz „automobile”, nie znajdą notatek z „car”. Zaawansowany silnik wyszukiwania NoteRich wykracza poza tę ograniczenie. #### System Wyszukiwania Dwuwarstwowego NoteRich wykorzystuje zaawansowaną dwuwarstwową architekturę wyszukiwania: ```graphviz digraph SearchArchitecture { rankdir=TB; node [shape=box, style="rounded,filled", fillcolor="#fafafa", color="#eaeaea", fontname="Inter", fontsize=11]; edge [color="#d4d4d4", penwidth=1.5]; Query [label="Użytkownika Zapytanie", fillcolor="#000", color="#000", fontcolor="#ffffff"]; subgraph cluster_processing { label = "Pętla Przetwarzania Zapytania"; style = "filled"; fillcolor = "#f9f9f9"; color = "#eaeaea"; Segment [label="Segmentacja Tekstu\n(Intl.Segmenter + Smart Fallback)"; Tokenize [label="Klasyfikacja Znaków\n(E-maile, URL-y, Numery, CJK)"; } subgraph cluster_search { label = "Paralelne Wykonywanie Wyszukiwania"; style = "filled"; fillcolor = "#f9f9f9"; color = "#eaeaea"; Precise [label="Dokładne Matchowanie title_raw field Weight: 1.0]; Fuzzy [label="Fuzzy Match title/content fields Weight: 0.8]; } Merge [label="Łączenie Iwertowania i Klasyfikacja"]; Results [label="Wyniki Końcowe z wyróżnieniami]; Query -> Segment; Segment -> Tokenize; Tokenize -> Precise; Tokenize -> Fuzzy; Precise -> Merge; Fuzzy -> Merge; Merge -> Results; } ``` ### Inteligentna Segmentacja Tekstu Podstawą mocy wyszukiwania NoteRich jest jego zaawansowana zdolność segmentacji tekstu. #### Wspieranie Wielu Języków Silnik wyszukiwania automatycznie wykrywa i segmentuje tekst w wielu językach: | Typ Języka | Przykłady | Strategia Segmentacji | |---------------|----------|----------------------| | **Oparte na Latin** | Angielski, Hiszpański, Francuskie | Wykrywanie granic słów | | **CJK** | Chiński, Japoński, Korejski | Segmentacja na poziomie karaktera | | **Mieszane** | Fragmenty kodu, URL-y, e-maile | Wyodrębnianie na podstawie wzorów | | **Numeryczne** | Daty, ceny, numery telefonów | Specjalistyczne rozpoznawanie wzorów | #### Rozpoznawanie Inteligentnych Wzorów NoteRich rozpoznaje i zachowuje ważne wzory podczas segmentacji: - **Adresy e-mail**: `user@example.com` - **URL-y**: `https://example.com/path` - **Numery telefonów**: `+1-555-123-4567` - **Daty**: `2025-01-15`, `15/01/2025` - **Waluty**: `$1,234.56`, `¥500` - **Mierzenia**: `42℃`, `100km/h` To gwarantuje, że wyszukiwanie `user@example.com` znajduje dokładny e-mail, a nie fragmentaryczne wyniki dla `user`, `example` i `com`. --- ## Część 4: Opanowanie Zapytań Wyszukiwania ### Syntakza i Operatory Zapytań NoteRich obsługuje potężną sintakzę zapytań do dokładnego odzyskiwania informacji. #### Wyszukiwanie Podstawowe Prostym wpisaniem zapytania możesz wyszukać wszystkie indeksowane treści: ``` Quarterly marketing strategy ``` Wyszukuje zarówno tytuły, jak i całe treści, wydając wyniki uwzględniające wagę. #### Wyszukiwanie Z Wieloma Termami OR Użyj znaku pip `|` do wyszukiwania wielu alternatywnych terminów: ``` Q4 planning | quarterly review | year-end summary ``` Wyświetla to notatki odpowiadające **każdemu** z wymienionych terminów, idealne do sesji brainstorming, gdy terminologia może się różnić. #### System Wagi Wielkich Wartości NoteRich używa zaawansowanego algorytmu wag: ``` Match Type | Waga | Opis --------------------|--------|------------------------------------- Precise (title_raw) | 1.0 | Dokładne zgodność w oryginalnym tytule Fuzzy (title) | 0.8 | Segmentowane zgodność w tytule z segmentowanymi znacznikiami Fuzzy (content) | 0.8 | Segmentowane zgodność w treści notatek ``` Wyniki są sortowane według: 1. **Przedziału priorytetu typu zgodności**: Dokładne zgodności mają wyższą rangę niż fuzzy zgodności 2. **Kumulatywnej wagi**: Wielokrotne zgodności zwiększają wagę 3. **Ocena Sub-zapytań**: Notatki odpowiadające większej liczbie sub-zapytań mają wyższą rangę ### Przykłady Wyszukiwania w Rzeczywistości #### Przykład 1: Znalezienie Notatek z Spotkaniami ```javascript // Zapytanie wyszukiwania "team standup | daily sync | morning meeting" // Wyświetla notatki zawierające któreś z tych fraz, // z priorytetem dokładnych zgodności z tytułem ``` #### Przykład 2: Wyszukiwanie Dokumentacji Technicznej ```javascript // Zapytanie wyszukiwania "API endpoint authentication" // Inteligentna segmentacja i znalezienie: // - Notatek wspominających o „API” i „endpoint” oraz „authentication” // - Zachowanie „API” jako pojedynczego znacznika // - Zgodność zarówno z camelCase, jak i zagnieżdżonych wariantów ``` #### Przykład 3: Treści Wielojęzyczne ```javascript // Zapytanie wyszukiwania (mieszane angielski i chiński) "project roadmap 项目规划" // Segmentacja i wyszukiwanie obejmujące oba języki jednocześnie ``` ### Asysta W Navigacji W Dokumencie Długim Jedną z wyjątkowych funkcji NoteRich jest jego zdolność do obsługiwania **ogromnych dokumentów** bez problemu. Niezależnie od tego, czy pracujesz z specyfikacjami technicznymi, pracami badawczymi czy kompleksową dokumentacją projektową, znalezienie konkretnych treści w długich dokumentach jest płynne. #### Jak Funkcjonuje Wyszukiwanie Wewnątrz Dokumentu Gdy wykonujesz wyszukiwanie, NoteRich nie tylko zwraca dokumenty odpowiadające zapytaniu – zapewnia **precyzyjną nawigację wewnątrz dokumentu**: ```mermaid sequenceDiagram participant U jako Użytkownik participant SearchEngine participant DocumentIndex participant Viewer U->>SearchEngine: Wprowadzanie zapytania wyszukiwania SearchEngine->>DocumentIndex: Wyszukiwanie w wszystkich wielokosztach DocumentIndex-->>SearchEngine: Zwrot dokumentów odpowiadających zapytaniu i pozycje wyników SearchEngine->>Użytkownik: Wyświetlenie wyników z liczbą zgodności Użytkownik->>Użytkownik: Kliknięcie na wynik SearchEngine->>Viewer: Otwarcie dokumentu w pierwszym wyniku Viewer->>Użytkownik: Wyróżnienie wszystkich wyników za pomocą kontrolerów nawigacji Użytkownik->>Viewer: Przemiana między wynikami (Kolejny/Wiadome) Viewer->>Użytkownik: Pokazanie wskazówki pozycji wyniku (np. „3 z 12”) ``` #### Kluczowe Funkcje dla Dokumentów Długich 1. **Wyświetlanie Liczby Zgodności**: Każdy wynik wyszukiwania pokazuje liczbę zgodności w danym dokumencie (np. „Raport roczny 2024 · 15 zgodności"), co pomaga odróżnić dokumenty z największą wagą. 2. **Natychmiastowa Przemiana do Wyniku**: Kliknięcie na wynik otwiera dokument i automatycznie przeskakuje do pierwszej zgodności, z wyróżnieniem tekstu zgodnego. 3. **Kontrola Nawigacji**: Użyj skrótów klawiszowych lub przycisków interfejsu, aby przejść między wszystkimi wynikami: - `F3` lub `Cmd+G`: Kolejny wynik - `Shift+F3` lub `Shift+Cmd+G`: Poprzedni wynik - Wizualny wyświetlacz pokazuje Twoją obecną pozycję (np. „Zgodność 7 z 23”) 4. **Wyróżnienie Wielu Zgodności**: Wszystkie instance Twojego słowa kluczowe są jednocześnie wyróżnione, dając wizualny obraz rozmieszczenia w dokumencie. 5. **Zachowanie Kontekstu**: Podczas nawigacji między wynikami otoczenie pozostaje widoczne, co zapewnia, że nigdy nie tracisz pozycji w złożonych dokumentach. #### Przykład Rzeczywisty: Navigacja W Specjalistycznych Specyfikacjach Wyobraź sobie, że masz 50 000 znaków dokument specjalistyczny. Musisz znaleźć wszystkie wzmianki o „autentyfikacji protokołu”. | Krok | Działanie | Wynik | |------|----------|--------| | 1 | Wpisać `autentyfikacja protokołu` w pasku wyszukiwania | Dokument specjalistyczny pojawia się z „8 zgodności” | | 2 | Kliknięcie na wynik wyszukiwania | Dokument się otwiera, przeskakuje do pierwszej zgodności | | 3 | Nacisnięcie `F3` siedem razy | Przeglądanie wszystkich 8 wersji kolejno | | 4 | Obserwowanie wyróżnionych wyników | Wizualny obraz rozmieszczenia słowa kluczowego | Ta zdolność przekształca długie dokumenty z nieprzyjaznymi ścianami tekstu w przejrzyste struktury wiedzy, z której każda informacja jest w zaledwie kilku kliknięciach. #### Wskazówki dotyczące Wyszukiwania w Dokumencie Długim - **Używaj Szczególnych Frzacji**: Dłuższe zapytania redukują fałszywe wyniki w dużych dokumentach - **Sprawdź Liczbę Zgodności**: Wysokie liczby zgodności mogą wskazywać często używane terminy - **Połącz z Filtrowaniem Wielokosztów**: Wyszukiwanie w określonych wielokosztach, aby zawęzić zakres - **Wykorzystaj Precyzję Tytułów**: Strukturyzuj nagłówki sekcji w sposób precyzyjny dla dokładnego dopasowania tytułów --- ## Część 5: Optymalizacja Wydajności ### Przechowywanie Oparte na IndexedDB NoteRich wykorzystuje **IndexedDB** do wysokowydajnego przechowywania lokalnego, umożliwiając natychmiastowe wyszukiwanie nawet przy dużych bazach wiedzy. #### Architektura Bazy Danych Każdy wielokoszt utrzymuje własną bazę danych IndexedDB: ``` noterich_note_database_{workspaceId} → Metadane notatek i treści noterich_search_index_{workspaceId} → Dokumenty indeksu wyszukiwania ``` To izolacja zapewnia: - **Szybką zmianę**: Bez konieczności wczytywania danych z innych wielokosztów - **Indywidualne kopiowanie**: Wyeksportowanie poszczególnych wielokosztów - **Prawidłowe uprawnienia**: Wysokowydajna kontrola dostępu ### Aktualizacje Indeksu Incydentalne Zamiast budowania całego indeksu wyszukiwania za każdym razem, NoteRich wykorzystuje inteligentne aktualizacje incydentalne: ```mermaid graph LR A[Nota Zapisana] --> B{Is indeks dostępny?} B -->|Tak| C[Porównanie daty | B -->|Nie| D[Kompletne budowanie indeksu] C -->|Nowsze| E[Zaktualizowanie wprowadzenia indeksu] C -->|Stare| F[Pominenie - już indeksowane] E --> G[Pozostawienie w IndexedDB] D --> G F --> H[Indeks obecny] style A fill:#fafafa,stroke:#eaeaea style B fill:#000,stroke:#000,color:#fff style C fill:#fafafa,stroke:#eaeaea style D fill:#fafafa,stroke:#eaeaea style E fill:#fafafa,stroke:#eaeaea style F fill:#fafafa,stroke:#eaeaea style G fill:#fafafa,stroke:#eaeaea style H fill:#fafafa,stroke:#eaeaea ``` ### Próbki Wydajności Nasze testy pokazują wyjątkową wydajność nawet przy dużych rozmiarach: ```echarts { "xAxis": { "type": "category", "data": ["1k Notes", "5k Notes", "10k Notes", "20k Notes", "50k Notes"], "axisLabel": { "color": "#666", "rotate": 0 } }, "yAxis": [ { "type": "value", "name": "Liczba Notatek", "splitLine": { "lineStyle": { "color": "#f4f4f5" } }, "axisLabel": { "color": "#666" } }, { "type": "value", "name": "Załóż", "splitLine": { "show": false }, "axisLabel": { "color": "#666" } } ], "series": [ { "name": "Liczba Notatek", "data": [1000, 5000, 10000, 20000, 50000], "type": "bar", "itemStyle": { "color": "#eaeaea", "borderRadius": [4, 4, 0, 0] } }, { "name": "Załóż", "data": [8, 12, 15, 22, 35], "type": "line", "yAxisIndex": 1, "smooth": true, "lineStyle": { "color": "#000", "width": 3 }, "itemStyle": { "color": "#000" }, "symbol": "circle", "symbolSize": 8 } ], "grid": { "left": "10%", "right": "10%", "bottom": "15%" }, "legend": { "data": ["Liczba Notatek", "Załóż", "Załóż"], "bottom": 0, "textStyle": { "color": "#666" } } } ``` Nawet przy **50 000 notatek** zapytania wyszukiwania zwracają wyniki w ciągu 40 milisekund – szybciej niż mrugnięcie oka. ### Wydajność Pamięci Silnik wyszukiwania wykorzystuje optymalne struktury danych: - **FlexSearch Dokument Indeks**: Kombinuje kilka polí w jeden efektywny indeks - **Wspólny Map Notatek**: Zachowanie O(1) wyszukiwania dla metadanych notatek - **Procesowanie Zgrupowanych Wydarzeń**: Aktualizacja indeksów w partii, aby uniknąć blokowania interfejsu - **Powolne Ladenie**: Indeksy wyszukiwania wczytywane na żądanie przy zmianie wielokosztów --- ## Część 6: Dobre Praktyki Zarządzania Wielokosztami ### Tworzenie Efektywnej Struktury Wielokosztów #### Zalecane Wzory **Wzór 1: Rozdzielenie Na Podstawie Domeny** ``` ├── work-engineering ├── work-marketing ├── work-hr └── personal ``` **Wzór 2: Organizacja Oparta na Projektach** ``` ├── project-alpha ├── project-beta ├── project-gamma └── archive-2024 ``` **Wzór 3: Organizacja Czasowa** ``` ├── 2025-q1 ├── 2025-q2 ├── 2025-q3 └── 2025-q4 ``` ### Kiedy Tworzyć Nowe Wielokosce Rozważ stworzenie nowego wielokosca, gdy: ✅ **Granice kontekstu są jasne**: Różne projekty, zespoły lub obszary życia ✅ **Potrzebne różne kontrole dostępu**: Niektóre notatki wymagają ograniczonego udostępniania ✅ **Bazy wiedzy rośnie**: Rozdzielenie, gdy jeden wielokoszt przekracza 10 000 notatek ✅ **Wymagania współpracy różnią się**: Różne współpracownicy dla różnych tematów ### Kiedy Pozostać w Jednym Wielokoscu Zachowaj notatki razem, gdy: ❌ **Częste powiązania**: Notatki regularnie łączą się ze sobą ❌ **Wyszukiwanie obejmuje tematy**: Często wyszukiwujesz wszystkie treści ❌ **Opłaty budżetowe przewyższają korzyści**: Dla małych zbiorów (<1 000 notatek) --- ## Część 7: Zaawansowane Wskazówki i Sztuczki ### Wskazówka 1: Wykorzystanie Segmentacji Hasztagów NoteRich automatycznie segmentuje hasztagi do wyszukiwania: ``` #machine-learning → wyszukiwane jako „machine” + „learning” ``` To umożliwia znalezienie notatek z #machine-learning, gdy wyszukujesz „machine” lub „learning”. ### Wskazówka 2: Używanie Nazw Adresów Zawierających Załączniki w Wyszukiwaniu Nazwy adresów zawierających załączniki są indeksowane i wyszukiwane: ``` quarterly_report.pdf → wyszukiwane jako „quarterly” + „report” + „pdf” ``` ### Wskazówka 3: Wyszukiwanie Wzorów Matematycznych Treści zależne od wyrażeń matematycznych są wyodrębniane i indeksowane: ``` E = mc² → wyszukiwane elementy indeksowe ``` ### Wskazówka 4: Optymalizacja dla Częstych Wyszukiwań Strukturyzuj informacje często odwzorowywane w tytułach, aby uzyskać precyzyjne dopasowanie: ``` Lepiej: „Analiza budżetu marketingowego Q4” Zamiast: „Kilka myśli o liczbach” ``` ### Wskazówka 5: Regularne Utrzymywanie Indeksów Chociaż NoteRich automatycznie obsługuje indeksowanie, okresowe przebudowanie może optymalizować wydajność: 1. Otwórz Ustawienia → Wyszukiwanie 2. Kliknij „Przebudowa Indeksu Wyszukiwania” 3. Poczekaj na komunikat zakończenia Zalecane jest to po: - Masowych imporcie (>1 000 notatek naraz) - Wielkich aktualizacjach wersji - Wyraźnym spowolnieniu wyszukiwania --- ## Część 8: Rozwiązywanie Popularnych Problemów ### Problem: Brak Wyników Wyszukiwania **Możliwe Przyczyny:** 1. Notatka znajduje się w innym wielokoscu 2. Indeks nie został jeszcze aktualizowany 3. Notatka jest oznaczona jako szkic **Rozwiązania:** - Sprawdź obecny wskaźnik wielokosca w URL-ie - Poczekaj kilka sekund, aby indeks się uaktualizował - Sprawdź status notatki (szkice są wykluczone z wyszukiwania) ### Problem: Wolnikowanie Wielokosztów Jest Powolne **Możliwe Przyczyny:** 1. Duży wielokoszt z wieloma notatkami 2. Pierwsze wyszukiwanie indeksu 3. Wydajność browsera IndexedDB **Rozwiązania:** - Pozwól na budowanie jednokrotnie pamięci wyszukiwania (jednorazowa operacja) - Rozważ podzielenie bardzo dużych wielokosztów - Upewnij się, że przeglądarka ma wystarczającą pulę pamięci ### Problem: Indeks Wyszukiwania Nie Jest Ustawiany **Objawy:** - Notatki ostatnio zmienione nie pojawiają się w wyszukiwaniu - Usunięte notatki nadal są widoczne w wynikach **Rozwiązanie:** ``` Ustawienia → Zaawansowane → Przebudowa Indeksu Wyszukiwania ``` To zmusza do kompletnego ponownego indeksowania wszystkich notatek w obecnym wielokoscu. --- ## Wniosek: Budowanie Twojego Drugiego Mózgu Opanowanie wielokosztów i zaawansowanego wyszukiwania w NoteRich przekształca twoje notatowanie z pasywnego przechowywania w aktywny partner myślenia. Oto twoja planeta działań: ### Tydzień 1: Podstawy - [ ] Sprawdzenie istniejących notatek i identyfikacja naturalnych granic wielokosztów - [ ] Stworzenie 2-3 wielokosztów oparć na twoich głównych kontekstach - [ ] Ćwiczenie nawigacji między wielokosztami za pomocą wskazówek URL ### Tydzień 2: Optymalizacja - [ ] Eksperymentowanie z różnymi wzorami zapytań - [ ] Nauczenie się operatora OR (`|`) dla elastycznego wyszukiwania - [ ] Przeglądanie rankingu wyników wyszukiwania i dostosowanie tytułów notatek odpowiednio ### Tydzień 3: Mistrzostwo - [ ] Ustawienie specyficznych pracowników wielokosztów - [ ] Wdrożenie konsekwentnych konwencji nazewniczych - [ ] Udostępnienie linków do wielokosztów współpracownikom ### Ciągłe: Utrzymanie - [ ] Kwartalne przeglądanie struktury wielokosztów - [ ] Monitorowanie wskaźników wydajności wyszukiwania - [ ] Dalsze doskonalenie organizacji wraz z rosnącą wiedzą --- <div class="flex flex-wrap gap-2 mt-8 mb-12"> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Wielokoszt</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Zaawansowane Wyszukiwanie</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Semantyczny Indeks</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">IndexedDB</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Wielojęzyczność</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">PKM</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Local-First</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Wydajność</span> </div>