全文检索学习之ElasticSearch学习笔记

这篇具有很好参考价值的文章主要介绍了全文检索学习之ElasticSearch学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在非关系型数据库中,数据是非结构化的,如果直接去查找效率极低,全文检索将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。索引就是从非结构化数据中提取出的然后重新组织的信息。建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。在了解了全文检索的过程后,下面介绍最近学习的ElasticSearch全文检索引擎。

1、ElasticSearch简介

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,可以在java开发中使用,其核心还是Lucene,但是es在开发中使用
可以通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。另外es检索和存储速度极快,即搜即得到结构,修改便可近乎实时的保存。
Elaticsearch目前有被很多大型网站使用,如GitHub使用ElasticSearch
搜索20TB的数据,包括13亿文件和1300亿行代码,百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数
据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。新浪、阿里等许多大厂也在采用Elaticsearch全文搜索引擎

2、ElasticSearch术语

ElasticSearch术语包含index索引、Types类型、Documents、Fields,其中index可以理解为是关系型数据库里面的database,types可以对应为关系型数据库里面的表tables,documents可以以对应为关系型数据库里面的记录,fields以以对应为关系型数据库里面的字段。

2.1、index索引

一个index索引就是一个拥有几分相似特征的文档的集合。一个索引由一个全是小写字母组成的名字来标识,使用到这个名字对对应于这个索引中的文档进行索引、搜索、更新和删除。在一个集群中,可以定义任意多的索引。

2.2、type类型

在一个索引中,可以定义一种或多种类型。一个类型是索引的一个逻辑上的分类/分区,其语义完全支持自定义。通常,会为具有一组共同字段的文档定义一个类型。

2.3、document文档

文档是可被索引的基础信息单元。文档采用JSON格式。在index/type里面,可以存储任意多的文档。文档在物理上存在于索引之中,但文档必须被索引/赋予一个索引的type。

2.4、field字段

相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。

2.5、 mapping映射

mapping对处理数据的方式和规则做限制,某个字段的数据类型、默认值、分析器、是否被索引等等都可以被映射设置,另外处理es里面数据的一些使用规则设置也叫做映射,如按着最优规则处理数据以至于性能提高。

2.6、 cluster集群和node节点

集群就是由一个或多个节点组织在一起,所有节点的数据共同组成了所有数据,并一起提供索引和搜索功能。每个集群都有唯一标识的名字,默认就是“elasticsearch”。节点想组成或加入集群需要共同加入同一个名字的集群。
节点是集群中的一个服务器,是集群的一部分,可以存储数据并且参与集群的索引和搜索。每个节点也都有唯一标识的名字。

3、ElasticSearch使用

使用DSL语言来定义查,使用全文检索

(1)查询所有索引
GET /_cat/indices?v
(2)删除某个索引

DELETE /索引名

在这里插入代码片
(3)新增索引
PUT /索引名
(4)创建映射
PUT /索引名/type名/_mapping {
	"properties": {
		"name":{
			"type": "text",
			"analyzer": "所用的分词器",
			"search_analyzer": "所用的分词器"
		}
	}
}
(5)新增文档数据/修改数据
PUT /索引名/type名/id号 {
	 "name":"赵二", 
	 "age":22, 
	 "city":"上海", 
	 "description":"xxxxx" 
	 }
(6)更新数据
POST /索引名/type名/id号/_update {
	 "doc":{
	 	 "name":"xxx", 
	 	 "description":"xxxxxx" 
	 } 
}
(7)删除Document
DELETE /索引名/type名/id号
(8)查询所有数据
GET /索引名/_search

上面是一些常用的DSL语句,可以在 Kibana或者elasticsearch-head中使用进行全文检索文章来源地址https://www.toymoban.com/news/detail-410762.html

到了这里,关于全文检索学习之ElasticSearch学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch-全文检索

    https://www.elastic.co/cn/what-is/elasticsearch 全文搜索属于最常见的需求,开源的Elasticsearch是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。 维基百科、StackOverflow、Github都采用它。 Elastic的底层是开源库Lucene。但是,你没法直接用Lucene,必须自己写代码去调用

    2024年04月17日
    浏览(39)
  • ElasticSearch 实战:ElasticSearch文档全文检索

    Elasticsearch 实战:Elasticsearch 文档全文检索 全文检索是 Elasticsearch 的核心功能之一,它允许用户对文本内容进行高效的模糊搜索、词组匹配、同义词处理、停用词过滤等操作。以下是如何进行文档全文检索的详细步骤: **1. **全文匹配查询(Match Query) 最基础的全文检索查询是

    2024年04月11日
    浏览(52)
  • ES(Elasticsearch 全文检索)

    数据量大的时候 索引失效 =查询性能低 功能比较弱 对文档的内容进行分词,对词条创建索引,记录词条所在的文档信息根据词条查询到文档的id 从而查到文档 文档:每一条数据就是一条文档 词条:文档按照语义分成的词语 正向索引 根据文档的id创建索引 查询词条必须先找

    2024年02月05日
    浏览(59)
  • ElasticSearch全文检索原理及过程

            ElasticSearch的搜索引擎中,每个 文档都有一个对应的文档 ID ,文档内容被表示为一系列的集合。例如文档 1 经过分词,提取了 20 个, 每个都会记录它在文档中出现的次数和出现位置 。那么,倒排索引就是 到文档   ID 的映射 ,每个关键

    2023年04月17日
    浏览(47)
  • 全文检索-Elasticsearch-整合SpringBoot

    前面记录了 Elasticsearch 全文检索的入门篇和进阶检索。这次我们来讲下 Spring Boot 中如何整合 ES,以及如何在 Spring Cloud 微服务项目中使用 ES 来实现全文检索,来达到商品检索的功能。 检索服务单独作为一个服务,就称作 gulimall-search 模块。 点击 Next 勾选 Spring Web 依赖,点击

    2024年02月08日
    浏览(50)
  • 7-Elasticsearch组合查询和全文检索

    Elasticsearch组合查询 组合查询–布尔查询 组合查询中的常用的查询方式:布尔查询。 它将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起。 布尔查询是把多个子查询组合成一个布尔表达式,所有子查询之间逻辑关系是and,只有当一个文档满足布尔查询

    2024年02月04日
    浏览(46)
  • ElasticSearch:全文检索及倒排索引原理

    首先介绍一下结构化与非结构化数据: 结构化数据将数据具有的特征事先以结构化的形式定义好,数据有固定的格式或有限的长度。典型的结构化数据就是传统关系型数据库的表结构,数据特征直接体现在表结构的字段上,所以根据某一特征做数据检索很直接,速度也比较快

    2024年02月14日
    浏览(44)
  • 九.全文检索ElasticSearch经典入门-ElasticSearch映射修改

    这篇文章的内容是ElasticSearch映射修改,写这篇文章是有水友公司里面遇到了映射修改问题,我这里做了一个整理,希望对你有所帮助。 在ElasticSearch中一旦创建了映射想要进行修改是不被允许的。比如我这里有一个案例 上面创建了索引employee ,同时为其创建映射,指定了id和

    2024年02月05日
    浏览(60)
  • 全文检索工具elasticsearch:第一章:理论知识

    cluster 整个elasticsearch 默认就是集群状态,整个集群是一份完整、互备的数据。 node 集群中的一个节点,一般只一个进程就是一个node shard 分片,即使是一个节点中的数据也会通过hash算法,分成多个片存放,默认是5片。 index 相当于rdbms的database, 对于用户来说是一个逻辑数据库

    2024年04月16日
    浏览(48)
  • SpringBoot封装Elasticsearch搜索引擎实现全文检索

    注:本文实现了Java对Elasticseach的分页检索/不分页检索的封装 ES就不用过多介绍了,直接上代码: 创建Store类(与ES字段对应,用于接收ES数据) Elasticsearch全文检索接口:不分页检索 Elasticsearch全文检索接口:分页检索 本文实现了Java对Elasticsearch搜索引擎全文检索的封装 传入

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包