做了一个solr的全文检索的功能,技术比较低级,solr的版本也比较老4.10版本的。只是使用tika去解析文档存储到solr的索引库中,文档大概40M的大小吧。解析后的文字大概60万左右。存储到solr索引库中一切都OK。
问题来了:高亮显示的时候,搜索内容如果非常靠后,文档可以搜索出来,但是高亮的数据是空的。
自我总结了几点:
1、maxAnalyzedChars:文档内容过大时,高亮数据显示不全。查看官方文档 高亮区域是有默认值大小的10000字符
查看java的solrj竟然没有这个配置项的api。需要手动更改solrhome中的solrconfig.xml内容。<int name="hl.maxAnalyzedChars">-1</int>。设置为-1代表不限制就可以解决这个问题了。
2、solrj中setHighlightFragsize的含义:
每段高亮的内容的大小限制。设置为0,代表不限制,且只会拿回一段高亮内容。setHighlightSnippets失去意义。
3、solrj中setHighlightSnippets的含义:
要展示几段高亮内容。设置后会将高亮部分分几个list传回来。可以手动遍历拼接这些list内容即可。