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单词纠错补全的资料请关注脚本之家其它相关文章!

相关文章

  • Java中Excel高效解析工具EasyExcel的实践

    Java中Excel高效解析工具EasyExcel的实践

    EasyExcel是阿里巴巴开源的一个excel处理框架,已使用简单,节省内存著称,下面这篇文章主要给大家介绍了关于Java中Excel高效解析工具EasyExcel实践的相关资料,需要的朋友可以参考下
    2022-04-04
  • 简单聊聊Java中验证码功能的实现

    简单聊聊Java中验证码功能的实现

    相信大家都经常接触到验证码的,毕竟平时上网也能遇到各种验证码,需要我们输入验证码进行验证我们是人类,本篇文章就从这几个方面出发说说验证码,废话不多说,下面开始正文
    2023-06-06
  • java基础学习笔记之反射

    java基础学习笔记之反射

    什么是反射?Java 程序在运行期间可以动态加载、解析和使用一些在编译阶段并不确定的类型数据,这一机制被称为反射(Reflection)。今天我们就来详细探讨下java中的反射
    2016-02-02
  • 详解spring mvc(注解)上传文件的简单例子

    详解spring mvc(注解)上传文件的简单例子

    本篇文章主要介绍了spring mvc(注解)上传文件的简单例子,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • 解决springboot 连接 mysql 时报错 using password: NO的方案

    解决springboot 连接 mysql 时报错 using password: NO的方案

    在本篇文章里小编给大家整理了关于解决springboot 连接 mysql 时报错 using password: NO的方案,有需要的朋友们可以学习下。
    2020-01-01
  • MyBatis-Plus动态表名的使用

    MyBatis-Plus动态表名的使用

    本文主要介绍了MyBatis-Plus动态表名的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java多线程事务管理的实现

    Java多线程事务管理的实现

    本文主要介绍了Java多线程事务管理的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • 利用Java代码写一个并行调用模板

    利用Java代码写一个并行调用模板

    这篇文章主要介绍了利用Java代码写一个并行调用模板,文章基于Java的相关内容展开写一个并行调用模板的详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Java基于接口实现模拟动物声音代码实例

    Java基于接口实现模拟动物声音代码实例

    这篇文章主要介绍了Java基于接口实现模拟动物声音代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解RestTemplate的三种使用方式

    详解RestTemplate的三种使用方式

    这篇文章主要介绍了详解RestTemplate的三种使用方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论