JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装,这也是编程进阶的表现。
SolrJ的使用
覆盖了solr的全部功能,下面将自己在实际开发中所使用的程序粘贴出来并适当加以解释,由于本人比较菜,代码书写不是那么的精练,还请见谅。
1、 创建solrserver对象:
try {
solr.setDefaultMaxConnectionsPerHost(100);
请检查tomcat服务器或端口是否开启!");
2、 添加索引
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
设置每个字段不得为空,可以在提交索引前进行检查
在这里请注意date的格式,要进行适当的转化,上文已提到
…………
对索引进行优化
3、 使用bean对象添加索引
创建一个对应于solr索引的类别:
…………
…………
使用数据创建bean对象列表,
try {
索引提交完毕。
4、 删除索引
据查询结果删除:
try {
删除所有的索引
根据索引号删除索引:
5、 查询
提供的查询功能比较强大,可以进行结果中查询、范围查询、排序等。
下面是笔者封装的一个查询函数:
检测输入是否合法
初始化查询对象
设置起始位置与返回结果数
设置排序
设置高亮
开启高亮组件
高亮字段
标记
结果分片数,默认为1
每个分片的最大长度,默认为100
返回查询结果
补充一下范围查询的格式:[star t TO end],start与end是相应数据格式的值的字符串形式,“TO” 一定要保持大写!
6、 读取查询结果
读取返回结果:
读取返回结果:
读取高亮显示结果:
即为上面定义的bean类
的键为Item的id,值唯一,我们设置的高亮字段为title
7、 Facet的一个应用:自动补全
为前缀,min为最大返回结果数
为solr中的层次分类查询
排除单个字