solr mysql 分词_Solr中文分词器配置及数据检索

导入MySQL数据

*然后:这次我用的是article这张表,所以在以前的配置上要改相应的配置文件(schema.xml、data-config.xml),将IKAnalyzer2012_FF_hf1.jar拷贝到/solr/WEB-INF/lib,注意:必须是IKAnalyzer2012_FF_hf1.jar,别的jar包好像不怎么好使,我试了好几个jar包。

schema.xml:

其中"text_ikarticle"这个字段必须是你要中文分词的那个字段

data-config.xml:

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://127.0.0.1:3306/zhangxp"

user="root"

password="123456"/>

其中field这块是添加名称转化

*其次:导入数据,导入数据如图:

f7c94ba4bfd3

dataimport.png

使用分词查询,结果如下

f7c94ba4bfd3

分词查询.png

基于WEB全文检索

基于Web查询数据,关键词用红字标注

SolrArticleController .java

package com.xx.controller;

import java.util.ArrayList;

import java.util.Collection;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

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.SolrDocument;

import org.apache.solr.common.SolrDocumentList;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import com.xx.other.bean.Article;

@Controller

@RequestMapping("/solr")

public class SolrArticleController {

private static final String USER_URL = "http://localhost:8188/solr/article";

private static final Logger LOG = LoggerFactory.getLogger(SolrArticleController.class);

private static HttpSolrServer solrServer = new HttpSolrServer(USER_URL);

@RequestMapping(value="/query")

public String queryArticle(HttpServletRequest request,Model model) throws Exception{

String reqparam=request.getParameter("param");

reqparam=new String(reqparam.getBytes("iso-8859-1"), "utf-8");

if(StringUtils.isEmpty(reqparam)){

reqparam="*";

}

// new String(reqparam.getBytes(charset), charset)

SolrQuery query = new SolrQuery();

query.setHighlight(true);

query.addHighlightField("text_ikarticle");

query.setHighlightSimplePre("");

query.setHighlightSimplePost("");

query.setHighlightSnippets(1);

query.setHighlightFragsize(100);

query.set("q", "text_ikarticle:"+reqparam);

QueryResponse response = solrServer.query(query);

SolrDocumentList docList = response.getResults();

Map>> highmap = response.getHighlighting();

LOG.info("一共有 " + docList.getNumFound() + " 条记录");

LOG.info("==================");

List list=new ArrayList();

Article article=null;

for (SolrDocument doc : docList) {

Collection cols = doc.getFieldNames();

for (String field : cols) {

LOG.info(field + ":" + doc.get(field));

}

LOG.info("==================");

LOG.info(highmap.get(doc.get("id")).get("text_ikarticle").toString());

article=new Article(doc.get("id").toString(),highmap.get(doc.get("id")).get("text_ikarticle").toString());

list.add(article);

}

model.addAttribute("list", list);

return "solrArticle";

}

}

solrArticle.jsp

pageEncoding="UTF-8"%>

Insert title here
  • ${article.articleID}===>${article.content}

检索成功,显示数据如图所示:

f7c94ba4bfd3

检索一半.png

f7c94ba4bfd3

检索你的话.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值