热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring集成solr并测试

1、首先介绍一下solr查询,各关键字代表的意思参数描述示例qSolr中用来搜索的查询。有关该语法的完整描述,请参阅参考资料中的“LuceneQueryParserSyntax”。可以通过

1、首先介绍一下solr查询,各关键字代表的意思

参数

描述

示例

q

Solr 中用来搜索的查询。有关该语法的完整描述,请参阅 参考资料 中的 “Lucene QueryParser Syntax”。可以通过追加一个分号和已索引且未进行断词的字段(下面会进行解释)的名称来包含排序信息。默认的排序是 score desc,指按记分降序排序。

q=myField:Java AND otherField:developerWorks; date asc

  此查询搜索指定的两个字段并根据一个日期字段对结果进行排序。

start

将初始偏移量指定到结果集中。可用于对结果进行分页。默认值为 0。

start=15

  返回从第 15 个结果开始的结果。

rows

返回文档的最大数目。默认值为 10。

rows=25

fq

提供一个可选的筛选器查询。查询结果被限制为仅搜索筛选器查询返回的结果。筛选过的查询由 Solr 进行缓存。它们对提高复杂查询的速度非常有用。

任何可以用 q 参数传递的有效查询,排序信息除外。

hl

当 hl=true 时,在查询响应中醒目显示片段。默认为 false。参看醒目显示参数上的 Solr Wiki 部分可以查看更多选项(见 参考资料)。

hl=true

fl

作为逗号分隔的列表指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。“score” 指还应返回记分。

*,score



2、solr链接参数

solr.url=http://ip:port/solrname
solr.maxRetries=1
solr.cOnnectionTimeout=500


3、solr与spring集成

  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:cOntext="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">














4、测试类

package com.vip.search.test;

import java.util.Iterator;
import java.util.Set;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

//junit进行启动spring的相关配置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locatiOns= {"classpath*:/spring/applicationContext.xml","classpath*:springmvc-servlet.xml"})
public class SolrTest{

//获取solr服务
@Autowired
private HttpSolrServer httpSolrServer;

@Test
public void query(){
try {
//创建solr查询
SolrQuery query = new SolrQuery();
//设置查询条件
query.set("q", "**");
query.set("fq", "**");
query.set("fl", "**");
query.set("start", "0");
query.set("wt", "xml");
QueryResponse rsp = httpSolrServer.query(query);
SolrDocumentList list = rsp.getResults();
System.out.println("命中数量:"+rsp.getResults().getNumFound());
for (int i = 0; i Set keySet = list.get(i).keySet();
Iterator iterator = keySet.iterator();
System.out.println();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key+":===========:"+list.get(i).getFieldValue(key));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

5、添加solr客户端依赖



org.apache.solr
solr-solrj
4.10.3


httpclient
org.apache.httpcomponents


httpcore
org.apache.httpcomponents


需要注意的是该依赖有可能和
    
org.apache.httpcomponents
httpclient
4.5.3

产生冲突如果项目中添加了httpclient依赖的话,就要把solr中的httpclient剔除




推荐阅读
author-avatar
xljlg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有