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

网站建设网页设计培训学校wordpress轻语博客

网站建设网页设计培训学校,wordpress轻语博客,wordpress数据库承载,wordpress首页幻灯片尺寸高性能分布式搜索引擎。 数据库模糊搜索比较慢,但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。 优势:易扩展、高性能(基于倒排索引…

高性能分布式搜索引擎。

数据库模糊搜索比较慢,但用搜索引擎快多了。

下面是一些搜索引擎排名

Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。

优势:易扩展、高性能(基于倒排索引)

elasticsearch优势:

支持分布式,可水平扩展

提供Restful接口,可被任何语言调用

elasticsearch随着技术发展越来越完善,已经不是一个孤立的技术了,有一套完整的技术栈,简称ELK(kibana、Logstash、Beats),被广泛应用在日志数据分析、实时监控等领域。

安装ES

推荐Docker命令一键安装。

安装Kibana

一个图形界面的工具,会帮助我们连接ES,提供图形化的操作,还能自动补全。

推荐Docker命令一键安装。

Kibana提供了一个工具Dev tool,它可以帮助我们向ES发送HTTP请求,而且自带提示!!!

倒排索引

传统MySQL关系数据库只会给文档建立id索引。

而elasticsearch采用倒排索引:不仅会给文档建立id索引,还会给拆开的词条建立索引。

  • 文档:每条数据就是一个文档
  • 词条:文档按照语义分成的词语

会给词条建一个索引,将来根据词条来检索速度会非常快。

以下图为例,其实我们搜了两次,第一次拿词条来词条列表找,第二次拿着找到的文档id到文档列表里找文档。而传统关系数据库,只能全表扫描。

正向索引先去找文档,看文档里是否包含词条。

倒排索引先去找词条,得到文档id,再去找文档。(要经历两次检索)

IK分词器

英文分词很简单,因为单词间有空格。仲文分词必须按语义进行分析。

把这个插件(ik)放到插件目录里。

analyzer可以中文分词的:ik_smart、ik_max_word

IK分词器允许词典扩展。

ES核心概念

叫索引可能会混淆,我们通常把他理解成索引库。因为MySQL里给id加的那个也叫索引。索引和数据库里的表table的概念有点接近。要保证json文档他们的结构一致、数据类型一致,叫做映射。

下图是ES和MySQL数据库一些概念的对比👇

Mapping映射属性

Mapping映射类似于建表

keyword不可拆分的词

索引库操作

keyword不可拆,text可拆

在elasticsearch里,不允许对索引库做修改操作(指不能对已有的索引库字段做修改,但允许添加新的字段)。

文档操作

上节课学完索引库的各种操作,相当于在MySQL里去创建表,表有了之后,我们要学着操作数据。在索引库里,我们操作的是文档。

文档CRUD

完全符合Restful风格

 

全量修改,改的话全部都要改。

增量/局部修改,修改指定的。

批量处理

一个一个文档处理效率太低,这次学习批量处理。

JavaRestClient

ES给我们提供的java客户端,JavaRestClient。

这套客户端就是帮我们向restful接口发请求的。

客户端初始化

步骤:引依赖->对SpringBoot原有默认的ES版本进行覆盖->初始化RestHighLevelClient

例:

商品表Mapping映射

上节课已经完成es的java客户端的初始化,之后的几节课我们将学习如何利用这个客户端实现索引库及文档的各种操作。

创建商品索引库首先要确定商品的Mapping映射。

索引库操作

文档操作

上节课学习es的java客户端操作索引库的各种API,并创建了一个索引库。有了索引库我们就可以向里面写入文档,进行文档操作了。

source 源

request.source请求参数里的数据直接用数据库里的。但是数据库里的和索引库的字段不完全一样,我们要怎样保证他们一样呢?

首先定义一个实体,这个索引要和索引库的mapping映射结构一致。

直接复制一份po,然后把其中不需要的属性删掉。(简单无需技术含量)

根据id查数据库,查到数据库数据转化为文档数据,用到糊涂工具包BeanUtil.copyProperties(item,ItemDoc.class)拷贝数据。

得到的文档数据放到source方法请求参数必须是JSON,用工具类JSONUtil转换

新增文档操作如上,接下来我们学习文档其他增删改查的API。

发送请求结果获取到的request对象里面是完整的Json数据

而解析结果就是获取到的request对象里的source

批处理

一次只能操作一个文档效率太低,es提供了这种批处理的restful接口,之前我们是用ADP请求的方式去调用的,这回我们学习如何利用java客户端去做批处理。

一次全查可能会爆,所以下面的例子采用分页查询。 (使用Page)

结果通过record取出,做一个判断,是否没查到任何数据(一个健壮性判断)。

没查到数据就不用往下走,直接return;查到了再往索引库里写。

参数id不是写死的,而是要改成获取到的request遍历的item.id(int型要改成String)

source里的要变成JSON,而且要用我们改好的po实体类Itemdoc,而不是item。

while用来翻页的。

DSL查询

前面已经学习了es索引库和文档的各种增删改查操作了,其中我们查询文档都是根据id查询的,但是这种查询方式并不能满足我们所有的业务场景的需求,我们实际项目中不一定是根据id搜索的,他的搜索条件往往比较复杂。这时我们就需要一种新的查询方式,ES就给我们提供了一个DSL的查询,来实现这种复杂条件的查询。

快速入门

因为是查询,所以这里是GET。

GET /索引库名/_search

match_all{}:匹配/查询所有,{}里面如果啥也没有,就是没有查询条件,那就查所有

es内部默认有限制,单次允许查询最大数据不能超过1万

gte:>= 大于等于

hits:查询命中的数据

叶子查询

全文检索查询就是之前的倒排索引查询。

精确搜索,输入的搜索条件,都是相对简单不可分割的词。

rande范围,term直接比较字段值。

下面以全文检索为例:

符合查询

排序和分页

高亮显示

http://www.yayakq.cn/news/390706/

相关文章:

  • 医院的网站建设目标网络销售招聘
  • 做视频网站视频使用c#语言建设网站优点
  • 如何打开建设网站后台云南新闻最新消息今天
  • 正规做兼职的网站建设网站图片大全
  • 网站建设提示DNA错误免费个人二级域名网站
  • 网站建设 数据分析公司网站建设哪家比较好
  • 网站建设云尚网络企业登记网络服务平台
  • 一元购物网站怎么做毕业设计网站开发的中期报告
  • 新余做网站的公司网站首页做301
  • 试玩网站源码全国招商加盟网免费
  • 网站 成功案例玉环在哪里做网站
  • 淄博网站青海网站建设与制作
  • jsp网站开发平台百度短网址生成器
  • 网站开发人员必备技能WordPress鼠标点击特效
  • 挪威网站后缀给企业做网站
  • 中国建设教育协会是个什么网站有一个做场景动画的网站
  • 网站开发天津网站开发html在线编辑器网页手机
  • 精美 企业网站模板做asp网站的实验收获
  • 电子商务是建网站如何制作课程网站
  • 遵义建站平台哪家好黄页网站推广下载免费
  • 高企达建设有限公司网站合肥公共资源交易中心
  • 兰州网站外包wordpress 出名主题
  • 网站备案号填写wordpress修改在线字体
  • 建设一个网站思路国外包装设计网站大全
  • 营销型网站郭老师案例分享2024年的新闻时事热点论文
  • 云南免费网站建设lnmp下安装wordpress
  • wordpress能做图片站秦皇岛手机网站制作价格
  • 做网站找镇江网站建设推广公司
  • 阿坝州建设局网站刘志彬唐山做网站汉狮网络
  • 社交主题 wordpressseo排名是啥