前期准备
搭建solr服务
参考上一篇,搭建solr搜索服务。
添加依赖
maven工程的话,添加如下依赖,
<!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.5.3</version>
</dependency>
也可以自己导入jar包
在solr安装目录下,找到solr-5.5.3\dist\solrj-lib路径,添加里面所有的jar包到自己的工程,别忘了在外面的文件夹还有个solr-solrj-5.5.3.jar包,一起拷贝。
aaarticlea/png;base64,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" alt="" />
编写调用代码
这里简单给个示例(包含分页),Spring mvc工程的:
@ResponseBody
@RequestMapping(value = "/searchByKeyWord", method =
{ RequestMethod.GET }, produces = "application/json; charset=utf-8")
@ApiOperation(value = "搜索接口", notes = "", httpMethod = "GET")
public BaseResponse<Map<String, Object>> search(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "keyWord", defaultValue = "") String keyWord,
@RequestParam(value = "pageSize", defaultValue = "10") long pageSize,
@RequestParam(value = "pageOffset", defaultValue = "0") long pageOffset)
{
System.out.println(pageSize + "," + pageOffset);
try
{
SolrClient solr = new HttpSolrClient(solrServiceUrl);
SolrQuery query = new SolrQuery();
String kw = URLDecoder.decode(keyWord, "UTF-8");
query.set("q", "title:" + kw + " and content:" + kw);
query.set("start", String.valueOf(pageOffset * pageSize));
query.set("rows", String.valueOf(pageSize));
query.addHighlightField("content");
query.setHighlight(true).setHighlightSnippets(1);
query.setParam("hl.fl", "title,content");
query.setHighlightFragsize(300);
QueryResponse queryResponse = solr.query(query);
Map<String, Map<String, List<String>>> highlightMap = queryResponse.getHighlighting();
Map<String, Object> result = new HashMap<String, Object>();
List<SearchModel> rstList = queryResponse.getBeans(SearchModel.class);
for (SearchModel obj : rstList)
{
Map<String, List<String>> hiStr = highlightMap.get(obj.getUrl());
List<String> contentList = hiStr.get("content");
if (contentList != null && contentList.size() > 0)
obj.setContentHighlight(contentList.get(0));
List<String> titleList = hiStr.get("title");
if (titleList != null && titleList.size() > 0)
obj.setTitleHighlight(titleList.get(0));
}
result.put("success", true);
result.put("key", URLDecoder.decode(keyWord, "UTF-8"));
result.put("list", rstList);
result.put("totalCount", queryResponse.getResults().getNumFound());
solr.close();
return BaseResponse.buildSuccessResponse(result);
}
catch (Exception e)
{
LOGGER.error(e.toString(), e);
return BaseResponse
.buildFailResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), "搜索异常.");
} }
以下是SearchModel类,注意要与data-config.xml配置的字段对应起来,还有就是不要忘了在字段前面加上@Field注解(org.apache.solr.client.solrj.beans.Field)。
package com.cetiti.eppsas.model; import org.apache.solr.client.solrj.beans.Field; public class SearchModel
{
private String origin;
private String title;
private String content;
private String linkUrl;
private String keyWord;
private long postTime;
private String url;
private String titleHighlight;
private String contentHighlight; /**
* @return the origin
*/
public String getOrigin()
{
return origin;
} /**
* @param origin the origin to set
*/
@Field("origin")
public void setOrigin(String origin)
{
this.origin = origin;
} /**
* @return the title
*/
public String getTitle()
{
return title;
} /**
* @param title the title to set
*/
@Field("title")
public void setTitle(String title)
{
this.title = title;
} /**
* @return the content
*/
public String getContent()
{
return content;
} /**
* @param content the content to set
*/
@Field("content")
public void setContent(String content)
{
this.content = content;
} /**
* @return the linkUrl
*/
public String getLinkUrl()
{
return linkUrl;
} /**
* @param linkUrl the linkUrl to set
*/
@Field("linkUrl")
public void setLinkUrl(String linkUrl)
{
this.linkUrl = linkUrl;
} /**
* @return the keyWord
*/
public String getKeyWord()
{
return keyWord;
} /**
* @param keyWord the keyWord to set
*/
@Field("keyWord")
public void setKeyWord(String keyWord)
{
this.keyWord = keyWord;
} /**
* @return the url
*/
public String getUrl()
{
return url;
} /**
* @param url the url to set
*/
@Field("url")
public void setUrl(String url)
{
this.url = url;
} /**
* @return the postTime
*/
public long getPostTime()
{
return postTime;
} /**
* @param postTime the postTime to set
*/
@Field("postTime")
public void setPostTime(long postTime)
{
this.postTime = postTime;
} /**
* @return the titleHighlight
*/
public String getTitleHighlight()
{
return titleHighlight;
} /**
* @param titleHighlight the titleHighlight to set
*/
public void setTitleHighlight(String titleHighlight)
{
this.titleHighlight = titleHighlight;
} /**
* @return the contentHighlight
*/
public String getContentHighlight()
{
return contentHighlight;
} /**
* @param contentHighlight the contentHighlight to set
*/
public void setContentHighlight(String contentHighlight)
{
this.contentHighlight = contentHighlight;
} }
前端示例
其它的根据业务需求具体扩展吧,在前端可以对查询到的数据进行一些自定义展示(关键字标红高亮,每条记录分类,点击跳转到记录详情页面)。
aaarticlea/png;base64,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" alt="" />