全文搜索
概念
全文搜索是一种将文件中所有文本与搜索项匹配的文字资料检索方法。
实现原理
建文本库 -》建立索引 -》执行搜索 -》过滤结果
全文搜索实现技术
基于java的开源实现
- Lucene
- ElasticSearch,基于Lucene,在分布式中中有较好的支持,支持json,实时搜索表现好。
- Solr,需要第三方来支持分布式,支持数据格式多,支持的功能更多,普通业务表现整体比较好。
ElasticSearch
ElasticSearch是什么?
- 高度可扩展的开源全文搜索和分析引擎。
- 快速地、近实时地对大数据进行存储、搜索和分析。
- 用来支撑有复杂的数据搜索需求的企业级应用。
ElasticSearch特点
- 分布式
- 高可用
- 多类型
- 多API
- 面向文档
- 异步导入
- 近实时
- 基于Lucene
- Apache协议
ElasticSearch核心概念
- 近实时
- 集群
- 节点
- 索引
- 类型
- 文档(json格式表示)
- 分片
- 副本
ElasticSearch与Spring Boot集成
配置环境
- ElasticSearch 2.4.4
- Spring Data Elasticsearch 2.1.3.RELEASE
- JNA 4.3.0
maven配置如下
<!--ElasticSearch依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!--JNA-->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.3.0</version>
</dependency>