96SEO 2026-02-20 03:41 7
视频地址https://www.bilibili.com/video/BV17a4y1x7zq

在学习ElasticSearch之前先简单了解一下Lucene
jakarta项目组的一个子项目是一个开放源代码的全文检索引擎工具包不是一个完整的全文检索引擎而是一个全文检索引擎的架构提供了完整的查询引擎和索引引擎部分文本分析引擎英文与德文两种西方语言当前以及最近几年最受欢迎的免费Java信息检索程序库。
官网https://www.elastic.co/cn/downloads/elasticsearch
Elaticsearch简称为eses是一个开源的高扩展的分布式全文检索引擎它可以近乎实时的存储、检索数据;本身扩展性很好可以扩展到上百台服务器处理PB级别(大数据时代的数据。
es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTful
Engines的统计在2016年1月ElasticSearch已超过Solr等成为排名第一的搜索引擎类应用。
Banon的刚结婚不久的失业开发者由于妻子要去伦敦学习厨师他便跟着也去了。
在他找工作的过程中为了给妻子构建一个食谱的搜索引擎他开始构建一个早期版本的Lucene。
直接基于Lucene工作会比较困难所以Shay开始抽象Lucene代码以便lava程序员可以在应用中添加搜索功能。
他发布了他的第一个开源项目叫做“Compass”。
后来Shay找到一份工作这份工作处在高性能和内存数据网格的分布式环境中因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。
然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。
第一个公开版本出现在2010年2月在那之后Elasticsearch已经成为Github上最受欢迎的项目之一代码贡献者超过300人。
一家主营Elasticsearch的公司就此成立他们一边提供商业支持一边开发新功能不过Elasticsearch将永远开源且对所有人可用。
,数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门垃圾,鄙视崇拜)
IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案
7、商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如说订阅牙膏的监控,如果高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买
**区,最近3年,每年消费金额呈现100%的增长,而且用户群体85%是高级白领开一个新商场。
ES执行数据分析和挖掘,
9、国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一一个使用场景)
它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。
英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。
StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。
Github使用Elasticsearch检索1300亿行的代码。
但是Elasticsearch不仅用于大型企业它还让像DataDog以及Klout这样的创业公司将最初的想法变成可扩展的解决方案。
Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据。
Elasticsearch是一个基于Apache
Lucene可被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,
Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful
Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对索引、搜索性能进行了优化Solr可以独立运行在letty.
索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,
GET请求,然后对Solr返回xml、json等格式的查询结果进行解析,组织页面布局。
Solr不提供构建UI的功能,
Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
Solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene.Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。
用户可以通过http请求,向搜索引擎服务器提交-定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。
当实时建立索引时Solr会产生io阻塞查询性能较差ElasticSearch具有明显的优势
随着数据量的增加Solr的搜索效率会变得更低而ElasticSearch却没有明显的变化
利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
官方提供的功能更多,而Elasticsearch本身更注重于核心功能高级功能多有第三方插件提供例如图形化界面需要kibana友好支撑。
即实时性查询快用于facebook新浪等搜索。
Solr是传统搜索应用的有力解决方案但Elasticsearch更适用于新兴的实时搜索应用。
6、Solr比较成熟有一个更大更成熟的用户、开发和贡献者社区而Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。
最低要求使用Java开发必须保证ElasticSearch的版本与Java的核心jar包版本对应Java环境保证没错
下载地址https://www.elastic.co/cn/downloads/
历史版本下载https://www.elastic.co/cn/downloads/past-releases/
虚拟机相关的配置(默认启动占1g内存内容不够需要自己调整)elasticsearch.ym1
https://github.com/mobz/elasticsearch-head
解压即可尽量将ElasticSearch相关工具放在统一目录下
由于ES在9200端口而可视化界面在9100端口故出现跨域问题无法访问
什么是跨域https://blog.csdn.net/qq_38128179/article/details/84956552
开启跨域在elasticsearch解压目录config下elasticsearch.yml中添加
这个head我们只是把它当做可视化数据展示工具之后所有的查询都在kibana中进行因为不支持json格式化不方便
https://www.elastic.co/cn/downloads/
历史版本下载https://www.elastic.co/cn/downloads/past-releases/
编辑器打开kibana解压目录/config/kibana.yml添加
ElasticSearch是面向文档关系行数据库和ElasticSearch客观对比一切都是JSON
elasticsearch在后台把每个索引划分成多个分片每分分片可以在集群中的不同服务器间迁移
即启动的ElasticSearch服务默认就是一个集群且默认集群名为elasticsearch
一个索引类型中包含多个文档比如说文档1文档2。
当我们索引一篇文档时可以通过这样的顺序找到它索引
之前说elasticsearch是面向文档的那么就意味着索引和搜索数据的最小单位是文档elasticsearch中文档有几个重要属性:
自我包含一篇文档同时包含字段和对应的值也就是同时包含key:value
可以是层次型的一个文档中包含自文档复杂的逻辑实体就是这么来的!
灵活的结构文档不依赖预先定义的模式我们知道关系型数据库中要提前定义字段才能使用在elasticsearch中对于字段是非常灵活的有时候,我们可以忽略该字段或者动态的添加一个新的字段。
尽管我们可以随意的新增或者忽略某个字段但是每个字段的类型非常重要比如一个年龄字段类型可以是字符串也可以是整形。
因为elasticsearch会保存字段和类型之间的映射及其他的设置。
这种映射具体到每个映射的每种类型这也是为什么在elasticsearch中类型有时候也称为映射类型。
类型是文档的逻辑容器就像关系型数据库一样表格是行的容器。
类型中对于字段的定义称为映射比如name映射为字符串类型。
我们说文档是无模式的它们不需要拥有映射中所定义的所有字段比如新增一个字段那么elasticsearch是怎么做的呢?
elasticsearch会自动的将新字段加入映射但是这个字段的不确定它是什么类型elasticsearch就开始猜如果这个值是18那么elasticsearch会认为它是整形。
但是elasticsearch也可能猜不对所以最安全的方式就是提前定义好所需要的映射这点跟关系型数据库殊途同归了先定义好字段然后再使用别整什么幺蛾子。
索引存储了映射类型的字段和其他设置。
然后它们被存储到了各个分片上了。
我们来研究下分片是如何工作的。
一个集群至少有一个节点而一个节点就是一个elasricsearch进程节点可以有多个索引默认的如果你创建索引那么索引将会有个5个分片(primary
上图是一个有3个节点的集群可以看到主分片和对应的复制分片都不会在同一个节点内这样有利于某个节点挂掉了数据也不至于失。
实际上一个分片是一个Lucene索引一个ElasticSearch索引包含多个Lucene索引
一个包含倒排索引的文件目录倒排索引的结构使得elasticsearch在不扫描全部文档的情况下就能告诉你哪些文档包含特定的关键字。
按文章关键字对应的文档0个或多个形式建立索引根据关键字就可直接查询对应的文档含关键字的无需查询每一个文档
https://blog.csdn.net/qq_43403025/article/details/114779166
分词即把一段中文或者别的划分成一个个的关键字我们在搜索时候会把自己的信息进行分词会把数据库中或者索引库中的数据进行分词然后进行一一个匹配操作默认的中文分词是将每个字看成一个词不使用用IK分词器的情况下比如“我爱狂神”会被分为”我””爱””狂””神”
这显然是不符合要求的所以我们需要安装中文分词器ik来解决这个问题。
下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases
在ElasticSearch的plugins把下载的zip解压放入ik下输入
从上面看感觉分词都比较正常但是大多数分词都满足不了我们的想法如下例
如果我们某个词并不希望它被拆分那么我们需要手动将该词添加到分词器的词典当中
...\elasticsearch-7.6.1\plugins\ik\config在此目录新建my.dic文件用来放我们自己的字典
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。
它主要用于客户端和服务器交互类的软件。
基于这个风格设计的软件可以更简洁更有层次更易于实现缓存等机制。
methodurl地址描述PUT创建,修改localhost:9200/索引名称/类型名称/文档id创建文档指定文档idPOST创建localhost:9200/索引名称/类型名称创建文档随机文档idPOST修改localhost:9200/索引名称/类型名称/文档id/_update修改文档DELETE删除localhost:9200/索引名称/类型名称/文档id删除文档GET查询localhost:9200/索引名称/类型名称/文档id查询文档通过文档IDPOST查询localhost:9200/索引名称/类型名称/文档id/_search查询所有数据
text支持分词全文检索,支持模糊、精确查询,不支持聚合,排序操作;text类型的最大支持的字符长度无限制,适合大字段存储keyword不进行分词直接索引、支持模糊、支持精确匹配支持聚合、排序操作。
keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度超过给定长度后的数据将不被索引无法通过term精确匹配检索返回结果。
long、Integer、short、byte、double、float、half
/test3如果自己的文档没有指定类型那么es会给我们默认配置字段类型
版本1_version但是如果漏掉某个字段没有写那么更新时没有写的字段
term直接精确查询match会使用分词器解析上述查男把直男、渣男都查出来了
1、新建SpringBoot项目目前默认的大版本是3与2有很大改动推荐用2
2、导入相关依赖我习惯用mybatis和mysql所以一起导入了
xmlnshttp://maven.apache.org/POM/4.0.0
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.10/versionrelativePath/
--/parentgroupIdcom.zwj/groupIdartifactIdSpringBootES/artifactIdversion0.0.1-SNAPSHOT/versionnameSpringBootES/namedescriptionSpringBootES/descriptionpropertiesjava.version8/java.version/propertiesdependencies!--elasticsearch
相关--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.0.3/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter-test/artifactIdversion3.0.3/versionscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project3、注册bean
org.elasticsearch.client.RestClient;
org.elasticsearch.client.RestHighLevelClient;
org.springframework.context.annotation.Bean;
org.springframework.context.annotation.Configuration;Configuration
RestHighLevelClient(RestClient.builder(new
HttpHost(127.0.0.1,9200,http)));}}由于一些原因后续的实战我没有跟公司这个用的不多一些东西用到的时候还是要去查文档~~
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback