ElasticSearch搜索引擎入门:framework-learning中的全文检索技术

ElasticSearch搜索引擎入门:framework-learning中的全文检索技术

【免费下载链接】framework-learning 计算机学习资料(Java , Jvm , Linux , Mysql , Netty , Redis , Netty , Spring , SpringBoot , Mybatis , Rabbitmq ,计算机网络 , 数据结构与算法 , 设计模式 )Github网页阅读:https://guang19.github.io/framework-learning , Gitee网页版阅读: https://qsjzwithguang19forever.gitee.io/framework-learning 【免费下载链接】framework-learning 项目地址: https://gitcode.com/gh_mirrors/fr/framework-learning

ElasticSearch是目前全文搜索引擎的首选,它可以快速地储存、搜索和分析海量数据,在framework-learning项目中,ElasticSearch相关知识被详细整理在elasticsearch-learning/ElasticSearch.md文件中,为新手和普通用户提供了全面的学习资料。

什么是ElasticSearch?

ElasticSearch是一个基于Lucene的开源搜索引擎,维基百科、Stack Overflow、Github都在使用它。它对Lucene进行了封装,提供了REST API的操作接口,开箱即用,能够帮助用户高效地处理海量数据的搜索与分析任务。

ElasticSearch的核心概念

要学习ElasticSearch,首先需要了解几个基本概念:

  • Index(索引):一系列文档的集合,类似于MySQL中的数据库。
  • Type(类型):在Index里面可以定义不同的type,类似于MySQL中的表。
  • Document(文档):类似于MySQL中的一条存储记录,为JSON格式,在Index下的不同type下,可以有许多的document。
  • Shards(分片):在数据量很大的时候,进行水平扩展,提高搜索性能。
  • Replicas(副本):防止某个分片的数据丢失,可以并行在备份数据里搜索提高性能。

ElasticSearch的查询语法

ElasticSearch提供了丰富的查询语法,以下是一些常用的API:

_cat API

_cat API可以帮助我们快速了解集群的基本情况,常用命令有:

  • cat:输出_cat api中所有支持的查询命令。
  • cat health:检查es集群运行的情况。
  • cat count:可以快速查询集群或者index中文档的数量。
  • cat indices:查询当前集群中所有index的数据,包括index的分片数、document的数量、存储所用的空间大小等。

我们可以通过工具发送请求来测试集群健康情况,就像下图所示:

ElasticSearch集群健康检查

Search API

Search API有两种查询方式:REST request URI和REST request body。其中REST request body可以构建更复杂的查询条件,常用的查询类型有:

  • term:查询时判断某个document是否包含某个具体的值,不会对被查询的值进行分词查询。
  • match:将被查询值进行分词,然后用评分机制(TF/IDF)进行打分。
  • Bool:结合其他真值查询,通常和must(与)、should(或)、must_not(非)一起组合出复杂的查询。
  • range:查询时指定某个字段在某个特定的范围,例如:
"range": {
  "FIELD": {
    "gte": 1,
    "lte": 10
  }
}

ElasticSearch查询示例

下面通过一些简单的示例来了解ElasticSearch的基本使用。

创建索引
PUT localhost:9200/test

输出:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "test"
}
插入数据
PUT localhost:9200/test/user/1

Body:

{
    "username" : "张三",
    "password" : "123546",
    "age" : "18",
    "yyyymmdd" : "2017-08-07T16:00:00"
}
查询所有数据
GET localhost:9200/test/user/_search
{
    "query":{
        "match_all":{}
    }
}

通过这些简单的操作,我们可以初步体验ElasticSearch的强大功能。在framework-learning项目中,还有更多关于ElasticSearch的详细内容,等待你去探索学习。如果你想深入了解,可以查阅项目中的elasticsearch-learning/ElasticSearch.md文件。

【免费下载链接】framework-learning 计算机学习资料(Java , Jvm , Linux , Mysql , Netty , Redis , Netty , Spring , SpringBoot , Mybatis , Rabbitmq ,计算机网络 , 数据结构与算法 , 设计模式 )Github网页阅读:https://guang19.github.io/framework-learning , Gitee网页版阅读: https://qsjzwithguang19forever.gitee.io/framework-learning 【免费下载链接】framework-learning 项目地址: https://gitcode.com/gh_mirrors/fr/framework-learning

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值