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数据结构中的HashMap和HashSet详解

    Java数据结构中的HashMap和HashSet详解

    HashMap和HashSet都是存储在哈希桶之中,通过本文我们可以先了解一些哈希桶是什么,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • SpringMVC数据页响应ModelAndView实现页面跳转

    SpringMVC数据页响应ModelAndView实现页面跳转

    本文主要介绍了SpringMVC数据页响应ModelAndView实现页面跳转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Kotlin中let、run、with、apply及also的用法和差别

    Kotlin中let、run、with、apply及also的用法和差别

    作用域函数是Kotlin比较重要的一个特性,分为5种let、run、with、apply及also,这五个函数的工作方式非常相似,但是我们需要了解这5种函数的差异,以便在不同的场景更好的利用它,这篇文章主要介绍了Kotlin中let、run、with、apply及also的差别,需要的朋友可以参考下
    2023-11-11
  • mybatis整合springboot报BindingException:Invalid bound statement (not found)异常解决

    mybatis整合springboot报BindingException:Invalid bound stateme

    这篇文章主要给大家介绍了关于mybatis整合springboot报BindingException:Invalid bound statement (not found)异常的解决办法,这个错误通常是由于Mapper文件中的statement id与Java代码中的方法名不一致导致的,需要的朋友可以参考下
    2024-01-01
  • JavaBean和Map转换封装类的方法

    JavaBean和Map转换封装类的方法

    下面小编就为大家带来一篇JavaBean和Map转换封装类的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Intellij idea下使用不同tomcat编译maven项目的服务器路径方法详解

    Intellij idea下使用不同tomcat编译maven项目的服务器路径方法详解

    今天小编就为大家分享一篇关于Intellij idea下使用不同tomcat编译maven项目的服务器路径方法详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 使用SpringBoot打jar包并部署到Tomcat详细步骤

    使用SpringBoot打jar包并部署到Tomcat详细步骤

    今天带大家来学习怎么使用SpringBoot打jar包并部署到Tomcat,文中有非常详细的步骤及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Java棋类游戏实践之单机版五子棋

    Java棋类游戏实践之单机版五子棋

    这篇文章主要为大家详细介绍了Java棋类游戏中的五子棋实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • SpringMVC适配器模式代码示例

    SpringMVC适配器模式代码示例

    这篇文章主要介绍了SpringMVC适配器模式代码示例,涉及模拟springmvc的Java代码等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • Spring学习笔记3之消息队列(rabbitmq)发送邮件功能

    Spring学习笔记3之消息队列(rabbitmq)发送邮件功能

    这篇文章主要介绍了Spring学习笔记3之消息队列(rabbitmq)发送邮件功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07

最新评论