1、索引PDF乱码
这种情况只发生在索引某些pdf文件,在网上找了很久,帖子都是很老的了,一时不知如何解决,于是到solr的contrib/extraction/lib目录下面找找看pdf使用的库:pdfbox-1.3.1.jar、fontbox-1.3.1.jar和jempbox-1.3.1.jar,再到官网上看看,发现最新的版本已经到1.6.0 了,索引下载回来替换掉原有的测试看看。在替换掉这三个jar包之后,重新索引之前乱码的文档,然后搜索,一切OK!
?
2、搜索时,某些字段返回值太大,影响使用。这个最后在stackoverflow上找到解答了,这里非常感谢作者:http://stackoverflow.com/questions/3452665/how-do-i-return-only-a-truncated-portion-of-a-field-in-solr。
具体操作如下:
添加搜索参数:
fl=id,name&
hl=true&
hl.fl=attr_content&
f.attr_content.hl.snippets=2&
f.attr_content.hl.alternateField=attr_content&
hl.maxAlternateFieldLength=300
?
第一行定义查询结果返回的字段,第二行定义使用高亮显示关键字,第三行定义需要高亮的字段,第四行我的理解是字段内容切片数,第五行第一高亮字段的可选字段,第六行是定义最大长度300.
?
?
3、在索引某些大文件时,会发生内存溢出,不过这个问题在第一个问题解决之后,暂时没有发生,后面还需要测试,以判断是否真正解决。
补充,通过仔细观察,发现如果PDF中使用了很多字体,这个时候会报错,内存溢出,针对这个的解决办法是设置tomcat启动参数,加大java虚拟机内存。
?