当用solr的"/update/extract"方法为pdf 或 word 或excel 等文件做索引时,当高亮时总会出现很多回车或空格占了很多空间,让搜索结果时长时短很不好看,而配设中又没有配置可以完成这项目功能,唯一可以实现的就是改源码!
我用的是solr4.7.2的源码去改,源码在以下网址找到
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.solr/solr-cell/4.7.2/
改的文件是
http://grepcode.com/file/repo1.maven.org/maven2/org.apache.solr/solr-cell/4.7.2/org/apache/solr/handler/extraction/SolrContentHandler.java
改的地方是:
改动如下:
添加 private char LastChar=7;
public void startElement 去掉 bldrStack.getLast().append(' ');
public void endElement 去掉 bldrStack.getLast().append(' ');
public void characters(char[] chars, int offset, int length) throws SAXException
改为如下:
public void characters(char[] chars, int offset, int length) throws SAXException {
if(chars.length>0)
{
char[] TmpChars=new char[chars.length];
int TmpCharsCount=0;
for(int i=offset;i<chars.length;i++)
{
if(chars[i]=='\n' || chars[i]=='\r' || chars[i]=='\t' || chars[i]==' ' || chars[i]==' ')
{
if(LastChar!=' ')
{
TmpChars[TmpCharsCount]=' ';
TmpCharsCount++;
}
LastChar=' ';
}
else
{
TmpChars[TmpCharsCount]=chars[i];
TmpCharsCount++;
LastChar=chars[i];
}
}
if(TmpCharsCount>0)
{
bldrStack.getLast().append(TmpChars, 0, TmpCharsCount);
}
}
}
然后解压solr-cell-4.7.2.jar这个文件,替换里面的SolrContentHandler.class文件,再重新打包成zip文件再把后辍改成jar,这样替换掉原来的solr-cell-4.7.2.jar就OK了!
相关推荐
- **文档索引**:将文档添加到索引中,包括单个文档索引和批量导入两种方式。 - **查询语言**:支持多种查询语法,如简单查询、短语查询等。 - **分面搜索**:允许用户根据特定维度对结果进行细分,提高搜索的精确性...
安装后,Solr主要目录结构包括bin(运行脚本)、contrib(贡献插件)、dist(war和jar文件及相关依赖)、docs(API文档)、example(Solr工程的例子目录)、licenses(许可信息)等。Solr4.10.3要求使用1.7以上的JDK...
Solr 数据库插入全量和增量索引 Solr 是一个基于 Lucene 的搜索引擎,可以快速高效地对大量数据进行索引和查询。在实际应用中,我们需要将数据插入 Solr 索引库中,以便实现高效的搜索功能。本文将详细介绍 Solr ...
在阅读Solr7.5官方文档时,用户应重点关注以下主题: - 安装和配置:包括Solr的安装步骤、配置文件解析以及如何启动和停止Solr服务器。 - 文档处理:了解如何添加、更新和删除文档,以及如何定义和管理Schema(模式...
Apache Solr 是一个开源搜索引擎,基于 Apache Lucene...通过阅读官方文档,用户不仅能够掌握 Solr 的安装、配置、索引和搜索等基础操作,还能了解高级功能和优化技巧,从而高效地构建和维护基于 Solr 的搜索解决方案。
3. **SOLR与Lucene的关系**:SOLR是基于Lucene的一个开源搜索平台,它提供了比Lucene更为高级的功能,如高亮显示、分面搜索等,并且支持分布式搜索和索引。 #### 二、SOLR的安装与配置 1. **下载与准备**: - ...
### Solr教材知识点详解 ...以上是关于《solr教材-PDF版》的详细知识点介绍,涵盖了从Solr的基本概念到具体应用场景,再到性能调优等多个方面,旨在帮助读者全面了解和掌握Solr的核心技术和最佳实践。
无模式模式允许在索引文档时不预先定义模式,使得索引更加灵活。文档中解释了无模式模式的工作原理和应用场景。 #### 理解分析器、分词器和过滤器 文档深入介绍了 Solr 中的文本分析机制,包括如何使用分析器、...
### Solr 6.5 英文版操作说明文档知识点概览 ...通过以上概述,我们可以清晰地了解到 Solr 6.5 版本的操作说明文档涵盖了从安装部署到高级配置等多个方面的内容,旨在帮助用户全面掌握 Solr 的使用方法和技术细节。
- **Update Handler**:Solr提供了多种Update Handler,例如Direct Update Handler和Document Update Handler,它们接收单个文档或者批量文档的更新请求,然后进行相应的索引更新,而无需重新构建整个索引。...
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
在本篇博文中,“跟益达学Solr5之使用Tika从PDF中提取数据导入索引”,我们将探讨如何利用Apache Solr 5和Tika这两个强大的开源工具,从PDF文档中抽取数据并将其有效地导入到Solr索引库中。Apache Solr是一款功能...
8. ElasticSearch 和 Solr 的区别:ElasticSearch 和 Solr 都是基于 Lucene 实现的,全文检索引擎,但是 Solr 在实时建立索引的时候会产生 IO 阻塞查询性能会比 ElasticSearch 差一些,ElasticSearch 支持分布式,...
Solr查询与索引是Apache Solr的核心功能,它是一个基于Lucene的开源搜索引擎服务器,提供了高效、可扩展的全文检索、命中高亮、 faceted search(分面搜索)、拼写检查、动态集群等特性。在本文中,我们将深入探讨...
Solr 7官方文档是关于Apache Solr 7版本的详尽指南,它是一个高度可扩展、高性能的全文搜索引擎服务器,广泛应用于企业级搜索场景。Solr基于Java开发,能够处理大量的索引和查询请求,并提供了丰富的功能来满足各种...
1. **中文分词**:中文文本不像英文那样以空格作为单词的分隔符,因此在索引和搜索时需要进行分词处理。IK Analyzer是一个广泛使用的开源中文分词工具,适用于Solr。它提供了一种高效的分词算法,能够识别出词汇的...
### Solr创建索引并查询的关键知识点 #### 一、Solr简介 Apache Solr是一款开源的全文搜索引擎平台,基于Lucene实现。它提供了一套完整的搜索解决方案,并且支持多种高级特性,如高亮显示、分面搜索、地理位置搜索...
Solr提供了一套完整的监控工具,如JMX接口、Solr Admin UI等,用于查看索引状态、查询性能和系统资源消耗。定期监控和日志分析可以帮助我们发现潜在问题,及时调整优化。 10. **未来发展趋势**: 随着大数据和...
配置SolrCore时,需要创建相应的目录结构,并配置solrconfig.xml和schema.xml文件来定义索引结构和搜索行为。 【Solr入门】 - Schema配置:Schema是Solr的核心配置之一,用于定义字段类型和字段,影响索引和搜索...