相关动态
使用 JavaScript 工具在网站上实施搜索
2024-11-10 17:21

搜索是任何网站或应用程序的必备工具。一个简单的搜索小部件可以让用户梳理您的整个博客。或者允许客户浏览您的库存。建立自定义照片库?添加搜索框。各种第三方供应商都提供网站搜索功能。或者,您可以采用 DIY 方法并构建整个后端来应答搜索 API 调用。

使用 Javas<em></em>cript 工具在网站上实施搜索

Lunr.js 通过 Javascript 在客户端运行。Lunr 不会向后端发送调用,而是在客户端本身构建的索引中查找搜索词。这避免了浏览器和服务器之间昂贵的来回网络调用。网上有很多教程可以展示 Lunr 的网站搜索功能。但是您实际上可以使用 Lunr.js 来搜索任何 Javascript 对象数组。

在本指南中,我为有史以来排名前 100 的书籍建立了搜索索引 。之后,我将向您展示如何预先构建索引以加快索引速度。我还将向您展示如何充分利用 Lunr 的搜索选项。

创建一个名为 的新 HTML 页面。我在整个指南中都使用这个文件。在 顶部,调用主 Lunr JS 库。

接下来,创建一个名为 的变量。此变量将包含主数据集的 JSON 化字符串。在标签内 定义变量。

我需要将此数据解析为 JSON,以便 Javascript 可以处理它。

为确保加载过程成功,我将遍历 JSON 数据集并打印每个条目。您应该在控制台日志中看到以下内容。

建立搜索索引

现在我将在使用该函数调用的变量中构建搜索索引。这一步需要三件事:

我现在可以调用该函数来构建搜索索引。

如果浏览器的控制台日志中没有错误,则索引构建成功。接下来,我将带它去试驾。

首先,我想看看有没有包含这个词的文件:

我应该在控制台日志中看到以下内容:

好吧。所以有一个文档与搜索查询匹配。但是如何显示呢?

正如我之前提到的,Lunr 返回匹配文档的引用。但不是文档本身。意思是如果我打印,我会看到以下内容。

这里包含一个具有单个元素的对象数组。该元素的字段包含一个值。这是因为我使用该字段作为参考。要显示完整的文档,我需要加倍努力。

在上面的代码中,我使用函数迭代结果。然后我在结果集中查找所有引用的文档。所以包含完整的搜索结果。

现在,我重复搜索关键字。代码如下。

结果是:

就这么简单!添加对任何 JSON 对象数组的搜索只需要五个简单的步骤:

您可能已经注意到,在每次页面刷新时构建搜索索引都需要一些时间。时间现在可能难以察觉。但它不会是在远程服务器上的时候。Lunr 允许 预先构建搜索索引 以使搜索更具响应性。

有两种预构建索引的方法。第一种方法是在建立索引后对其进行序列化。由于我已经在教程中创建了索引,所以我使用这种方法。

然后我会用序列化的字符串替换。索引加载命令也会改变。

    以上就是本篇文章【使用 JavaScript 工具在网站上实施搜索】的全部内容了,欢迎阅览 ! 文章地址:http://fhzcwj.xhstdz.com/news/2180.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://fhzcwj.xhstdz.com/mobile/ , 查看更多   
最新文章
国际站:SEO Checker诊断工具助力商家诊断详情页,提升seo效果
国际站商家看过来:众所周知,一个优质的商品描述,可以提升买家转化的同时,还可以带来更多免费流量,从而让商家获得更多询盘和
【富蕴网站优化】在网站优化中有哪些常用的网站推广方式?
1、,百度,google的优化,针对,音乐,mp3下载,电影、游戏等一级,二级,甚至关键字优化。Seo介绍的网站很多,就不在这里重复
公众号简单爬虫--把公众号文章全部转载到网站(二)
根据上一篇的方法,我们得到了一个获取列表信息的地址,而且是用get方法就可以的地址.那么事情就变得很简单了,就是常规的爬取信息
1.【typecho】个人博客安装—使用群晖演示
哈喽,大家好今天给大家带来的是最近在群晖上安装一个博客的演示。先给大家看一下安装好之后的效果。虽然说现在使用博客和看博客
SEO优化攻略,揭秘网站排名提升与流量最大化技巧
本文深入解析SEO优化策略,通过关键词研究、高质量内容创作、链接建设等技术手段,帮助提升网站在搜索引擎中的排名,从而实现流
【HMNOTE搜狗手机输入法下载】小米HMNOTE搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******
vivo S19 Pro:全焦段人像拍照的5G游戏续航新宠
在智能手机市场日益同质化的今天,vivo S19 Pro以其独特的全焦段人像拍照功能、强大的5G性能以及出色的游戏续航能力,成为了众多
12月12日,星期四, 每天60秒读懂全世界!
新闻来源:百度热搜榜1. 25年老员工被开除 法院判赔98万近日,工作25年的李某被安排学习员工手册,全程玩手机遭公司开除,引发热
刚子扯谈:网站运营在左 技术在右 真TM扯
2013年8月5日,雨未下,天猴焖开片语:今天的扯谈内容是我转载我Java学习交流群里面一个哥们,当然我推荐他加入了朋友的网络分析
做seo营销网站/百度惠生活商家入驻
假定我们定义了一个Persion的message type,我们的用法可能如下定义 和 package tutorial;message Person {required int
相关文章