带你读《Elastic Stack 实战手册》之63:—— 3.5.18.2.Site Search(中)

简介: 带你读《Elastic Stack 实战手册》之63:—— 3.5.18.2.Site Search(中)

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.18.Enterprise Search —— 3.5.18.2.Site Search(上) https://developer.aliyun.com/article/1226777



二、在个人网站上增加搜索框

 

到目前为止,我们所有的工作都在 swiftype.com 网站上完成的,并且完成了一个搜索引擎的创建,接下来我们要在自己的个人网站应用中应用搜索功能,也就是我们需要为我们的网站上添加上一个搜索框。


 这个步骤也很简单,只需要在你的网站上增加几行代码即可,如下是完整示例代码:


<html>
  <head>
    <title>The Most Minimal Seeking</title>
    <scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script type="text/javascript"src="jquery.swiftype.search.js"></script>
    <script type='text/javascript'>
      $(function() {
        $('#st-search-input').swiftypeSearch({
          resultContainingElement: '#st-results-container',
            engineKey: 'swiftype-example-api'
        });
      });
    </script>
  </head>
  <body>
    <form>
      <input type="text" placeholder="Search" id="st-search-input" />
    </form>
    <div id="st-results-container"></div>
  </body>
</html>

那如何在我们已有的网站中应用呢?按照下面代码块分解对应使用即可。

 

首先,需要在页面  标签中引入搜索需要的 js(在 Github 可以下载源码:https://github.com/swiftype/swiftype-faceted-search-example):


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript"src="jquery.swiftype.search.js"></script>

然后,在页面标签中增加搜索 form 表单和负责展示搜索结果的 st-results-container div 标签,通过下面代码块,就可以让我们的网站页面上出现搜索框:

 

<form>
  <input type="text" placeholder="Search" id="st-search-input" />
</form>
<div id="st-results-container"></div>

同时为了能够使得我们的搜索框能够正确运行,我们必须首先在 app.swiftype.com 网站得到我们的 Engine Key,填写到搜索框的触发事件上:

<script type='text/javascript'>
      $(function() {
        $('#st-search-input').swiftypeSearch({
          resultContainingElement: '#st-results-container',
          engineKey: '你的enginekey'
        });
      });
</script>

复制我们网站的 Engine key:

image.png


image.png


我们的网站显示如上,多了一个搜索框。这个时候我们在上面的搜索中输入我们想要的关键词,比如“线程”:


image.png

我们可以看到当我输入“线程”后,在我们的网页上出现了我们所搜索的一些结果,我们可点击其中任意一项就会进入我们的对应的页面中。

至此,其实我们的网站其实已经完成了搜索功能的提供。下面会再介绍一些可以提升搜索体验的高级配置。

 

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.18.Enterprise Search —— 3.5.18.2.Site Search(下) https://developer.aliyun.com/article/1226774

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
8月前
|
人工智能 监控 安全
AI 智能体项目的上线
AI智能体上线非简单部署,而是从实验到社会的审慎放行。需经沙箱测试、灰度发布、多级护栏(输入拦截/输出审查/熔断)、生产集成、全链路监控及应急预案五步闭环,确保安全、稳定、合规。(239字)
|
9月前
|
人工智能 并行计算 供应链
架构师的新形态:成为AI世界的“翻译官”——跨学科协作中的核心Agent职业路线图
本文揭示AI Agent落地核心瓶颈——技术与业务间的“理解鸿沟”,提出“π型人才”新范式:左腿深耕行业、右腿通晓AI原理、横梁强在设计与翻译。聚焦“AI Agent解决方案架构师”这一桥梁型角色,提供18个月能力跃迁路径,赋能复合背景者成为人机协作的关键枢纽。(239字)
933 2
|
6月前
|
人工智能 自然语言处理 API
Graphify:为代码库构建知识图谱,以图遍历替代向量检索
Graphify 是一款Python代码知识图谱工具,支持Claude Code。它通过AST解析、本地语音转录和语义提取三阶段构建带置信度标签(EXTRACTED/INFERRED/AMBIGUOUS)的结构化图谱,将混合语料查询Token消耗降低71.5倍,大幅提升大型代码库分析效率与可解释性。
1191 1
Graphify:为代码库构建知识图谱,以图遍历替代向量检索
|
12月前
|
JSON 自然语言处理 安全
《服务治理》RPC框架序列化协议深度解析
序列化是将对象转换为字节流的过程,反序列化则是将字节流恢复为对象的过程。在RPC调用中,序列化协议的性能直接影响整个系统的吞吐量和延迟。
|
程序员 编译器 C语言
C中的 malloc 和C++中的 new 有什么区别
在C语言中,`malloc`函数用于在运行时分配内存,返回指向所分配内存的指针,需显式包含头文件 `&lt;stdlib.h&gt;`。而在C++中,`new`不仅分配内存,还对其进行构造初始化,且直接使用类型声明即可,无需额外包含头文件。`new`还支持数组初始化,能更好地融入C++的面向对象特性,而`malloc`仅作为内存分配工具。使用完毕后,`free`和`delete`分别用于释放`malloc`和`new`分配的内存。
753 21
|
编解码 JavaScript 前端开发
使用 MediaSource 规范实现自适应流播放
【10月更文挑战第26天】通过以上步骤,就可以使用MediaSource规范实现自适应流播放,根据网络状况动态地调整播放的码率,为用户提供更流畅的观看体验。需要注意的是,实际应用中还需要处理更多的细节和错误情况,以确保播放的稳定性和可靠性。
|
缓存 弹性计算 应用服务中间件
阿里云服务器部署Jupyter私房菜
在阿里云ECS上,选用2核2G的配置,安装Ubuntu 22.04,然后部署Nginx作为Jupyter Notebook的反向代理。安装Miniconda3,配置清华TUNA镜像源以加速下载。创建Jupyter Notebook,设置密码和远程访问,通过Nginx配置实现安全访问。整个过程包括安装Jupyter,修改Nginx配置,最后通过浏览器访问 Notebook。
1446 0
阿里云服务器部署Jupyter私房菜
|
安全 C语言 C++
彻底摘明白 C++ 的动态内存分配原理
大家好,我是V哥。C++的动态内存分配允许程序在运行时请求和释放内存,主要通过`new`/`delete`(用于对象)及`malloc`/`calloc`/`realloc`/`free`(继承自C语言)实现。`new`分配并初始化对象内存,`delete`释放并调用析构函数;而`malloc`等函数仅处理裸内存,不涉及构造与析构。掌握这些可有效管理内存,避免泄漏和悬空指针问题。智能指针如`std::unique_ptr`和`std::shared_ptr`能自动管理内存,确保异常安全。关注威哥爱编程,了解更多全栈开发技巧。 先赞再看后评论,腰缠万贯财进门。
817 0
|
存储 网络协议 Linux
如何使用内网穿透工具实现远程SSH访问Deepin系统
如何使用内网穿透工具实现远程SSH访问Deepin系统
643 0
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析与可视化
使用Python进行数据分析与可视化
423 3

热门文章

最新文章