什么是搜索?

    1. 搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息

    如果用数据库做搜索会怎么样?

    1. 数据都是存储在数据库里面的

    什么是全文检索和Lucene?

    1. 1.全文检索,倒排索引
    2. 2.lucene,就是一个jar包,里面包含了封装好的各种建立倒排索引,以及进行搜索的代码,包括各种算法。我们就用java开发的时候,引入lucene jar,然后基于luceneapi进行去进行开发就可以了。用lucene,我们就可以去将已有的数据建立索引,lucene会在本地磁盘上面,给我们组织索引的数据结构。另外的话,我们也可以用lucene提供的一些功能和api来针对磁盘上额

    Elasticsearch的功能

    1. 分布式的搜索引擎和数据分析引擎
    2. 全文检索,结构化检索,数据分析
    3. 对海量数据进行近实时的处理

    Elasticsearch适用场景

    1. 维基百科
    2. 新闻类网站
    3. stack overflow
    4. GitHub
    5. 电商网站
    6. 日志数据分析
    7. 商品价格监控网站
    8. BI系统

    Elasticsearch的特点

    1. 1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司
    2. 2Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ESlucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat
    3. 3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂
    4. 4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不不能提供的很多功能

    elasticsearch的核心概念

    1. 1. Near Realtime(NRT): 近实时,从写入数据到数据可以被搜索到有一个小延迟(大概1秒);基于es执行搜索和分析可以达到秒级
    2. 2.Cluster:
    3. 集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常
    4. 3.Node:节点
    5. 4.Document&field:文档,es中的最小数据单元
    6. 5.Index:索引,包含一堆有相似结构的文档数据
    7. 6.Type:类型,每个索引里都可以有一个或多个typetypeindex中的一个逻辑数据分类,一个type下的document
    8. 7.shard:单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储
    9. 8.replica:任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本