当前位置: 首页 > 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.dinnco.com/news/12536.html

相关文章:

  • 做网站需要哪些东西太原百度seo
  • 做网站要固定电话网站案例
  • 做网站商城多少钱宁波seo外包推广公司
  • 中国有名的模版网站百度官方营销推广平台
  • 网站互动功能产品推广活动策划方案
  • 住房和城乡建设部网站官网网络广告文案范文
  • 吃鸡辅助群的购卡链接网站怎么做网站建设策划
  • 企业网站联系我们软文文案
  • 淘宝网店运营seo公司上海
  • 时尚类网站建设网络营销相关工作岗位
  • 网站的后期维护自己怎么做百度搜索引擎下载
  • 做网站费用怎么核算合肥360seo排名
  • 两学一做 山西答题网站百度免费建网站
  • 临汾网络推广站长seo软件
  • 国外被动收入网站做的好的输入关键词自动生成标题
  • 外国网站怎么做b2b外贸接单平台
  • 网站代理备案价格seo建站是什么
  • 工信部网站验证码搜索引擎技术包括哪些
  • 网站内容的重要性磁力链最佳的搜索引擎
  • 金坛网站建设公司外贸公司如何做推广
  • 广安哪里有做网站的公司湖南网络优化服务
  • vps可以做多少网站网站开发工具
  • 大米网站模板软件制作
  • 免费无版权图片网站优化设计三年级上册答案语文
  • 发布建设网站百度竞价开户
  • 个人网站备案需要几天高明公司搜索seo
  • 专做蓝领招聘网站有哪些腾讯企点是干嘛的
  • 网站制作手机端seo课程
  • wordpress定制器seort什么意思
  • 网站统计模块整站优化快速排名