热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr分析器IKanalyzer配置及错误java.lang.AbstractMethodError解决

一.Solr使用中文分析器IK-analyzer时报错java.lang.AbstractMethodError错误如下图所示原因是Solr的版本和IK-analyzer的版本不

一.Solr使用中文分析器IK-analyzer时报错java.lang.AbstractMethodError

错误如下图所示

这里写图片描述

原因是Solr的版本和IK-analyzer的版本不匹配,IK-analyzer版本过低,现在大家能够在网上下到的IK-analyzer版本一般都是IKAnalyzer2012FF_u1,这个版本已经相当老旧了,这里提供一个较新版本的IK-analyzer:ik_analyzer_solr6

更换Jar后

这里写图片描述


二.IK-analyzer中文分析器

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。

使用Solr一般都会配置中文分析器,IKAnalyzer是应用最广的中文分析器,但是在网上能下载到IKAnalyzer版本都比较旧,这是因为这是个开源项目而且原作者好像不太想维护了,所以Solr不断更新,IKAnalyzer一直不更新,渐渐地IKAnalyzer就不能用了

不过,好在IKAnalyzer的作者把项目发布到了GitHub上,虽然没有见到IKAnalyzer的最新的Jar包但是这个项目还是更新了,而且Solr6可以使用,我fork了这个项目并把它打成了jar包,链接放到了上边


三.IK-analyzer的配置


3.1 把中文分析器添加到工程中。

把ik-analyzer-solr6.jar文件添加到Tomcat中的solr工程的lib目录下
把扩展词典文件ext_stopword.dic、配置文件IKAnalyzer.cfg.xml放到solr工程的WEB-INF/classes目录下

这里写图片描述


3.2 配置一个FieldType,制定使用IKAnalyzer

修改schema.xml文件(版本不同文件名称可能不同,6以上版本应该是managed-schema文件)
修改Solr的schema.xml文件,添加FieldType:

<fieldType name&#61;"text_ik" class&#61;"solr.TextField"><analyzer class&#61;"org.wltea.analyzer.lucene.IKAnalyzer"/>
fieldType>

3.3 配置业务域&#xff0c;type制定使用自定义的FieldType

设置业务系统Field&#xff0c;在schema.xml文件中添加&#xff1a;

"item_title" type&#61;"text_ik" indexed&#61;"true" stored&#61;"true"/>
"item_sell_point" type&#61;"text_ik" indexed&#61;"true" stored&#61;"true"/>
"item_price" type&#61;"long" indexed&#61;"true" stored&#61;"true"/>
"item_image" type&#61;"string" indexed&#61;"false" stored&#61;"true" />
"item_category_name" type&#61;"string" indexed&#61;"true" stored&#61;"true" />
"item_keywords" type&#61;"text_ik" indexed&#61;"true" stored&#61;"false" multiValued&#61;"true"/>
"item_title" dest&#61;"item_keywords"/>
"item_sell_point" dest&#61;"item_keywords"/>
"item_category_name" dest&#61;"item_keywords"/>

推荐阅读
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • Struts2框架构建指南
    本文详细介绍了如何使用Struts2(版本2.3.16.3)构建Web应用,包括必要的依赖库添加、配置文件设置以及简单的示例代码。Struts2是Apache软件基金会下的一个开源框架,用于简化Java Web应用程序的开发。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • flea,frame,db,使用,之 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • spring(22)JdbcTemplate
    2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细]
  • 本文详细记录了一位Java程序员在Lazada的面试经历,涵盖同步机制、JVM调优、Redis应用、线程池配置、Spring框架特性等多个技术点,以及高级面试中的设计问题和解决方案。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有