From d964760ad9ca8cc15e2d8759ca102ab946245c33 Mon Sep 17 00:00:00 2001 From: Travis Beckham Date: Fri, 24 Jul 2026 09:00:07 -0500 Subject: [PATCH] Remove query parser characters from search term Signed-off-by: Travis Beckham --- linkerd.io/assets/js/search.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/linkerd.io/assets/js/search.js b/linkerd.io/assets/js/search.js index 92c82427fa..49e4217e24 100644 --- a/linkerd.io/assets/js/search.js +++ b/linkerd.io/assets/js/search.js @@ -46,8 +46,19 @@ window.addEventListener( request.addEventListener("error", renderError, false); request.send(null); }; + // Lunr's query parser treats characters like : + - * ~ ^ as query syntax, + // so remove them to keep user input literal and avoid throwing an error + // when a search term contains them. + // https://lunrjs.com/guides/searching.html#fields + const escapeLunrQuery = (text) => text.replace(/[:+\-*~^]/g, " "); const renderSearchResults = () => { - const results = index.search(query); + let results; + try { + results = index.search(escapeLunrQuery(query)); + } catch (e) { + renderError(); + return; + } // Remove loader target.innerHTML = ""; // Render header