Lucence

1、关键字检索的第一步是对整个文档分词

英文  空格

中文  中文词库配合中文分词法

中文分词有IK和庖丁,直接配置就可以使用

2、lucence的开源项目

--lucence core:java编写的核心类库,提供了全文检索功能的底层API与SDK

--Solr:基于lucence core开发的高性能,搜索服务,提供了RESTAPI的高层封装接口

3、五个基础类

--Document 任何待搜索文档

--Field 属性

--IndexWriter 建立索引,并将索引持久化到Directory中

--Analyzer 对文档内容分词找出关键词

--Directory 代表lucence索引的存储位置(内存,文件)

4、lucence缺点:无法分布式

Solr、ElasticSearch基于lucence的分布式,全文检索中间件

5、lucence普遍与网络爬虫相结合,通过爬虫抓取各个电商平台上的商品信息并录入lucence索引库

6、solr分布式集群 solrcloud

去中心化:通过zookeeper协调

分片算法:一致性哈希算法

leader节点:由zookeeper选出

每个分片由3份数据的话:一份leader 两份replica

索引数据的副本同步,数据请求转发给所在分片的leader节点,再由leader节点同步到各Replica节点上。

7、近实时查询 依靠soft commit

--soft commit 内存

--hard commit 磁盘

8、ELK

ElasticSearch

Logstash:实时管道能力的数据收集引擎,用来收集日志数据,并且作为索引数据写入ES集群中

Kibana:为ES提供了数据分析及数据可视化的web界面

9、ES也是分布式系统,但不使用zookeeper,而是自己实现了一套被称为Zen Discovery的模块,该模块主要负责集群中节点的自动发现,和master节点的选举

discovery.zen.minimum_master_nodes 它决定了在选举Master的过程中需要有多少个节点通信

ES有个Tribe节点:可以连接多个集群,在所有集群中执行搜索和其他操作

猜你喜欢

转载自www.cnblogs.com/ng1991/p/8969102.html
今日推荐