皮皮网

【任务平台小程序源码】【电影cms 源码教程】【swing mysql项目源码】ik分词器源码分析的视频_ik分词器实现原理

2024-11-18 16:26:11 来源:溯源码中淡绿码安全吗

1.java培训主要学什么?
2.Elasticsearch7.8.0集成IK分词器改源码实现MySql5.7.2实现动态词库实时更新
3.如何读取elasticsearch的分词分词分词索引信息
4.java.lang.Error问题怎样解决?
5.go语言unresolved type string

ik分词器源码分析的视频_ik分词器实现原理

java培训主要学什么?

       åƒè¿™æ ·çš„问题,我已经回答了很多次,现在很多新手,特别是刚刚入行想学java的同学,不知道该从哪里入手,我是在成都课工场学java入的行,现在已变成老司机,我整理了一些java的知识点,一共分为六个阶段,个技能点,第一阶段、第二阶段、第三阶段、第四阶段是必须要掌握的,很多机构忽悠人,就只学到第四阶段,第五阶段和第六阶段就是高薪、高职的保障,就说说想高薪必须得把后面两个阶段的给掌握了,老铁,觉得合适采纳下啊。

       ç¬¬ä¸€é˜¶æ®µï¼šjava基本功修炼

       1. è®¤è¯†è®¡ç®—机硬件

       2. è®¡ç®—机组成原理

       3. è®¡ç®—机软件知识

       4. è®¡ç®—机网络知识

       5. å¸¸ç”¨ç½‘络应用操作

       6. è®¤è¯†è®¡ç®—机病毒

       7. é€»è¾‘训练

       8. åˆè¯†Java

       9. å˜é‡å’Œæ•°æ®ç±»åž‹

       . é€‰æ‹©ç»“æž„

       . å¾ªçŽ¯ç»“æž„for

       . å¾ªçŽ¯ç»“æž„do-while

       . å¾ªçŽ¯ç»“æž„while

       . å¤šé‡å¾ªçŽ¯åŠç¨‹åºè°ƒè¯•

       . å¾ªçŽ¯è¿›é˜¶

       . ä¸€ç»´æ•°ç»„及经典应用

       . äºŒç»´æ•°ç»„

       . è®¤è¯†ç±»ä¸Žå¯¹è±¡

       . æ–¹æ³•åŠæ–¹æ³•é‡è½½

       . å°è£…与继承

       . æ–¹æ³•é‡å†™ä¸Žå¤šæ€

       . é¡¹ç›®å®žæˆ˜-汽车租赁系统

       . æŠ½è±¡ç±»å’ŒæŽ¥å£

       . å¼‚常

       . é¡¹ç›®å®žæˆ˜-QuickHit

       . Java ä¸­çš„集合类型

       . List é›†åˆ

       . Set é›†åˆ

       . HashMap é›†åˆ

       . Iterator

       . Collections ç®—法类及常用方法

       . enum

       . åŒ…装类及装箱拆箱

       . String、StringBuffer ç±»å¸¸ç”¨æ–¹æ³•æ“ä½œå­—符串

       . Date、Calendar

       . Math ç±»å¸¸ç”¨æ–¹æ³•

       . IO/NIO

       . å­—节输入流(InputStream、FileInputStream、BufferedInputStream)

       . å­—节输出流(OutputStream、FileOutputStream、BufferedOutputStream)

       . å­—符输入流(Reader、InputStreamReader、FileReader BufferedReader)

       . å­—节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)

       . æ–‡ä»¶å¤åˆ¶

       . Serialize、Deserialize

       . èŒåœºæ™‹å‡åŠ›ï¼šå››è±¡é™æ—¶é—´ç®¡ç†ä¸Žç²¾åŠ›ç®¡ç†

       . å¤šçº¿ç¨‹(Thread、Runnable)

       . Thread LifeCycle

       . çº¿ç¨‹çš„调度

       . çº¿ç¨‹çš„同步和死锁

       . Thread Pool

       . èŒåœºæ™‹å‡åŠ›ï¼šå›¢é˜Ÿåˆä½œ

       . Socket(TCP、UDP)

       . XML æ¦‚念、优势、规范

       . XML ä¸­ç‰¹æ®Šå­—符的处理

       . ä½¿ç”¨DOM è¯»å–、添加、删除、解析 XML æ•°æ®

       ç¬¬äºŒé˜¶æ®µï¼šjavaweb开发

       . æ­å»ºå’Œé…ç½®MySQL æ•°æ®åº“

       . æ•°æ®åº“增、删、查、改语句

       . äº‹åŠ¡

       . è§†å›¾

       . æ•°æ®åº“备份与恢复

       . æ•°æ®åº“用户管理

       . æ•°æ®åº“设计

       . é¡¹ç›®å®žæˆ˜-银行ATM å­˜å–款机系统

       . èµ°è¿› HTML å’ŒCSS

       . åˆ—表表格及表单美化

       . CSS 高级操作

       . Bootstrap

       . CSS 组件

       . JavaScript é¢å‘对象

       . JavaScript åˆ¤æ–­ã€å¾ªçŽ¯

       . JavaScript é—­åŒ…

       . JavaScript è¯­æ³•

       . Bootstrap ç»¼åˆæ¡ˆä¾‹

       . HTML5、CSS3

       . jQuery åŸºç¡€

       . jQuery åŸºæœ¬æ“ä½œ

       . jQuery äº‹ä»¶ä¸Žç‰¹æ•ˆ

       . jQuery Ajax

       . jQuery æ’件

       . æ­å»ºWeb 环境初识JSP

       . JSP ä¹å¤§å†…置对象

       . JSP å®žçŽ°æ•°æ®ä¼ é€’和保存

       . JDBC

       . å•ä¾‹æ¨¡å¼ã€å·¥åŽ‚模式

       . MVC、三层模式

       . Commons-fileupload、CKEditor

       . åˆ†é¡µæŸ¥è¯¢

       . EL 与 JSTL

       . Servlet ä¸ŽFilter

       . Listener ä¸ŽMVC

       . Ajax 与 jQuery

       . jQuery çš„Ajax äº¤äº’扩展

       . é¡¹ç›®å®žæˆ˜â€”使用Ajax æŠ€æœ¯æ”¹è¿›æ–°é—»å‘布系统

       . åå°„

       . Linux ç³»ç»Ÿçš„安装

       . åœ¨Linux ä¸­ç®¡ç†ç›®å½•å’Œæ–‡ä»¶

       . åœ¨Linux ä¸­ç®¡ç†ç”¨æˆ·å’Œæƒé™

       . åœ¨Linux æœåŠ¡å™¨çŽ¯å¢ƒä¸‹å®‰è£…软件和部署项目

       . èŒåœºæ™‹å‡åŠ›ï¼šèŒåœºæ²Ÿé€š

       ç¬¬ä¸‰é˜¶æ®µï¼š 企业级框架开发

       . MyBatis 环境搭建

       . SQL 映射文件

       . 动态SQL

       . MyBatis 框架原理

       . Spring IOC

       . æž„造注入、依赖注入、注解

       . Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务  

       å¤„理)

       . Spring 数据源(属性文件、JNDI)、Bean 作用域

       . Spring 框架的运行原理

       . SpringMVC 体系概念

       . SpringMVC 之数据绑定、数据效验、

       . SpringMVC 之视图及视图解析

       . SpringMVC 之文件上传、本地化解析

       . SpringMVC 之静态资源处理、请求拦截器、异常处理

       . Oracle æ•°æ®åº“环境搭建、安装

       . Oracle æ•°æ®åº“ SQL、分页、备份、还原

       . Hibernate 概念、依赖

       . HQL æŸ¥è¯¢è¯­è¨€

       . Hibernate 中配置关联映射

       . HQL è¿žæŽ¥æŸ¥è¯¢ä¸Ž Hibernate æ³¨è§£

       . Struts 2 æ¦‚念、依赖

       . Struts 2 é…ç½®

       . OGNL è¡¨è¾¾å¼

       . Struts 2 æ‹¦æˆªå™¨

       . SSH æ¡†æž¶æ•´åˆ

       . ä½¿ç”¨Maven æž„建项目

       . ä½¿ç”¨Struts 2 å®žçŽ°Ajax

       . Jsoup ç½‘络爬虫

       . å¤šçº¿ç¨‹ç½‘络爬虫

       . åçˆ¬åŠååçˆ¬ç­–ç•¥

       . é€šç”¨çˆ¬è™«è®¾è®¡

       . Echart å›¾è¡¨åˆ†æž

       . IKAnalyzer åˆ†è¯

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-代理商管理系统

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-SL 会员商城

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-会员管理系统

       .企业框架项目实战-互联网招聘信息采集分析平台

       ç¬¬å››é˜¶æ®µï¼š 前后端分离开发

       . GitHub

       . Git åŸºç¡€(checkout、pull、commit、push、merge ç­‰)

       . Git è¿›é˜¶(多分支协作)

       . GitLab

       . IDEA çš„使用

       . Maven ä»‹ç»(概念、仓库、构建、命令)

       . ä½¿ç”¨Maven æž„建WEB é¡¹ç›®

       . ä½¿ç”¨Maven æž„建多模块项目

       . ä½¿ç”¨Maven æ­å»ºç§æœä»“库

       . Scrum æ¡†æž¶ä»‹ç»(三个角色、三个工件、四个会议)

       . Scrum Team ç»„建团队

       . äº§å“éœ€æ±‚和用户故事

       . æ¯æ—¥ç«‹ä¼š

       . ä½¿ç”¨æ•æ·-Scrum æ–¹å¼å¼€å‘管理实战

       . å‰åŽç«¯åˆ†ç¦»ã€åˆ†å¸ƒå¼é›†ç¾¤æž¶æž„、垂直架构

       . SSM(SpringMVC+Spring+MyBatis)整合实战

       . Git、Maven ç§æœNexus

       . ç¬¬ä¸‰æ–¹æŽ¥å…¥æŠ€æœ¯ï¼ˆå¾®ä¿¡ã€é˜¿é‡Œï¼‰

       . MySQL ç”µå•†å®žæˆ˜

       . Redis(缓存服务)

       . æœç´¢å¼•æ“Ž-Solr

       . é›†æˆAPI Doc å·¥å…·-Swagger

       . å›¾ç‰‡è‡ªåŠ¨åŒ–处理:Tengine+LUA+GraphicsMagic

       . æ‰‹æœºã€é‚®ç®±æ³¨å†Œ

       . å•ç‚¹ç™»å½• Token

       . OAuth2.0 è®¤è¯

       . Jsoup ç½‘络爬虫(多线程爬虫/代理 IP çˆ¬è™«)

       . ExecutorService çº¿ç¨‹æ± 

       . IK ä¸­æ–‡åˆ†è¯

       . Postman

       . ReactJS

       . webpack

       . èŒåœºæ™‹å‡åŠ›ï¼šç®€åŽ†æ’°å†™

       . ç¨‹åºçŒ¿é¢è¯•å®å…¸ä¹‹é¡¹ç›®é¢è¯•

       .大型互联网旅游电商项目实战-爱旅行

       ç¬¬äº”阶段: 分布式微服架构开发

       . Spring Boot çŽ¯å¢ƒæ­å»º

       . Spring Boot å¸¸ç”¨æŠ€èƒ½

       . Spring Boot æ•´åˆRedis

       . Spring Boot æ•´åˆMybatis

       . å¾®æœåŠ¡æž¶æž„及架构设计

       . æ¶ˆæ¯é˜Ÿåˆ—

       ActiveMQ\RabbitMQ

       . åˆ†å¸ƒå¼äº‹åŠ¡

       . åˆ†å¸ƒå¼é” Redis-setnx

       . Zookeeper æ³¨å†Œä¸­å¿ƒ

       . åŸºäºŽ ActiveMQ å®žçŽ°é«˜å¹¶å‘

       . Docker çŽ¯å¢ƒæ­å»º

       . Docker é•œåƒåŠ é€Ÿ

       . Docker å®¹å™¨ç®¡ç†

       . Docker é•œåƒç®¡ç†

       . Docker å®¹å™¨æ–‡ä»¶å¤‡ä»½

       . Dockerfile

       . Docker ç§æœä»“库

       . çœŸå®žäº’联网高并发电商项目实战-双十一抢购

       . å¯è§†åŒ–监控 Portainer

       . Docker Compose 容器编排

       . Docker Compose æ‰©å®¹ã€ç¼©å®¹

       . Docker Swarm é›†ç¾¤ç¼–排

       . Jenkins å®‰è£…、插件配置

       . Jenkins é…ç½®æ™®é€šä»»åŠ¡

       . Jenkins é…ç½®ç®¡é“任务

       . Jenkins è‡ªåŠ¨å‘布服务

       . Spring Cloud Eureka

       . Spring Cloud Feign

       . Spring Cloud Ribbon

       . Spring Cloud Zuul

       . Spring Cloud Config

       . Spring Cloud Hystrix

       . Spring Cloud Sleuth

       . Spring Boot Admin

       .Eureka æ³¨å†ŒåŽŸç†æŽ¢ç§˜

       . Spring Cloud 大坑解读

       . Zipkin

       . Zipkin æ•´åˆRabbitMQ

       . Zipkin æ•´åˆMySQL

       . ELK æ—¥å¿—收集

       .Kafka

       . Elasticsearch æ˜ å°„管理

       . Elasticsearch æŸ¥è¯¢/复合查询

       . Elasticsearch é›†ç¾¤/集群规划

       . Elasticsearch èšåˆ

       . Elasticsearch é›†ç¾¤ç›‘控

       . Elasticsearch æ’件

       (Head/BigDesk)

       . Mycat è¯»å†™åˆ†ç¦»

       . Mycat ä¸€ä¸»å¤šä»Ž

       . Mycat å¤šä¸»å¤šä»Ž

       . Mycat æ•°æ®åˆ†ç‰‡

       . Redis

       . Redis-Redlock

       . Elasticsearch çŽ¯å¢ƒæ­å»º

       . Elasticsearch å®¢æˆ·ç«¯

       . Elasticsearch ç´¢å¼•ç®¡ç†

       . Elasticsearch æ–‡æ¡£ç®¡ç†

       . Mycat é›†ç¾¤

       . Jmeter 并发测试

       . Jmeter 生成测试报告

       . å¾®ä¿¡ç™»å½•

       . å¾®ä¿¡æ”¯ä»˜

       . æ”¯ä»˜å®æ”¯ä»˜

       . ç™¾åº¦åœ°å›¾

       . Sonar æœ¬åœ°æ£€æµ‹

       . Sonar +Jenkins çº¿ä¸Šæ£€æµ‹

       . CI/CD

       . Spring Boot æ”¹é€ çˆ±æ—…行项目实战

       . å¤§åž‹äº’联网票务类电商项目实战-大觅网

       . ES6 æ¦‚念(les、const)

       . ES6 å¯¹è±¡å’Œæ•°ç»„

       . ES6 å‡½æ•°æ‰©å±•

       . VUE çŽ¯å¢ƒæ­å»º

       . VUE.JS æŒ‡ä»¤

       .VUE 交互

       . VUE 实例生命周期

       . VUE 组件

       . VUE é¡¹ç›®çŽ¯å¢ƒé…ç½®åŠå•æ–‡ä»¶ç»„件

       .VUE 路由

       ç¬¬å…­é˜¶æ®µï¼šcc服务

       . Spring Cloud Gateway

       . Consul

       . Nacos

       . Eureka、Consu、lNacos、Zookeeper 对比分析

       . Prometheus + Grafana

       . ES 分布式存储原理

       . NoSQL 数据库解决方案(Redis、MongoDB)

       . OAuth2.0 认证( authorization code 模式)

       . OAuth2.0 认证( implicit 模式)

       . OAuth2.0 认证( resource owner password credentials 模式)

       . OAuth2.0 è®¤è¯( client credentials æ¨¡å¼)

       . NAS/FastDFS åˆ†å¸ƒå¼æ–‡ä»¶å­˜å‚¨

       . Python åŸºç¡€

       . Python çˆ¬è™«

       . 大数据及 Hadoop 概述

       . 分布式文件系统 HDFS 

       . 分布式计算框架MapReduce

       . 分布式列式数据库 HBase

       . Hadoop 综合应用

       . 面试大局观

       . 职业规划  

       . 项目面试

       . 具体业务场景化解决方案

       . 更多技术专题持续增加中

       æˆ‘估计能把你看晕,有不清楚的可以私信我

Elasticsearch7.8.0集成IK分词器改源码实现MySql5.7.2实现动态词库实时更新

       本文旨在探讨 Elasticsearch 7.8.0 集成 IK 分词器的改源码实现,配合 MySQl 5.7.2 实现动态词库实时更新的器源器实方法。

       IK 分词器源码通过 URL 请求文件或接口实现热更新,码分无需重启 ES 实例。析的现原然而,视频这种方式并不稳定,分词分词任务平台小程序源码因此,器源器实采用更为推荐的码分方案,即修改源码实现轮询查询数据库,析的现原以实现实时更新。视频

       在进行配置时,分词分词需下载 IK 分词器源码,器源器实并确保 maven 依赖与 ES 版本号相匹配。码分引入 MySQl 驱动后,析的现原开始对源码进行修改。视频

       首先,创建一个名为 HotDictReloadThread 的新类,用于执行远程词库热更新。接着,修改 Dictionary 类的 initial 方法,以创建并启动 HotDictReloadThread 实例,执行字典热更新操作。电影cms 源码教程

       在 Dictionary 类中,找到 reLoadMainDict 方法,针对扩展词库维护的逻辑,新增代码加载 MySQl 词库。为此,需预先在数据库中创建一张表,用于维护扩展词和停用词。同时,在项目根路径的 config 目录下创建 jdbc-reload.properties 配置文件,用于数据库连接配置。

       通过 jdbc-reload.properties 文件加载数据库连接,执行扩展词 SQL,将结果集添加到扩展词库中。类似地,实现同步 MySQl 停用词的逻辑,确保代码的清晰性和可维护性。

       完成基础配置后,打包插件并将 MySQl 驱动 mysql-connector-java.jar 与插件一同发布。将插件置于 ES 的 plugins 目录下,并确保有相应的目录结构。启动 ES,swing mysql项目源码查看日志输出,以验证词库更新功能的运行状态。

       在此过程中,可能遇到如 Column 'word' not found、Could not create connection to database server、no suitable driver found for jdbc:mysql://...、AccessControlException: access denied 等异常。通过调整 SQL 字段别名、确认驱动版本匹配、确保正确配置环境以及修改 Java 政策文件,这些问题均可得到解决。

       本文通过具体步骤和代码示例,详细介绍了 Elasticsearch 7.8.0 集成 IK 分词器,配合 MySQl 5.7.2 实现动态词库实时更新的完整流程。读者可根据本文指南,完成相关配置和代码修改,以实现高效且稳定的词库管理。

如何读取elasticsearch的分词索引信息

       一、插件准备

       网上有介绍说可以直接用plugin -install medcl/elasticsearch-analysis-ik的办法,但是我执行下来的效果只是将插件的源码下载下来,elasticsearch只是ncm 网易云 源码将其作为一个_site插件看待。

       所以只有执行maven并将打包后的jar文件拷贝到上级目录。(否则在定义mapping的analyzer的时候会提示找不到类的错误)。

       由于IK是基于字典的分词,所以还要下载IK的字典文件,在medcl的elasticsearch-RTF中有,可以通过这个地址下载:

       下载之后解压缩到config目录下。到这里,你可能需要重新启动下elasticsearch,好让下一部定义的分词器能立即生效。

       二、分词定义

       分词插件准备好之后就可以在elasticsearch里定义(声明)这个分词类型了(自带的几个类型,比如standred则不需要特别定义)。跟其他设置一样,分词的定义也可以在系统级(elasticsearch全局范围),也可以在索引级(只在当前index内部可见)。系统级的定义当然是指在conf目录下的

       elasticsearch.yml文件里定义,内容大致如下:

       index:

        analysis:

        analyzer:

        ikAnalyzer:

        alias: [ik]

        type: org.elasticsearch.index.analysis.IkAnalyzerProvider

       或者 index.analysis.analyzer.ik.type : "ik"

       因为个人喜好,我并没有这么做, 而是定义在了需要使用中文分词的index中,这样定义更灵活,也不会影响其他index。源码尾数规范形式

       在定义analyze之前,先关闭index。其实并不需要关闭也可以生效,但是为了数据一致性考虑,还是先执行关闭。(如果是线上的系统需要三思)

       curl -XPOST

       (很显然,这里的application是我的一个index)

       然后执行:

       curl -XPUT localhost:/application/_settings -d '

       {

        "analysis": {

        "analyzer":{

        "ikAnalyzer":{

        "type":"org.elasticsearch.index.analysis.IkAnalyzerProvider",

        "alias":"ik"

        }

        }

        }

       }

       '

       打开index:

       curl -XPOST

       到此为止一个新的类型的分词器就定义好了,接下来就是要如何使用了

       或者按如下配置

       curl -XPUT localhost:/indexname -d '{

        "settings" : {

        "analysis" : {

        "analyzer" : {

        "ik" : {

        "tokenizer" : "ik"

        }

        }

        }

        },

        "mappings" : {

        "article" : {

        "dynamic" : true,

        "properties" : {

        "title" : {

        "type" : "string",

        "analyzer" : "ik"

        }

        }

        }

        }

       }'

       如果我们想返回最细粒度的分词结果,需要在elasticsearch.yml中配置如下:

       index:

        analysis:

        analyzer:

        ik:

        alias: [ik_analyzer]

        type: org.elasticsearch.index.analysis.IkAnalyzerProvider

        ik_smart:

        type: ik

        use_smart: true

        ik_max_word:

        type: ik

        use_smart: false

       三、使用分词器

       在将分词器使用到实际数据之前,可以先测验下分词效果:

       中文分词

       分词结果是:

       {

        "tokens" : [ {

        "token" : "中文",

        "start_offset" : 0,

        "end_offset" : 2,

        "type" : "CN_WORD",

        "position" : 1

        }, {

        "token" : "分词",

        "start_offset" : 2,

        "end_offset" : 4,

        "type" : "CN_WORD",

        "position" : 2

        } ]

       }

       与使用standard分词器的效果更合理了:

       {

        "tokens" : [ {

        "token" : "中",

        "start_offset" : 0,

        "end_offset" : 1,

        "type" : "<IDEOGRAPHIC>",

        "position" : 1

        }, {

        "token" : "文",

        "start_offset" : 1,

        "end_offset" : 2,

        "type" : "<IDEOGRAPHIC>",

        "position" : 2

        }, {

        "token" : "分",

        "start_offset" : 2,

        "end_offset" : 3,

        "type" : "<IDEOGRAPHIC>",

        "position" : 3

        }, {

        "token" : "词",

        "start_offset" : 3,

        "end_offset" : 4,

        "type" : "<IDEOGRAPHIC>",

        "position" : 4

        } ]

       }

       新的分词器定义完成,工作正常后就可以在mapping的定义中引用了,比如我定义这样的type:

       curl localhost:/application/article/_mapping -d '

       {

        "article": {

        "properties": {

        "description": {

        "type": "string",

        "indexAnalyzer":"ikAnalyzer",

        "searchAnalyzer":"ikAnalyzer"

        },

        "title": {

        "type": "string",

        "indexAnalyzer":"ik",

        "searchAnalyzer":"ik"

        }

        }

        }

       }

       '

       很遗憾,对于已经存在的index来说,要将一个string类型的field从standard的分词器改成别的分词器通常都是失败的:

       {

        "error": "MergeMappingException[Merge failed with failures { [mapper [description] has different index_analyzer, mapper [description] has

       different search_analyzer]}]",

        "status":

       }

       而且没有办法解决冲突,唯一的办法是新建一个索引,并制定mapping使用新的分词器(注意要在数据插入之前,否则会使用elasticsearch默认的分词器)

       curl -XPUT localhost:/application/article/_mapping -d '

       {

        "article" : {

        "properties" : {

        "description": {

        "type": "string",

        "indexAnalyzer":"ikAnalyzer",

        "searchAnalyzer":"ikAnalyzer"

        },

        "title": {

        "type": "string",

        "indexAnalyzer":"ik",

        "searchAnalyzer":"ik"

        }

        }

        }

       }

       至此,一个带中文分词的elasticsearch就算搭建完成。 想偷懒的可以下载medcl的elasticsearch-RTF直接使用,里面需要的插件和配置基本都已经设置好。

       ------------

       标准分词(standard)配置如下:

       curl -XPUT localhost:/local -d '{

        "settings" : {

        "analysis" : {

        "analyzer" : {

        "stem" : {

        "tokenizer" : "standard",

        "filter" : ["standard", "lowercase", "stop", "porter_stem"]

        }

        }

        }

        },

        "mappings" : {

        "article" : {

        "dynamic" : true,

        "properties" : {

        "title" : {

        "type" : "string",

        "analyzer" : "stem"

        }

        }

        }

        }

       }'

       index:local

       type:article

       default analyzer:stem (filter:小写、停用词等)

       field:title  

       测试:

       # Sample Analysis

       curl -XGET localhost:/local/_analyze?analyzer=stem -d '{ Fight for your life}'

       curl -XGET localhost:/local/_analyze?analyzer=stem -d '{ Bruno fights Tyson tomorrow}'

       # Index Data

       curl -XPUT localhost:/local/article/1 -d'{ "title": "Fight for your life"}'

       curl -XPUT localhost:/local/article/2 -d'{ "title": "Fighting for your life"}'

       curl -XPUT localhost:/local/article/3 -d'{ "title": "My dad fought a dog"}'

       curl -XPUT localhost:/local/article/4 -d'{ "title": "Bruno fights Tyson tomorrow"}'

       # search on the title field, which is stemmed on index and search

       curl -XGET localhost:/local/_search?q=title:fight

       # searching on _all will not do anystemming, unless also configured on the mapping to be stemmed...

       curl -XGET localhost:/local/_search?q=fight

       例如:

       Fight for your life

       分词如下:

       { "tokens":[

       { "token":"fight","start_offset":1,"end_offset":6,"type":"<ALPHANUM>","position":1},<br>

       { "token":"your","start_offset":,"end_offset":,"type":"<ALPHANUM>","position":3},<br>

       { "token":"life","start_offset":,"end_offset":,"type":"<ALPHANUM>","position":4}

       ]}

        -------------------另一篇--------------------

       ElasticSearch安装ik分词插件

       一、IK简介

        IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从年月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在版本中,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。

        IK Analyzer 特性:

        1.采用了特有的逗正向迭代最细粒度切分算法逗,支持细粒度和智能分词两种切分模式;

        2.在系统环境:Core2 i7 3.4G双核,4G内存,window 7 位, Sun JDK 1.6_ 位 普通pc环境测试,IK具有万字/秒(KB/S)的高速处理能力。

        3.版本的智能分词模式支持简单的分词排歧义处理和数量词合并输出。

        4.采用了多子处理器分析模式,支持:英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符

        5.优化的词典存储,更小的内存占用。支持用户词典扩展定义。特别的,在版本,词典支持中文,英文,数字混合词语。

       二、安装IK分词插件

        假设读者已经安装好ES,如果没有的话,请参考ElasticSearch入门 —— 集群搭建。安装IK分词需要的资源可以从这里下载,整个安装过程需要三个步骤:

        1、获取分词的依赖包

        通过git clone ,下载分词器源码,然后进入下载目录,执行命令:mvn clean package,打包生成elasticsearch-analysis-ik-1.2.5.jar。将这个jar拷贝到ES_HOME/plugins/analysis-ik目录下面,如果没有该目录,则先创建该目录。

        2、ik目录拷贝

        将下载目录中的ik目录拷贝到ES_HOME/config目录下面。

        3、分词器配置

        打开ES_HOME/config/elasticsearch.yml文件,在文件最后加入如下内容:

       index:

        analysis:

        analyzer:

        ik:

        alias: [ik_analyzer]

        type: org.elasticsearch.index.analysis.IkAnalyzerProvider

        ik_max_word:

        type: ik

        use_smart: false

        ik_smart:

        type: ik

        use_smart: true

       或

       index.analysis.analyzer.default.type: ik

        ok!插件安装已经完成,请重新启动ES,接下来测试ik分词效果啦!

       三、ik分词测试

        1、创建一个索引,名为index。

       curl -XPUT

        2、为索引index创建mapping。

       curl -XPOST /fulltext/_mapping -d'

       {

        "fulltext": {

        "_all": {

        "analyzer": "ik"

        },

        "properties": {

        "content": {

        "type" : "string",

        "boost" : 8.0,

        "term_vector" : "with_positions_offsets",

        "analyzer" : "ik",

        "include_in_all" : true

        }

        }

        }

       }'

        3、测试

       curl '/_analyze?analyzer=ik&pretty=true' -d '

       {

       "text":"世界如此之大"

       }'

        显示结果如下:

       {

        "tokens" : [ {

        "token" : "text",

        "start_offset" : 4,

        "end_offset" : 8,

        "type" : "ENGLISH",

        "position" : 1

        }, {

        "token" : "世界",

        "start_offset" : ,

        "end_offset" : ,

        "type" : "CN_WORD",

        "position" : 2

        }, {

        "token" : "如此",

        "start_offset" : ,

        "end_offset" : ,

        "type" : "CN_WORD",

        "position" : 3

        }, {

        "token" : "之大",

        "start_offset" : ,

        "end_offset" : ,

        "type" : "CN_WORD",

        "position" : 4

        } ]

       }

java.lang.Error问题怎样解决?

       这是引入类型失败的错误提示,

       import org.wltea ,

       说明你引入了某个jar 包或者类,但是没有找到 ,就报错了.

       IK analyzer 中文分词器 开源的项目 ,有源码的.

       把这个下载好就可以了。

       一般有两种常见的情况:

       1、当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时,这个 jar 内所有的 java package 中的类必须来自这个 jar 包,这是 JVM 的安全措施,配合数字签名就能防止篡改,微软就把它的 SQLServer 驱动程序签名了。比如,JRE 的 rt.jar 就是 Sealed,所以你自己创建一个类 java.lang.MyClass 来运行的话,JVM 是拒绝的。

       通常情况下,如果你使用了基于动态代理的 AOP,比如 Hibernate 延迟加载或 Spring 的 AOP 就可能因为临时生成的一个子类本身生成在内存中而不是来自某个 jar 包,这时如果这个 jar 包是 Sealed 就无法工作,比如 Microsoft SQLServer JDBC 驱动程序在 Sealed 时你用 Hibernate 的延迟加载就会出错,因为 Hibernate 生成的代理类继承了某个 JDBC 驱动包内的类但这个驱动包是 Sealed,生成的类的包名在驱动名的 jar 中就会出错。

       2、可能是类版本错误。这个错误是你说你当前的某个类它引用到的其它类库的版本与这个类在编译时所用的版本不相同 ,比如:你的类 A 用了 c_1.0.jar 中的某个类,编译之后拿到服务器上去用,但服务器上的只有 c_1.1.jar 这个类,它的版本与 c_1.0.jar 某个用到的类略有差异。

       因此在 J2EE 开发中确保我们编译时针对 API 或接口编程,不要针对实现类编程,否则不同的版本对你有很大影响,你必须在所有可能用到的服务器上针对性地测试才能发现问题。

       如果你是使用类似  Eclipse 的开发工具,那么当你要用到 jstl.jar , jsp.jar, servlet.jar , j2ee.jar 等服务器提供的 API 时,我们不应该把服务器上的 jar 复制到 WEB-INF/lib 下,而是应该在 Eclipse  的项目属性的 Java Build Path 中 Add Library > Server Runtime 或 User Library 来避免复制 jar。一旦复制了之后其它人在服务器配置变更后可能不知道你的类库和服务器的类库有什么差异。

go语言unresolved type string

这是引入类型失败的错误提示,

       import org.wltea ,说明你引入了某个jar 包或者类,但是没有找到 ,就报错了.IK analyzer 中文分词器 开源的项目 ,有源码的.把这个下载好就可以了。