当前位置: 首页 > news >正文

国外网站建设素材库搜索引擎优化方法有哪几种

国外网站建设素材库,搜索引擎优化方法有哪几种,重庆建设工程信息网安全监督,水果网站建设规划书接上篇《8、RestClient操作索引库-基础介绍及导入demo》 上一篇我们介绍了RestClient的基础,并导入了使用Java语言编写的RestClient程序Demo以及将要分析的数据库。本篇我们就要分析导入的宾馆数据库tb_hotel表结构的具体含义,并分析如何建立其索引库。 …

接上篇《8、RestClient操作索引库-基础介绍及导入demo》
上一篇我们介绍了RestClient的基础,并导入了使用Java语言编写的RestClient程序Demo以及将要分析的数据库。本篇我们就要分析导入的宾馆数据库tb_hotel表结构的具体含义,并分析如何建立其索引库。

一、分析前需要考虑的问题

我们如果想要建立索引库,必须要考虑以下问题:

问题一:索引库中的字段名、数据类型;
问题二:哪些字段参与搜索、哪些字段进行分词?
问题三:如果分词,分词器是什么?

带着这些疑问,我们来分析tb_hotel表结构:

大致看一下上面这个表结构,可以初步回答三个问题:
先说问题一,上面这个表里面的字段名和字段类型,其实就是我们将要建立索引库的字段名和类型,当然不一定是所有的字段,这个可以根据需要,参与搜索的建议全部加入。
再说问题二,哪些字段参与搜索?哪些字段进行分词?这俩问题其实跟业务场景息息相关,现在的场景确定是一个酒店业务,那么“酒店名称”这个字段一定是要参与搜索的,且因为酒店名称比较长,且可能带有一些关键词,所以这里肯定也需要进行分词。
然后是问题三,用什么分词器?这里我们先卖个关子最后再说。

二、分析数据库字段

我们下面逐个分析每个字段,如何对应创建我们的索引库。

1、酒店id(id)

这个是酒店数据的唯一标识主键,也可以作为我们索引库的唯一标识,所以这个字段是需要加入mapping索引库的,mysql中该字段为PROMARY KEY,是一个表的主键,不用分词,所以我们在索引库中就可以定义为keyword精确值类型。

"id":{"type":"keyword"}

因为是一个唯一标识,且是纯数字,这里我们不对它进行分词。

2、酒店名称(name)

这个上面咱们已经说过,是一个重点字段,它在mysql中是varchar类型,在mapping索引库中可以这是为text类型(因为需要分词),因为该字段是需要参与搜索的,所以要添加“analyzer”分词器属性,指定分词器为“ik_max_word”:

"name":{"type":"text","analyzer":"ik_max_word"}

这里分词器为啥要选“ik_max_word”呢?这里我们解释一下,以下是常见的分词器表:

因为我们需要检索和分析的是中文名称或文档内容,最适合的分词器应该是“Chinese Analyzer”。而ik_max_word属于Chinese Analyzer(中文分词器)的一种分词模式。IK分词器是Elasticsearch中常用的中文分词插件,它提供了两种分词模式:ik_max_word和ik_smart。其中:

(1)ik_max_word:

●功能:将文本进行最细粒度的拆分,即将文本最大程度地切分成独立的词汇。
●特点:通过条件随机场(CRF)模型识别词汇边界,并使用动态规划寻找最优的词段划分,从而穷尽各种可能的词汇组合。
●应用场景:适用于需要更全面的分词结果,以便在索引时捕捉到更多的词汇信息,提高搜索的召回率。例如,在搜索引擎或信息检索系统中,可以使用ik_max_word模式来最大化地将文章内容分词,以便在搜索时能够匹配到更多的相关结果。

(2)ik_smart:

●功能:对文本进行智能分词,结合理解歧义和未知词的算法,对文本进行词典分词的同时,智能识别词汇的边界。
●特点:更注重分词的准确性和歧义处理,词典中的词汇边界会被优先考虑,从而可能减少不必要的扩展。
●应用场景:适用于需要更精确的分词结果,以便在搜索时能够更准确地匹配到用户查询的意图。例如,在搜索引擎中,可以使用ik_smart模式来更精确地搜索到用户想要的结果。
概括起来,ik_max_word是IK分词器中用于中文文本细粒度分词的一种模式,适用于需要提高搜索召回率的场景。
所以我们选择了“ik_max_word”分词器。

3、酒店地址(address)等其他字段

这里我们不再一一赘述,将其他字段逐个分析后,我列出了相关表格:

这里我们只介绍一个字段,就是location,回头我们查询酒店具体的坐标的时候,需要将经纬度合并计算出精确位置,此时我们使用的索引库类型就是geo_point类型。这个geo_point类型是Elasticsearch中用于表示地理位置坐标的特殊数据类型,它通过支持空间查询、地理位置分析、空间索引等功能,为基于地理位置的应用和服务提供了强大的支持。将经纬度组合成一个字段时,在索引库中使用geo_point类型可以充分利用这些功能,提高应用的性能和用户体验。

三、创建索引库语句

按照上面的分析,最终的mapping索引库的DSL建表语句如下:

# 酒店的mapping索引库
PUT /hotel
{"mappings": {"properties": {"id": { "type": "keyword" },"name": { "type": "text", "analyzer": "ik_max_word" },"address": { "type": "text", "analyzer": "ik_max_word" },"price": { "type": "integer" },"score": { "type": "integer" },"brand": { "type": "keyword" },"city": { "type": "keyword" },"star_name": { "type": "keyword" },"business": { "type": "text", "analyzer": "ik_max_word"},  "location": { "type": "geo_point" },"pic": { "type": "keyword", "index": false  } }}
}

我们打开Kibana界面,输入上述语句创建索引库并执行:

查询索引库,发现已经新增成功:

至此,我们对tb_hotel表结构的具体含义,以及做索引需要考虑的具体问题就讲解完毕了,并编写了DSL语句,并执行完毕。下一篇我们来进行java代码的编写,初始化RestClient并执行一些命令来操作索引库。

参考:《黑马Elasticsearch全套教程》

转载请注明出处:https://blog.csdn.net/acmman/article/details/146140551

http://www.cadmedia.cn/news/9461.html

相关文章:

  • 网站建设及使用网站权重怎么看
  • 360免费wifi旧版本下载福州seo优化排名推广
  • 河南省级住房城乡建设主管部门网站线下引流推广方法
  • 语音识别程序代做网站职业技能培训学校
  • 汕头市网站建设个人怎么注册自己的网站
  • 网站开发都是用什么做的b2b多平台一键发布
  • 网站优化有前途吗怎样推广自己的店铺啊
  • 收录入口在线提交优化加速
  • 为什么访问外国网站速度慢怎么做小说推广挣钱
  • 企业网站维护工作计划贴吧推广400一个月
  • 天猫店怎么申请广西网络优化seo
  • 加强网站的建设工作的通知怎样进行关键词推广
  • 牛 网站建设网页界面设计
  • 福建建设动态网站百度推广开户费
  • 开发一个跑腿app需要多少钱南宁百度seo建议
  • 企业网络推广平台公司沈阳百度seo
  • 网络规划与设计师真实通过率seo搜索引擎营销工具
  • 水木网站建设徐州网页关键词优化
  • 企业建站seo公司资源
  • 职教集团网站建设怎么样建一个网站
  • 江苏省建设厅纪委网站免费打广告网站
  • 网站管理制度建设的必要性品牌营销是什么
  • 政府网站开发文档南宁seo结算
  • 装修设计效果图网站广告投放运营主要做什么
  • 百捷网站建设工资百度云登陆首页
  • 网站空间是指什么网站运营是做什么的
  • 佛山设计论坛seo线上培训机构
  • 建设游戏运营网站开展工作内容孝感seo
  • 免费网站建站+凡科建站百度网站的优化方案
  • 厦门广告公司电话武汉网站推广优化