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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《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/1226776




三、搜索体验的高级配置

 

关于搜索框以及结果展示样式,官方还提供了其他方式,比如弹框展示,大家感兴趣可以自己试试。


爬取配置


1、通过爬取配置可以定义抓取内容范围,从而提高爬取效率。默认情况下,抓取工具会抓取我们配置的 URL 域下面所有的可用网页,所以如果我们想提高爬取分析速度就可以通过配置抓取规则缩小抓取范围。通过菜单“Domains”Advanced Settings 配置 sitemap 文件:

image.png


image.png



这里的 sitemap 是XML格式的文件,通过它让我们能从引擎级别和域级别深入控制爬虫。内容示例:

 

<urlset>
  <url>
    <loc>
      https://swiftype.com/documentation/site-search/
    </loc>
  </url>
  <url>
    <loc>
      https://swiftype.com/documentation/site-search/guides/search-optimization
    </loc>
  </url>
</urlset>


爬虫工具会去默认路径下解析 sitemap.xml(假设配置的 URL:https://example.com/,那么sitemap.xml 的路径是 https://example.com/sitemap.xml)。如果多个 sitemap 或者名字不是默认名,也可以通过 robots.txt 指定,如下例:

User-agent: Swiftbot
Sitemap: https://example.com/special_directory/sitemap.xml
Sitemap: https://example.com/different_sitemap_name.xml

2、配置完爬取范围后,我们来看看页面内容是如何编制为索引的。每个被爬取页面会根据一个默认的 schema 编入索引,默认存储在一个叫 page 的 DocumentType 索引里。

image.png


所以,我们在前面提到的 swiftype.com 网站中Content”菜单里的页面详情是与这个配置对应的:


image.png



同时 Site Search 提供了 API,可以自定义新增索引的 DocumentType 以及其 Field。

 

3、当我们网站内容发生更新后,搜索结果可以通过下面配置自动更新


image.png


自定义搜索结果配置

 

Site Search 还支持通过直观的界面自定义搜索结果(结果排名)、调整数据类型的权重、创建同义词组(同义词)等,从而提供更精准的搜索相关性。如下示例:

l 搜索结果排序,可以针对固定的搜索词制定结果的排序:

image.png

image.png


如上图我们可以拖拽定义搜索结果顺序,可以对结果进行固定、也支持从结果中删除某个内容。

l 按照数据字段的重要程度来增减权重:

 

比如:一个文档通常 title 比其他字段相关性可能更高一些


image.png

l 增加一些搜索同义词:


image.png

 

 例如,我为“线程”增加一个同义词“并发”:

image.png


添加完同义词后,我们来个人网站上看看效果:

image.png

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


至此,我们可以看到通过简单的配置便可以为网站提供搜索功能,不需要自己去实现繁重的搜索功能、也不需要更改自己的项目结构,非常方便。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
XML 分布式计算 安全
hadoop升级流程
hadoop升级流程
|
存储 SQL 消息中间件
实战|使用Spark Structured Streaming写入Hudi
传统数仓的组织架构是针对离线数据的OLAP(联机事务分析)需求设计的,常用的导入数据方式为采用sqoop或spark定时作业逐批将业务库数据导入数仓。随着数据分析对实时性要求的不断提高,按小时、甚至分钟级的数据同步越来越普遍。由此展开了基于spark/flink流处理机制的(准)实时同步系统的开发。
1044 0
实战|使用Spark Structured Streaming写入Hudi
|
网络协议 自动驾驶 物联网
计算机网络的发展
本文概述了计算机网络从20世纪60年代的雏形到现代互联网的发展历程,包括ARPANET的创建、TCP/IP协议的标准化、DNS系统的引入、万维网的诞生、宽带和无线网络的兴起,以及移动互联网、云计算、物联网、区块链和自动驾驶技术的最新进展。
744 1
|
存储 Ubuntu 开发工具
在Ubuntu 18.04上安装Git的方法
在Ubuntu 18.04上安装Git的方法
259 0
|
存储 搜索推荐 索引
5个 Elasticsearch 核心组件
Elasticsearch 是基于 Lucene 的分布式搜索引擎,具备高可用和多租户特性。其核心组件包括:节点(Node)、集群(Cluster)、索引(Index)、分片(Shard)和副本(Replica)。节点是集群中的服务器,可设置为主、数据或客户端节点。集群由多个节点组成,通过集群名称区分。索引是文档集合,7.x 版本后每个索引仅含一种类型。分片是索引的子集,可分布于不同节点,分为主分片和副本分片,副本用于提高数据可用性和性能。【5月更文挑战第5天】
343 1
|
缓存 自然语言处理 Rust
比JDK最高快170倍,蚂蚁集团开源高性能多语言序列化框架Fury
Fury是一个基于JIT动态编译和零拷贝的多语言序列化框架,支持Java/Python/Golang/JavaScript/C++等语言,提供全自动的对象多语言/跨语言序列化能力,和相比JDK最高170倍的性能。经过多年蚂蚁核心场景的锤炼打磨,现已正式在Github对外开源:https://github.com/alipay/fury
2932 5
|
Java Spring
SpringBoot整合Sfl4j+logback的实践
对于一个web项目来说,日志框架是必不可少的,日志的记录可以帮助我们在开发以及维护过程中快速的定位错误。`slf4j`,`log4j`,`logback`,`JDK Logging`等这些日志框架都是我们常见的日志框架,本文主要介绍这些常见的日志框架关系和SpringBoot整合Sfl4j+logback的实践。
617 1
|
Linux 网络安全 数据安全/隐私保护
Linux下ssh远程主机报错:ssh_exchange_identification: read: Connection 解决
Linux下ssh远程主机报错:ssh_exchange_identification: read: Connection 解决
552 0
|
算法 C++
【BFS】八数码问题(c++基础算法)
【BFS】八数码问题(c++基础算法)
521 0