`
abao1
  • 浏览: 8875 次
  • 性别: Icon_minigender_1
  • 来自: 星星的我
社区版块
存档分类
最新评论

elaticserach ik自定义远程词库的方法

    博客分类:
  • java
阅读更多
这是ik的配置文件  在配置远程扩展字典写上下面方法的接口(要注意能调取到这个方法) 把停止词典注释掉
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">location</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry>
</properties>
---------------------------------------------------------------------------
以下是java代码部分
---------------------------------------------------------------------------
@GET
    @Path("loadGJCK")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    @ApiOperation(value = "词库")
    public String  loadGJCK(@Context HttpServletRequest request,@Context HttpServletResponse response){
        String result = "";
        try {

            StringBuilder sb = new StringBuilder();
            String[] keywords = keywordService.selectKeyWord(10l);//获取所有分词,这里可以改进使用缓存等。

            String eTag = request.getHeader("If-None-Match");
            Long modified= request.getDateHeader("If-Modified-Since");

            //设置头
            if(null == modified || -1 == modified) {
                //如果没有,则使用当前时间
                modified = System.currentTimeMillis();
            }
            // 设置头信息。
            String oldEtag = keywords.length+ "";
            response.setDateHeader("Last-Modified", Long.valueOf(modified));
            response.setHeader("ETags", keywords.length + "");

            if(!oldEtag.equals(eTag)) {
                //拼装结果
                for(String tempWord : keywords) {
                    if(!StringUtils.isEmpty(tempWord)){
                        //分词之间以换行符连接
                        if(StringUtils.isNotEmpty(sb.toString())) {
                            sb.append("\r\n");
                        }
                        sb.append(tempWord);
                    }
                }
                //result = new String(result.getBytes("ISO8859-1"), "UTF-8");
                result = sb.toString();
                //更新时间
                response.setDateHeader("Last-Modified", System.currentTimeMillis());
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            System.out.println(result);
            return result;
        }
    }


然后这个词库就可以用啦!
分享到:
评论
1 楼 abao1 2017-08-07  
https://github.com/medcl/elasticsearch-analysis-ik
可以参考这个

相关推荐

    Ikanalyzer分词器动态自定义词库的方法.doc

    IKAnalyzer动态自定义词库的方法 IKAnalyzer是java语言中一个流行的分词器工具,能够对中文文本进行分词操作。分词是自然语言处理(NLP)中的一项基本操作,用于将文本分割成单个词语,以便进行进一步的处理和分析...

    ik中文分词词库35万中文分词词库(含电商)

    ik中文分词词库35万中文分词词库(含电商)

    ik中文分词词库,包含不低于20万词

    Ik分词器支持自定义词典,可以根据具体需求扩展和更新词库,以适应不同领域的专业术语和新兴词汇。 该压缩包中的“中文分词词库.txt”文件,就是ik分词器的核心资源之一,它包含了大量预定义的词汇。这些词汇通常...

    a827871781#Java-notes#ES IK 自定义分词词库配置1

    配置词库将custom 文件放入这个文件夹内修改 ik 的配置文件先备份一个配置cp IKAnalyzer.cfg.xml IKAnalyzer备份.cfg.x

    基于ik动态词库分词实现--无需重启服务

    它支持自定义词典和热更新词库,这使得在运行时添加新词汇成为可能,无需停止服务。 动态词库更新是IK Analyzer的一个重要特性。传统的分词器通常需要在修改词典后重启服务才能生效,但这种方式对于实时性要求高的...

    Elasticsearch7.10.0集成IK相关性同义词改源码实现MySql5.7.2实现远程动态同义词词库实时更新.pdf

    IK分词器是ES中常用的中文分词插件,通过集成IK分词器并对其进行源码修改,可以实现从远程数据库MySql5.7.2动态更新同义词词库,并实现实时同步。 ### Elasticsearch集成IK分词器 集成IK分词器是通过在Elastic...

    IK分词常用停止词库约1500个

    IK分词常用停止词库约1500个 elasticsearch analysis ik分词器常用停止词库

    ElasticSearch 重写IK分词器源码设置mysql热词更新词库1

    0.3 **远程词库**:这种方法是通过指定一个静态文件服务器来设定IK的词库信息。尽管可以远程更新,但同样需要手动编辑文件,并且依赖于`Last-Modified`和`ETag`来检测更新,有时可能不准确。 鉴于上述局限性,作者...

    IKanalyzer约2000个常用停止词库

    这个压缩包文件"IKanalyzer约2000个常用停止词库"包含了大约2000个中文停用词,这些词在进行IKAnalyzer分析时会被忽略,以优化搜索结果。停用词列表是根据大量语料库和实际应用场景精心筛选出来的,能有效减少无关...

    ik热分词库基于mysql修改.zip

    【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 ... 【项目质量】: 所有源码都经过严格测试,...

    中文分词库IKAnalyzer

    - **可扩展**:支持自定义词典,可以方便地添加专业词汇或者排除某些不需要分词的短语。 - **智能**:具备词性的标注功能,有助于进行更深入的语义分析。 ### 3. IKAnalyzer的结构与组件 IKAnalyzer的核心包括以下...

    ElasticSearch7.3学习-中文分词器(IK Analyzer)及自定义词库

    ElasticSearch7.3学习-中文分词器(IK Analyzer)及自定义词库

    elasticsearch - ik分词库

    IK 分词库,全称为“Intelligent Chinese”,由Pang Li等人开发,主要目标是提高中文文本在Elasticsearch中的检索效果。它支持多种分词模式,包括精确模式、全模式、最短路径模式、关键词模式等,可以根据实际需求...

    ElasticSearch7.17.5版本自定义ik分词器源码

    支持停止词,扩展词热更新,将分析器自定义为ik_smart_custom和ik_max_word_custom了,使用idea导入项目,mvn clear complile package 打包完成,使用release中的zip文件部署,记得修改db.properties中的数据库连接...

    基于java的中文分词库 IKAnalyzer.zip

    IKAnalyzer是一款基于Java语言开发的中文分词库,它的全称是"Intelligent Chinese Analyzer for Java"。这个库主要用于处理中文文本,将其拆分成可理解的词汇单元,这是自然语言处理(NLP)中的关键步骤。在Java开发...

    使用IK Analyzer实现中文分词之Java实现

    IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析...

    Solr java IKAnalyzer词库

    标题中的“Solr java IKAnalyzer词库”指的是在Java环境下使用Apache Solr搜索引擎时,配合IKAnalyzer进行中文分词的实践。IKAnalyzer是一个开源的、基于Java实现的中文分词器,它针对Solr这样的全文检索框架优化,...

    IKAnalyzer 中文分词 完整java项目demo

    IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。 这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可

    IkAnalyzer分词、词频、内链优化

    本文将深入探讨IkAnalyzer的分词原理、词频统计、内链优化以及如何自定义分词词库。 IkAnalyzer源自于Lucene项目,是基于Java实现的轻量级中文分词工具,主要应用于全文检索领域。其核心特点在于具备较高的分词准确...

Global site tag (gtag.js) - Google Analytics