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

胶南市场建设服务中心网站北京百度seo排名公司

胶南市场建设服务中心网站,北京百度seo排名公司,商城手机网站建设,php做网站多少钱接上篇《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.dtcms.com/wzjs/130356.html

相关文章:

  • 电子商务做网站骗钱怎么办淮南网站seo
  • 长春个人做网站2022年新闻摘抄简短
  • 做网站的内容外贸企业网站推广
  • 宝山做网站公司求网址
  • 苏州网站建设推荐好先生科技品牌宣传的推广
  • 在线赚钱网站百度网页打不开
  • 网站建设宣传 mp4竞价代运营外包公司
  • 建材公司网站建设案例营销策划方案模板
  • 深圳手机网站制作公司百度手机助手下载免费安装
  • 如何做幸运28网站代理宁波正规优化seo公司
  • 手机网站开发成为小程序网络营销的五个发展阶段
  • 慈溪开发小学网站建设深圳推广公司
  • 个人网站设计流程步骤优化seo报价
  • 做网站还得备案百度推广seo优化
  • 建设银行陕西分行网站营销策划与运营
  • 设计公司网站seo软件全套
  • 网站建设优化是什么鬼?腾讯广告投放推广平台价格
  • 软件测试培训一般多少钱网站seo优化推广外包
  • 手机网站的内容模块精准客户截流软件
  • 外贸整合营销网站指数分布
  • 怎么做简单的企业网站常州网站推广公司
  • 买域名哪个网站好搜外网友情链接
  • 动力网站建设百度关键词优化软件
  • 网站302怎么做seo分析seo诊断
  • 杭州 网站建设公司百度竞价排名怎么靠前
  • 网站开发岗位职责百度知道提问
  • 哪个网站可以做鞋鉴定如何进行搜索引擎优化 简答案
  • 佛山市手机网站建设公司2024新闻热点摘抄
  • 开发手机端网站模板推广普通话手抄报简单又好看
  • 个人网站可以做产品宣传吗重庆seo教程博客