热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分布式搜索(elasticsearch)

一、初始elasticsearch1、了解ES(1)什么是elasticsearch?一个开源的分布式搜索引擎,可以用

一、初始elasticsearch

1、了解ES
(1)什么是elasticsearch?
  一个开源的分布式搜索引擎,可以用来实现搜索日志统计分析系统监控等功能。
  
(2)什么是elastic stack(ELK)?
  是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch。
beats、Logstash:数据收集
kibana:图形展示
elasticsearch:数据存储、搜索的核心功能

(3)什么是Lucene?
  是Apache的开源搜索引擎类库,提供了搜索引擎的核心API。
elasticsearch采用倒排索引:
文档(document):每条数据就是一个文档
词条(term):文档按照语义分成的词语(词条不能重复)
2、倒排索引
正向索引和倒排索引

正向索引:根据文档找词条
倒排索引:根据词条找文档,更擅长于基于文档的部分内容进行搜索。
在这里插入图片描述

3、es的一些概念
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、安装es、kibana
5、分词器
默认分词器:standard
中文分词器:chinese

中文分词推荐使用IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/release
ik_smartik_max_word
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二、索引库操作

1、mapping映射属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、索引库的CRUD
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、文档操作

1、新增文档
在这里插入图片描述

2、查询文档
在这里插入图片描述

3、删除文档
在这里插入图片描述
4、修改文档
在这里插入图片描述
在这里插入图片描述


四、RestClient操作索引库

什么是RestClient?
  ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。
官网地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html
在这里插入图片描述
步骤一:导入课前资料
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:
在这里插入图片描述


五、RestClient操作文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
批量操作
在这里插入图片描述
在这里插入图片描述
思考:
MySQL与Elasticsearch有什么差别呢?
Elasticsearch的文档操作API有什么样的规律?


六、DSL查询文档

官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
1、DSL查询分类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、全文检索查询
回对用户输入的内容分词,常用于搜索框搜索。
在这里插入图片描述
在这里插入图片描述
3、精准查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、地理坐标查询
在这里插入图片描述
在这里插入图片描述
5、组合查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、FunctionScoreQuery
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、BooleanQuery
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


七、搜索结果处理

1、排序
在这里插入图片描述
**注意:**指定排序字段后,打分机制会失效。

2、分页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、高亮
在这里插入图片描述
在这里插入图片描述


八、RestClient查询文档

private RestHighLevelClient client;

要构建查询条件,只要记住一个类:QueryBuilders
1、快速入门
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、match查询
在这里插入图片描述
3、精确查询
在这里插入图片描述
4、复合查询
在这里插入图片描述
5、排序、分页、高亮
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文图片来自视频学习过程中所截,主要用于个人复习,视频来源:https://www.bilibili.com/video/BV1LQ4y127n4


推荐阅读
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
author-avatar
文voci_820
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有