Enterprise:网站搜索 - Elastic Site Search

news/2024/5/13 12:33:08/文章来源:https://elasticstack.blog.csdn.net/article/details/104755169

随着你公司网站的内容不断地增加,网站不断地更新,你有没有发现查找你想要的内容越来越难了。一方面是内容是新的内容不断增加,另外一方面你之前保存的链接也由于网站的更新而不能使用了。你有没有想到想到为自己的网站添加一个搜索框,从而更加方便我们或者我们的客户来对我们的网站进行搜索。如果你这么想,那么Elastic Site Search将是你的答案。你无需做很多的工作,你只需要简单的配置就可以完成。剩下的工作就交给Elastic来完成。运用Elastic Site Search,你所需要的就是提供一个你的网站的url,Elastic Site Search对你的网站进行爬虫,并生产可以进行搜索的数据。

Elastic Site Search(以前称为Swiftype站点搜索)提供了构建强大的网站搜索所需的工具-无需学习。 免维护的搜寻器使内容保持最新,而直观的自定义功能和强大的分析功能可完全控制搜索的相关性。 所有这些都得到Elasticsearch的大规模支持。

您需要功能强大的搜索后端+设计良好的UI。根据您网站的目的和规模,搜索可能是一项至关重要的功能,可使您的用户快速找到所需的信息。 Elasticsearch使构建提供相关结果的搜索引擎变得更加容易,但是构建搜索后端只是实现搜索体验的工作的一部分。 没有直观的搜索界面,您的用户可能无法获得搜索引擎的全部价值。

Elastic Site Search(以前称为Swiftype Site Search)将搜索作为一项服务来完全处理您的搜索引擎的后端,并且我们还帮助您构建设计良好的搜索UI。 网站搜索基于Elastic Stack构建,这使我们能够支持10,000多个生产搜索引擎,每月服务超过50亿个查询。 可以肯定地说,由于我们已经帮助Lyft,AT&T,Twilio,Asana和Samsung等大小公司提供一流的搜索体验,因此多年来我们已经在搜索方面学到了一两件事。 如果您想进一步了解Swiftype的架构和弹性堆栈的使用,请查看这个“Swiftype's Technical Journey with Elasticsearch”。

Elastic Site Search使用三个简单的步骤来进行搜索搜索。Elastic Site Search使强大的搜索变得简单。 不是“对高级开发人员来说简单”简单,而是“对任何人来说简单”简单。 单击以进行爬网,拖放以进行调整。 看到? 简单。

输入您的网站地址,然后让功能强大的“Site Search”搜寻器处理其余的内容。在您的站点上执行几行代码,以添加一个由Elasticsearch驱动的搜索框。通过增强,权重和同义词来微调用户的搜索体验。

在接下来的教程中,我们将详细介绍如何来创建一个我们的Site Search。

创建一个自己的网站

为了方面我们的展示,我创建一个我自己的网站。你可以按照如下的方法来下载网站的代码:

git clone https://github.com/liu-xiao-guo/the-example-app.nodejs

等我们下载完这个应用后,我们可以使用如下的命令来进行安装:

npm install

等安装好后,我们可以使用如下的命令来进行运行我们的服务器:

npm run start:dev

上面显示我们的服务器运行于localhost的3000端口上。我们在浏览器中输入localhost:3000:

从上面我们可以看出来,我们已经成功地把服务器运行起来了。

这是一个基于nodejs的express框架的网站。为了能够使得我们的网站能够被Site Search的网站访问,我们可以把它置于一个公开的网上,并赋予一个可以访问的域名。针对我的情况,我使用natapp.cn。选择一个自己喜欢的域名。我们可以把这个nodejs的应用置于自己的电脑上运行。对于一些开发者喜欢花生壳的,也可以参阅网站https://www.oray.com/来做这个。

我运行起我的natapp应用:

在上面,我们可以看到我们的natapp应用已经成功地把我们的127.0.0:3000映射到http://liuxg.natapp1.cc上了。我们在浏览器中输入你自己的url:

在上面我们可以看出来我们的url已经成功地起作用了。

创建一个Elastic Site Search帐户并将您的数据编入Swiftype

您可以通过开始免费的14天试用期进行注册。 在设置过程中,“Site Search”将要求您输入您的Web网址。 您的域将被爬网,并且您的文档将被索引。

一旦我们成功地注册完,我们可以在地址https://app.swiftype.com/login进行登录:

等我登录过后,我们可以看到如下的画面:

我们选择“Site Search”:

我们点击“CREATE A NEW ENGINE”按钮:

在上面填入我们的网站的url。然后,我们点击 “VERIFY URL”:

我们输入想要的Engine Name,并点击 “CREATE ENGINE”按钮:

上面显示我们的Engine已经被成功地创建。我们可以点击 “Install Search”菜单:

从上面的图中,我们可以看出来,我们的网站正被Site Search爬,正在建立索引。等我们的网页被爬完后, 我们可以看到如下的画面:

这个时候,我们点击 “Content” 菜单,我们可以看到:

从上面我们可以看出来我们的网站的内容已经被成功地爬完了,并已经建立了自己的索引。我们可以在上面的Filter pages的搜索框中来搜索我们想要的关键词,比如Hello:

我们可以看到很多的链接都被罗列出来了。我们可以点击上面的INSPECT按钮:

我们可以点击上面的VIEW DETAILS按钮查看这个链接的详细信息。

在这里的其它的内容就留给大家自己来开发了。

为Web应用加上搜索框

到目前为止,我们所有的工作都在swiftype.com网站上完成,但是在大多数的情况下,我们其实更想把我们的搜索体验运用到我们的实际的Web应用中。我们想为我们的应用添加上一个搜索框。为此,我们按照教程“jQuery Plugin Guide”来做我们的练习。我们将实现一个最简单的搜索框来展示。我们打开我们的nodejs应用的文件layout.pug。它位于:

$ ls views/layout.pug 
views/layout.pug

我们首先去掉下面被注释的3条语句:

上面的三天语句将为我们的每个页面创建一个搜索的输入框。同时为了能够使得我们的搜索框能够正确运行,我们必须首先在app.swiftype.com网站得到我们的Engine Key:

我们把这个Engine Key填入到lib目录下的site_search.js中:

$ ls lib/site_search.js 
lib/site_search.js

填入后的site_search.js是这样的:

$(function() {$('#st-search-input').swiftypeSearch({resultContainingElement: '#st-results-container',engineKey: 'YourEngineKey'});
});

我们重新运行我们的应用:

我们的应用显示的画面如上。这个时候我们在上面的搜索中输入我们想要的关键词,比如hello:

我们可以在上面查看到当我们输入hello后,在我们的网页上出现了我们所搜索的一些结果,我们可点击其中的返回的结果。比如点击上面列表中的“Hello SDKs - The Example App

显然这个是我们所搜索的结果的网页。

到目前为止,是你不是很酷啊!我们只做了很少的代码,但是对我们的网站的可用性大大提高了。

添加弹出式的展示结果

在上面我们把我们的搜索结果展示在网站的最上面。开发者可以通过CSS把这个框放到我们喜欢的位置来继续展示。这个就留给细心的开发者。在这节中,我们用另外一种展示的方法来展示搜索的结果。

我们可以在lib目录下找到一个叫做options.js的文件:

$ ls lib/options.js 
lib/options.js

这个文件的内容,我们可以从app.swiftype.com中来找到:

请注意上面的被红色圈住的地方。我们把那个部分的代码拷入到options.js文件中。注意的是不要拷贝<script...> 及 </script>部分。

我们同时修改layout.pug,去掉被注释的两条语句。修改后的文件显示如下:

等修改完后,我们重新运行我们的服务器:

我们在上面输入“hello”,然后enter:

在上面,我们可以看到有一个弹出的框。里面含有我们搜索到的结果。我们可以点击其中的被搜索到的链接,比如上面的Hello Contentful - The Example App:

自定义您的搜索结果

Elastic Site Search使您可以基于查询逐个自定义搜索结果(结果排名),调整数据类型的权重(权重),并通过仪表板创建同义词组(同义词)。 要完全以编程方式控制搜索引擎的相关性,可以利用Swiftype API。

我们可以针对上面的各个字段进行加权,从而改变我们输出的结果的排序。我们也可以添加我们喜欢的字段进行调整。

我们也可以添加我们喜欢的同义词来进行搜索,比如,我们为hello添加一个同义词“你好”:

等我们在服务器端配置好后,我们立马可以在我们的客户端进行搜索了:

从上面我们可看出来:当我们输入“你好”后,我们立马可以查看到所有的hello相关联的文档。

参考:

【1】https://www.elastic.co/blog/how-to-build-a-site-search-ui

【2】https://swiftype.com/documentation/site-search/guides/jquery

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_751270.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Observability: 使用Elasticsearch,Kibana,Heartbeat 监控网站并使用 Slack 发出警报

在之前的文章 “使用Heartbeat进行Uptime监控” 中&#xff0c;我介绍了使用 Uptime 来监控一个网站的运行情况。在之后的很多文章中我也介绍了如何使用 Elastic Alerts 来发送一个警报。如果你想了解更多&#xff0c;请参阅文章“Elastic: 创建一个 Elastic 邮件警报 - 7.7 发…

Observability:网站 User Experience 监控

用户体验&#xff08;User Experience&#xff09;提供了一种量化和分析 Web 应用程序感知性能的方法。 与测试环境不同&#xff0c;用户体验数据反映了真实的用户体验。 通过按 URL&#xff0c;操作系统&#xff0c;浏览器和位置查看数据来进一步细化 - 所有这些都会影响你的应…

Enterprise:如何通过搜索提高网站参与度

你网站上的搜索体验通常是访问者满意度的关键驱动因素。 即使在设计良好、组织良好的网站上&#xff0c;访问者也经常通过搜索来找到他们需要的确切产品、服务、内容和信息。 事实上&#xff0c;许多访问者会立即进入搜索框。 他们返回的搜索结果的质量&#xff0c;以及他们可以…

Elasticsearch:使用 Elasticsearch 提高网站搜索查询的相关性

当你希望向用户提供满足其要求的相关数据时&#xff0c;相关性至关重要。这是任何企业的关键功能。吸引受众的一个好的营销策略是通过向他们提供他们正在搜索的内容来满足客户的需求。 糟糕的搜索可能会导致你平台上的流量明显减少。这是因为用户已经接受过培训&#xff0c;可…

高度定制的WSS网站-DCC文档管理系统

1个月前我提及过新的Share Point Portal2003定制开发项目&#xff0c;现在项目基本上七七八八了&#xff0e;该有的都有了&#xff0c;主要的功能如下&#xff1a; 1&#xff0e;控制到目录层级而不是文档库层次&#xff0c;并且基于群组进行授权管理&#xff1b; 2&#xff0e…

大型互联网网站架构心得[转]

我们知道&#xff0c;对于一个大型网站来说&#xff0c;可伸缩性是非常重要的&#xff0c;怎么样在纵向和横向有良好的可伸缩性&#xff0c;就需要在做架构设计的时候考虑到一个分的原则&#xff0c;我想在多个方面说一下怎么分&#xff1a;首先是横向的分&#xff1a;1. 大的网…

机器学习(七)-基于KNN分类的约会网站配对改进算法

基于KNN分类的约会网站配对改进算法1 项目介绍2 准备数据:从文本文件中解析数据3 分析数据:使用 Matplotlib 创建散点图4 准备数据:归一化数值4 实施 kNN 算法5 测试算法:作为完整程序验证分类器6 使用算法:构建完整可用的预测系统完整代码1 项目介绍 某APP用户一直使用在线约…

推荐一个类似于国内知乎国外网站-Quora

好像是在知乎上随意浏览时中看到Quora这个社区的&#xff0c;模糊的记得知主当时给的评价是Quora上有很多大咖&#xff0c;职业遍布各个领域&#xff0c;对一些问题的看法比较新颖&#xff0c;还可以这么说&#xff0c;足不出户就可以感受到贴切的英语环境。抱着好奇的心里就登…

分享45个海量免费电子书下载网站

随着网络和信息技术的快速发展&#xff0c;电子书越来越流行。以Amazon Kindle为代表的电子书阅读器的出现改变了人们传统的阅读方式&#xff0c;如同iPod改变人们听音乐一样。如今&#xff0c;很多网上书店也推出了电子书商品&#xff0c;相比传统的纸质书&#xff0c;电子书便…

使用Trie树实现网站对用户输入的敏感词打码

使用Trie树实现网站对用户输入的敏感词打码 什么是Trie树&#xff1f; Trie树&#xff0c;又称单词查找树&#xff0c;Trie树&#xff0c;是一种树形结构&#xff0c;是一种哈希树的变种。典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&…

从HTML到XHTML--使用Web标准建设网站 《转》

转自http://ysearchblog.cn/2006/08/htmlxhtmlweb_1.html 从HTML到XHTML--使用Web标准建设网站(一) 作者&#xff1a;张克军 用户体验部 小编按&#xff1a;最近看到搜索日志上有不少朋友对雅虎的网页设计模式感兴趣&#xff0c;我们的设计师张克军也不禁手痒&#xff0c;和大家…

Three.js_环境的搭建_搭建本地官方网站

Three.js – JavaScript 3D Library 去官网下载 Three.js引擎的包 下载 VSCode 代码编辑器 Download Visual Studio Code - Mac, Linux, Windows 安装好后导入 下载好的 three.js 的引擎包 安装本地官网 VSCode里右键"在集成终端中打开" 输入 指令 npm install …

QuickWAP 2005让WAP网站拥有更好的兼容性

QuickWAP 2005让WAP网站拥有更好的兼容性 很多利用WML或ASPWML编写的WAP程序是必须利用手机或手机模拟器去浏览的&#xff0c;即使有些站点做了适配&#xff0c;也不过是利用调转指令将用户引导到其它网页而已。另一种兼容性的方法如双模网站&#xff0c;即一套站点同时做WAP和…

简体中文化的 Slax-ChineseOptimized

上次说到安装Slax后不直接支持中文&#xff0c;也有几个Linux喜爱者&#xff02;辩驳&#xff02;了下&#xff0c;说我没有去细致的研究&#xff0c;确实&#xff0c;像我这样在MS平台上用的比较多的一下子也没有那么多时间去研究&#xff0c;所以只有先直接拿来用了 Slax-Chi…

ASP.NET MVC3书店--第十节 为网站导航与局部设计做最后的修改(转)

http://blog.sina.com.cn/s/blog_6ad539a90100rc4n.html现在我们已经完成了这个网站中的主要功能。但我们还需要为整个网站的导航&#xff0c;首页与书籍列表页面做一点最终的修改。 10.1 创建购物摘要分部视图 首先&#xff0c;我们想要在整个网站中显示用户购物车中的书籍…

11个超炫的视差滚动网站欣赏

目前这种视差滚动效果被越来越多的国内外网站所应用&#xff0c;成为网页设计的热点趋势。 通过一个很长的网页页面&#xff0c;其中利用一些令人惊叹的插图 和图形&#xff0c;并使用视差滚动&#xff08;Parallax Scrolling&#xff09;效果&#xff0c;让多层背景以不同的速…

Avast!:小型网站最易遭受的3种黑客攻击

avast是捷克研发的杀毒软件&#xff0c;从网站上找到一篇avast关于网站安全的文章&#xff0c;觉得颇有意思&#xff0c;因此想到翻译过来与大家共享。有不对之处还望大家批评指正。 一个拥有上万访问者的小型网站管理员发来一份信&#xff0c;向我描述了他的遭遇&#xff0c;我…

Photoshop 爱好者应该收藏的42个网站

Photoshop 是 Adobe 公司旗下最为出名的图像处理软件之一&#xff0c;集图像扫描、编辑修改、图像制作、广告创意&#xff0c;图像输入与输出于一体的图形图像处理软件。今天&#xff0c;本文与大家分享42个非常有用的 Photoshop 设计教程和素材资源网站&#xff0c;希望能帮助…

DNN快速入门教程3 - 如何创建DotNetNuke网站

这个入门系列已经停了很长时间了&#xff0c;没有完成的原因是我有太多的东西想写但是自己又没有一个明确的主线。经过最近blog&#xff0c;和QQ群的反馈我突然意识到&#xff0c;这个入门系列就是要帮助大家从零开始完成一个自己的DNN5网站&#xff0c;不需要太过深入&#xf…

(转)SharePoint 2010的网站主题

从SharePoint 2003开始&#xff0c;主题就作为一种自定义SharePoint外观的重要选项。SharePoint 2003和2007中的包括一系列开箱即用的主题&#xff0c;可以被网站所有者通过SharePoint UI应用到SharePoint网站。网页设计师和开发人员可以创建包含自定义图片及CSS文件的自定义主…