Spring Data Elasticsearch 5.x实现单词纠错和自动补全

 更新时间:2023年08月29日 10:29:55   作者:TinyThing  
这篇文章主要为大家介绍了Spring Data Elasticsearch 5.x实现单词纠错和自动补全示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

单词纠正功能

        //单词纠正
        PhraseSuggester phraseSuggester = FieldSuggesterBuilders.phrase()
                .field("name")
                .size(1)
                .build();
        FieldSuggester ps = new FieldSuggester.Builder()
                .text(name)
                .phrase(phraseSuggester)
                .build();
        //查询
        Suggester nameSuggester = Suggester.of(s -> s.suggesters("phrase", ps));
        NativeQuery nativeQuery = NativeQuery.builder()
                .withSuggester(nameSuggester)
                .withTrackTotalHits(true)
                .build();
        log.debug("es suggester: {}", nativeQuery.getSuggester());
        //这里需要重试,因为es有时候会报连接异常
        SearchHits<EsPojo> hits = es.search(nativeQuery, EsPojo.class);

自动补全

自动补全首先要有Complition字段

    /**
     * 自动补全功能
     */
    @CompletionField(analyzer = IK_ANALYSER, searchAnalyzer = IK_ANALYSER)
    private Completion completionName;

自动补全查询

        //自动补全
        String completionField = "completionName";
        CompletionSuggester completionSuggester = FieldSuggesterBuilders.completion()
                .field(completionField)
                .skipDuplicates(true)
                .size(size)
                .build();
        FieldSuggester cs = new FieldSuggester.Builder()
                .text(name)
                .completion(completionSuggester)
                .build();

以上就是Spring Data Elasticsearch 5.x实现单词纠错和自动补全的详细内容,更多关于Spring Data Elasticsearch单词纠错补全的资料请关注脚本之家其它相关文章!

相关文章

  • Springboot单体架构http请求转换https请求来支持微信小程序调用接口

    Springboot单体架构http请求转换https请求来支持微信小程序调用接口

    这篇文章主要介绍了Springboot单体架构http请求转换https请求来支持微信小程序调用接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • java实现Dijkstra算法

    java实现Dijkstra算法

    这篇文章主要为大家详细介绍了java实现Dijkstra算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Java超详细讲解设计模式中的命令模式

    Java超详细讲解设计模式中的命令模式

    命令模式是将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或者对请求做日志记录,以及可以支持撤销的操作
    2022-04-04
  • 详解Java如何使用集合来实现一个客户信息管理系统

    详解Java如何使用集合来实现一个客户信息管理系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java 集合实现一个客户信息管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • SpringBoot 整合Mybatis-Plus并输出SQL日志示例详解

    SpringBoot 整合Mybatis-Plus并输出SQL日志示例详解

    这篇文章主要介绍了SpringBoot整合Mybatis-Plus并输出SQL日志,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Java日常开发中读写TXT文本举例详解

    Java日常开发中读写TXT文本举例详解

    这篇文章主要给大家介绍了关于Java日常开发中读写TXT文本,包括使用BufferedReader、Scanner、FileInputStream等类进行读取,以及使用BufferedWriter、PrintWriter、FileOutputStream等类进行写入,需要的朋友可以参考下
    2024-12-12
  • Java设计模式之代理模式详细解读

    Java设计模式之代理模式详细解读

    这篇文章主要介绍了Java设计模式的代理模式,文中有非常详细的代码示例,对正在学习Java设计模式的小伙伴有很大的帮助,感兴趣的小伙伴可以参考一下
    2021-08-08
  • Java vector的详解及实例

    Java vector的详解及实例

    这篇文章主要介绍了Java vector的详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot整合Logback日志框架及高并发下的性能优化

    SpringBoot整合Logback日志框架及高并发下的性能优化

    在现代的Java应用开发中,日志记录是不可或缺的一部分,Spring Boot作为目前最流行的Java开发框架之一,默认集成了Logback作为日志框架,Logback是Log4j的继任者,具有更高的性能和更丰富的功能,本文将详细介绍如何在Spring Boot中整合Logback日志框架
    2025-03-03
  • Java 代码本地设置Hadoop用户名密码的方法

    Java 代码本地设置Hadoop用户名密码的方法

    在Hadoop环境中,通常使用Kerberos进行身份验证,这篇文章主要介绍了Java 代码本地设置Hadoop用户名密码的方法,需要的朋友可以参考下
    2024-08-08

最新评论