From 6d0c021011602053a581e54fc354c008ec8daf25 Mon Sep 17 00:00:00 2001 From: George Cushen Date: Sat, 28 Sep 2019 15:25:26 +0100 Subject: [PATCH] feat: improve search for diacritics + Chinese/Korean/Japanese languages Close #1361 --- assets/js/academic-search.js | 6 +++--- layouts/partials/site_js.html | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/assets/js/academic-search.js b/assets/js/academic-search.js index 9b9ef001..1a22753c 100644 --- a/assets/js/academic-search.js +++ b/assets/js/academic-search.js @@ -14,11 +14,11 @@ let fuseOptions = { shouldSort: true, includeMatches: true, tokenize: true, - threshold: 0.0, + threshold: search_config.threshold, // Set to ~0.3 for parsing diacritics and CJK languages. location: 0, distance: 100, maxPatternLength: 32, - minMatchCharLength: 2, + minMatchCharLength: search_config.minLength, // Set to 1 for parsing CJK languages. keys: [ {name:'title', weight:0.99}, /* 1.0 doesn't work o_O */ {name:'summary', weight:0.6}, @@ -158,7 +158,7 @@ function render(template, data) { // If Academic's in-built search is enabled and Fuse loaded, then initialize it. if (typeof Fuse === 'function') { // Wait for Fuse to initialize. - $.getJSON(search_index_filename, function (search_index) { + $.getJSON(search_config.indexURI, function (search_index) { let fuse = new Fuse(search_index, fuseOptions); // On page load, check for search query in URL. diff --git a/layouts/partials/site_js.html b/layouts/partials/site_js.html index 46bbf6b4..41945d9f 100644 --- a/layouts/partials/site_js.html +++ b/layouts/partials/site_js.html @@ -51,13 +51,13 @@ {{ if ne site.Params.search.engine 0 }} {{/* Configure search engine. */}} + {{ $min_length := site.Params.search.academic.min_length | default 1 }} + {{ $threshold := site.Params.search.academic.threshold | default 0.3 }} + {{ $search_i18n := dict "placeholder" (i18n "search_placeholder") "results" (i18n "search_results") "no_results" (i18n "search_no_results") }} + {{ $search_config := dict "indexURI" ("/index.json" | relLangURL) "threshold" $threshold "minLength" $min_length }}