diff options
author | matsuyoshi <sfbgwm30@gmail.com> | 2021-10-25 17:24:27 +0300 |
---|---|---|
committer | matsuyoshi <sfbgwm30@gmail.com> | 2021-10-25 17:25:25 +0300 |
commit | d18377c4d8e3e179086c7bb263f39edfb9b3d60b (patch) | |
tree | 4cbe334ec4f6e5afd08930aaff482f61808951eb | |
parent | 2a14420ed48e4457486f84eaeb8edd5ec0d7d9ea (diff) |
remove duplicate results
-rw-r--r-- | assets/js/search.js | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/assets/js/search.js b/assets/js/search.js index 58d0ec7..a2ffc4e 100644 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -61,33 +61,33 @@ const renderResults = (results) => { return } - let instance = new Mark(document.querySelector('#searchResults')) - results.forEach((result) => { - let isBody = result.field === "body" + let arr = results[0].result + if (results.length > 1) { + arr.concat(results[1].result) + } + arr.filter((element, index, self) => + self.findIndex(e => e.id === element.id) === index) - // TODO: create array remove duplicate docs - result.result.forEach((result) => { - let resultPage = document.createElement('div') - resultPage.className = 'searchResultPage' + let instance = new Mark(document.querySelector('#searchResults')) + arr.forEach((result) => { + let resultPage = document.createElement('div') + resultPage.className = 'searchResultPage' - let resultTitle = document.createElement('a') - resultTitle.className = 'searchResultTitle' - resultTitle.href = result.doc.href - resultTitle.innerHTML = result.doc.title - resultPage.append(resultTitle) + let resultTitle = document.createElement('a') + resultTitle.className = 'searchResultTitle' + resultTitle.href = result.doc.href + resultTitle.innerHTML = result.doc.title + resultPage.append(resultTitle) - if (isBody) { - let resultBody = document.createElement('div') - resultBody.className = 'searchResultBody' - let matchPos = result.doc.body.indexOf(query) - let bodyStartPos = matchPos - BODY_LENGTH / 2 > 0 ? matchPos - BODY_LENGTH / 2 : 0 - resultBody.innerHTML = result.doc.body.substr(bodyStartPos, BODY_LENGTH) - resultPage.append(resultBody) - } - searchResults.append(resultPage) + let resultBody = document.createElement('div') + resultBody.className = 'searchResultBody' + let matchPos = result.doc.body.indexOf(query) + let bodyStartPos = matchPos - BODY_LENGTH / 2 > 0 ? matchPos - BODY_LENGTH / 2 : 0 + resultBody.innerHTML = result.doc.body.substr(bodyStartPos, BODY_LENGTH) + resultPage.append(resultBody) + searchResults.append(resultPage) - instance.mark(query) - }) + instance.mark(query) }) } |