回顾ElasticSearch基础

一 概述

        官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic

        ElasticSearch很直接的左右就是进行搜索功能。

二 Lucene

        Lucene是使用JAVA编写的提供全文搜索功能的组件,是一套信息检索的工具包,并不包含搜索引擎。

三 Nutch

        Nutch是一个建立在Lucene核心上的网页搜索应用程序。它在Lucene的基础上增加了网络爬虫和一些网页相关的内容。实现一个简单站内搜索扩展到全国网络的搜索。

        如Google一样,作为互联网搜索引擎,需要存储大量的网页,并不断的优化自己的搜索算法,以提高所搜效率。

        如GFS(Google File System)——谷歌文件系统,解决了大数据存储问题,基于改理念出现了后来的NDFS(Nutch Distributed File System),分布式文件存储系统。

            MapReduce编程模型——用于大数据集(大于1T)的并行分析计算。

        基于NDFS和MapReduce的改造,最终出现了大数据领域的Hadoop。

        基于Google的BigTable(一种分布式存储系统,可以用来处理海量数据的非关系型数据库),别引入hadoop的系统中后,被改名为HBase。

四 ElasticSearch

        简单的来说,ElasticSearch是基于Lucene的封装与功能增强。简称为ES,作为一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储,检索数据,扩展性比较好。

        ES利用Lucene作为核心,但是同时通过一些简单的方式来隐藏Lucene的复杂性,如对于Java而言,可以通过简单的RESTful api来完成全文检索的简单实现。

五 ElasticSearch的使用场景

        1. GitHub实现代码项目搜索。

        2. 电商网站搜索商品。

        3. 日志分析系统,利用ELK(elasticsearch + logstash + kibana)技术。

 

<think>好的,我现在需要回答用户关于Elasticsearch基础概念和入门知识的问题。首先,我应该回顾用户提供的引用内容,看看哪些信息是相关的。用户提到了引用[2]中的核心概念,比如倒排索引、文档、索引、分片与副本,还有安装配置的步骤。另外,引用[3]提到了倒排索引和评分机制,以及聚合功能,引用[4]涉及了创建索引和DSL查询。 用户的需求是了解基础概念和入门教程,所以我需要从这些引用中提取关键点,并组织成一个结构清晰的回答。首先,我应该解释Elasticsearch的背景和应用场景,然后介绍核心概念,接着是安装步骤,最后是基本操作示例。同时,需要确保使用正确的中文表达,并按照要求使用$$格式显示独立公式,比如倒排索引的结构示例。 接下来,我需要检查是否需要生成相关问题。根据示例,用户希望有三个相关问题,所以我需要围绕Elasticsearch基础概念、安装配置、查询操作等方面提出问题。 另外,用户提到的引用中有些安装步骤,比如使用elasticsearch用户启动服务,安装目录在/opt下,这些应该包含在安装指南部分。同时,引用[4]中的创建索引和DSL查询可以作为示例代码展示。 需要注意避免使用Markdown格式,但用户允许在回答中使用代码块。因此,在讲解安装和操作时,可以插入代码示例,比如启动命令和创建索引的请求。 最后,确保每个引用部分在适当的位置添加引用标识,比如在讲解倒排索引时引用[3],在安装步骤引用[1]和[2]等。同时,保持回答自然流畅,结构清晰,分点说明。</think>### Elasticsearch基础概念与入门教程 #### 一、核心概念解析 1. **倒排索引(Inverted Index)** Elasticsearch的核心数据结构,通过记录单词到文档的映射实现快速检索。例如,对文档集合: - 文档1: "Elasticsearch is powerful" - 文档2: "Search with Elasticsearch" 倒排索引结构为: $$ \begin{aligned} &\text{Term} \quad \rightarrow \quad \text{文档列表} \\ &\text{Elasticsearch} \rightarrow [1, 2] \\ &\text{search} \quad\;\, \rightarrow [1, 2] \\ &\text{powerful} \quad \rightarrow [1] \end{aligned} $$ 这种结构使得关键词搜索复杂度降低至$O(1)$[^3]。 2. **文档(Document)与索引(Index)** - **文档**:数据存储的基本单元,以JSON格式表示,如: ```json { "id": 1, "title": "Elasticsearch Guide", "content": "..." } ``` - **索引**:类似数据库表,包含相同结构的文档集合。 3. **分片(Shard)与副本(Replica)** - **分片**:索引的水平拆分,用于分布式存储和并行处理。 - **副本**:分片的拷贝,提供高可用性和负载均衡。 #### 二、安装与启动(基于Linux) 1. **下载与解压** ```bash # 切换到安装目录 cd /opt wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz tar -xzf elasticsearch-7.12.0-linux-x86_64.tar.gz ``` 2. **启动服务** ```bash # 创建专用用户并启动 useradd elasticsearch su elasticsearch cd /opt/elasticsearch-7.12.0 ./bin/elasticsearch ``` 默认端口:9200(HTTP)、9300(节点通信)[^1]。 #### 三、基础操作示例 1. **创建索引** ```json PUT /book { "settings": { "number_of_shards": 3, "number_of_replicas": 1 } } ``` 此命令创建名为`book`的索引,分片数3,副本数1[^4]。 2. **插入文档** ```json POST /book/_doc/1 { "title": "Elasticsearch Basics", "author": "John Doe", "price": 29.99 } ``` 3. **基本查询** ```json GET /book/_search { "query": { "match": { "title": "Basics" } } } ``` #### 四、典型应用场景 - **全文检索**:支持模糊匹配、同义词扩展(需配置IK分词器[^1])。 - **日志分析**:结合Logstash实现实时日志采集与分析。 - **数据聚合**:统计电商商品销量分布或用户行为模式[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值