当用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 3.*pdf使用手册,欢迎下载
Solr 全文检索服务Solr 全文检索服务Solr 全文检索服务Solr 全文检索服务Solr 全文检索服务Solr 全文检索服务
Solr数据库插入(全量和增量)索引,全量一般用于第一次创建索引情况,批量一般更新数据部分创建索引。
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
solr7.5官方文档是pdf格式,经本人转换成doc,pdf和doc同时供阅读参考
solr文档
少有的solr中文文档,详细说明了SOLR的文件配置,使用。
solr6.5英文版操作说明文档
这本资料介绍了solr的单机模式,集群模式的安装和配置,以及一些和java等语言的集成。以及更新旧版本solr引擎的说明等等
solr6.6官方文档,英文版
Apache Solr 4 Cookbook.pdf solr
比较完整的solr教程,PDF文档,而且描述比较详细而且可用
solr开发帮助文档,版本比较老的solr配置文档,同时包含了solr的一些基本知识
Solr全文检索
solr增量导入更新索引包
solr7.5官方文档
在tomcat中配置solr,以及solr 全文搜索建立索引的相关方法总结
solr开发指南.pdf
solr中文解析器以及使用文档,配合blog使用
solr7.2官方文档,花费1个月时间整理出来的,绝对正版! 至于solr是干什么用的呢。。。 度娘知道吧、Google知道吧、包括淘宝、京东,你想找东西,就需要用到搜索,也就需要学习solr。