Add advanced search engine with inverted index, thread pool execution, configuration API, and comprehensive diagnostics
This commit is contained in:
@@ -71,6 +71,7 @@
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="search-progress-bar" id="search-progress-bar"><div class="search-progress-bar__fill"></div></div>
|
||||
<div class="app-container">
|
||||
|
||||
<!-- Header -->
|
||||
@@ -299,6 +300,73 @@
|
||||
</div>
|
||||
<div class="editor-body" id="config-body">
|
||||
<div class="config-content">
|
||||
|
||||
<!-- Performance Settings — Frontend -->
|
||||
<section class="config-section">
|
||||
<h2>Paramètres de recherche</h2>
|
||||
<p class="config-description">Ces paramètres s'appliquent immédiatement côté client.</p>
|
||||
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-debounce">Délai debounce (ms)</label>
|
||||
<input type="number" id="cfg-debounce" class="config-input config-input--num" min="100" max="2000" step="50" value="300">
|
||||
<span class="config-hint">Délai avant exécution de la recherche (100–2000)</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-results-per-page">Résultats par page</label>
|
||||
<input type="number" id="cfg-results-per-page" class="config-input config-input--num" min="10" max="200" step="10" value="50">
|
||||
<span class="config-hint">Nombre de résultats affichés par page (10–200)</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-min-query">Longueur min. requête</label>
|
||||
<input type="number" id="cfg-min-query" class="config-input config-input--num" min="1" max="5" step="1" value="2">
|
||||
<span class="config-hint">Nombre minimum de caractères avant recherche (1–5)</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-timeout">Timeout recherche (ms)</label>
|
||||
<input type="number" id="cfg-timeout" class="config-input config-input--num" min="5000" max="120000" step="5000" value="30000">
|
||||
<span class="config-hint">Annuler la recherche après ce délai (5000–120000)</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Performance Settings — Backend -->
|
||||
<section class="config-section">
|
||||
<h2>Paramètres backend <span class="config-badge-restart">Redémarrage requis</span></h2>
|
||||
<p class="config-description">Ces paramètres sont sauvegardés sur le serveur. Certains nécessitent un redémarrage ou une réindexation.</p>
|
||||
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-workers">Workers de recherche</label>
|
||||
<input type="number" id="cfg-workers" class="config-input config-input--num" min="1" max="8" step="1" value="2">
|
||||
<span class="config-hint">Threads dédiés à la recherche (1–8)</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-max-content">Taille max contenu (octets)</label>
|
||||
<input type="number" id="cfg-max-content" class="config-input config-input--num" min="10000" max="1000000" step="10000" value="100000">
|
||||
<span class="config-hint">Contenu indexé par fichier (10K–1M). Réindexation requise.</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-title-boost">Boost titre</label>
|
||||
<input type="number" id="cfg-title-boost" class="config-input config-input--num" min="0" max="10" step="0.5" value="3.0">
|
||||
<span class="config-hint">Multiplicateur de pertinence pour les correspondances dans le titre</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-tag-boost">Boost tags</label>
|
||||
<input type="number" id="cfg-tag-boost" class="config-input config-input--num" min="0" max="10" step="0.5" value="2.0">
|
||||
<span class="config-hint">Multiplicateur de pertinence pour les correspondances dans les tags</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<label class="config-label" for="cfg-prefix-exp">Expansions préfixe max</label>
|
||||
<input type="number" id="cfg-prefix-exp" class="config-input config-input--num" min="10" max="200" step="10" value="50">
|
||||
<span class="config-hint">Nombre max de tokens élargis par préfixe (10–200)</span>
|
||||
</div>
|
||||
|
||||
<div class="config-actions-row">
|
||||
<button class="config-btn-save" id="cfg-save-backend">Sauvegarder</button>
|
||||
<button class="config-btn-secondary" id="cfg-reindex">Forcer réindexation</button>
|
||||
<button class="config-btn-secondary" id="cfg-reset-defaults">Réinitialiser</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Tag Filtering (existing) -->
|
||||
<section class="config-section">
|
||||
<h2>Filtrage de tags</h2>
|
||||
<p class="config-description">Définissez les patterns de tags à masquer dans la sidebar. Vous pouvez utiliser des wildcards pour cibler les tags de template.</p>
|
||||
@@ -314,6 +382,17 @@
|
||||
<small>Regex : <code id="config-regex-code"></code></small>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Diagnostics -->
|
||||
<section class="config-section">
|
||||
<h2>Diagnostics</h2>
|
||||
<p class="config-description">Statistiques de l'index et du moteur de recherche.</p>
|
||||
<div id="config-diagnostics" class="config-diagnostics">
|
||||
<div class="config-diag-loading">Chargement...</div>
|
||||
</div>
|
||||
<button class="config-btn-secondary" id="cfg-refresh-diag" style="margin-top:8px">Rafraîchir</button>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user