全文检索

  • 顺序扫描法

  • 全文搜索

全文搜索实现原理 1. 建立本库 2. 建立索引 3. 执行搜索 4. 过滤结果

全文搜索实现技术 基于Java的开源实现

  • lucene

  • ElasticSearch

  • Solr

ElasticSearch简介

特点:

  • 分布式

  • 高可用

  • 多类型

  • 多api

  • 面向文档

  • 异步写入

核心概念

  • 近实时

  • 集群

  • 节点

  • 索引

  • 类型

  • 文档

  • 分片

  • 副本

集成

compile('org.springframeword.boot:spring-boot-starter-data-elasticsearch')
compile('net.java.dev.jna:jna:4.3.0)
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.properties.transport.tcp.connect-timeout=120s

文档类

@Document(indexName="blog",type="blog")
public class EsBlog implements Serializable{
    private static final long serialVersionUID=lL;

    @Id //主键
    private String id;
    private String title;
    private String summary;
    private String content;

    //Jpa要求,防止直接使用
    protected EsBlog(){}
}

资源库

public class EsBlogRepository implememts ElasticsearchRepository<EsBlog,String>{
    //分页查询 去重
    page<EsBlog> findDistinctEsBlogByTitleContainingOrSummaryCotainingOrContentContaining(String title,String summary,String )
}

测试

@Before
public void initRepositoryData(){
    //清除所有数据
    esBlogRepository.deleteAll();
    esBlogRepository.save(new EsBlog())
}
@Test
public void test(){
    Pageable pageable=new PageRequest(0,20);
    String title=""
}

设备模型模板

Last updated

Was this helpful?