Solr中文分詞器配置及數(shù)據(jù)檢索

<blockquote><h4>導(dǎo)入MySQL數(shù)據(jù)</h4></blockquote>

*首先:在做檢索數(shù)據(jù)之前,先將數(shù)據(jù)導(dǎo)入到Solr中宏怔,根據(jù)http://www.reibang.com/p/7ce281b2be30

*然后:這次我用的是article這張表锨亏,所以在以前的配置上要改相應(yīng)的配置文件(schema.xml骤肛、data-config.xml)舶治,將IKAnalyzer2012_FF_hf1.jar拷貝到/solr/WEB-INF/lib开镣,注意:必須是IKAnalyzer2012_FF_hf1.jar乏德,別的jar包好像不怎么好使巍糯,我試了好幾個jar包尝江。

schema.xml:

<fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" />
   </fieldType>
   <field name="text_ikarticle" type="text_ik" indexed="true" stored="true" required="true" /> 

其中"text_ikarticle"這個字段必須是你要中文分詞的那個字段

data-config.xml:

<dataConfig>  
    <dataSource type="JdbcDataSource"  
   driver="com.mysql.jdbc.Driver"  
   url="jdbc:mysql://127.0.0.1:3306/zhangxp"  
   user="root"  
   password="123456"/>  
    <document name="search_object">   
      <entity name="article"   query="select articleID, content  from article">   
        <field column="articleID" name="id"/>
        <field column="content" name="text_ikarticle"/>
      </entity>    
   </document> 
</dataConfig>

其中field這塊是添加名稱轉(zhuǎn)化
*其次:導(dǎo)入數(shù)據(jù)涉波,導(dǎo)入數(shù)據(jù)如圖:


dataimport.png

使用分詞查詢,結(jié)果如下

分詞查詢.png

<blockquote><h4>基于WEB全文檢索</h4></blockquote>
基于Web查詢數(shù)據(jù)炭序,關(guān)鍵詞用紅字標(biāo)注
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("<font color=\"red\">");
        query.setHighlightSimplePost("</font>");
        query.setHighlightSnippets(1);
        query.setHighlightFragsize(100);
        query.set("q", "text_ikarticle:"+reqparam);
        QueryResponse response = solrServer.query(query);
        SolrDocumentList docList = response.getResults();
        Map<String, Map<String, List<String>>> highmap = response.getHighlighting();
        LOG.info("一共有 " + docList.getNumFound() + " 條記錄");
        LOG.info("==================");
        List<Article> list=new ArrayList<Article>();
        Article article=null;
        for (SolrDocument doc : docList) {
            Collection<String> 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

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<ul>
<c:forEach items="${list}" var="article" varStatus="vs">  
<li>${article.articleID}===>${article.content}</li>
</c:forEach>    
</ul>
</body>
</html>

檢索成功啤覆,顯示數(shù)據(jù)如圖所示:

檢索一半.png
檢索你的話.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惭聂,隨后出現(xiàn)的幾起案子窗声,更是在濱河造成了極大的恐慌,老刑警劉巖辜纲,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笨觅,死亡現(xiàn)場離奇詭異,居然都是意外死亡耕腾,警方通過查閱死者的電腦和手機(jī)见剩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扫俺,“玉大人苍苞,你說我怎么就攤上這事。” “怎么了羹呵?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵骂际,是天一觀的道長。 經(jīng)常有香客問我冈欢,道長歉铝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任凑耻,我火速辦了婚禮太示,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拳话。我一直安慰自己先匪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布弃衍。 她就那樣靜靜地躺著呀非,像睡著了一般。 火紅的嫁衣襯著肌膚如雪镜盯。 梳的紋絲不亂的頭發(fā)上岸裙,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音速缆,去河邊找鬼降允。 笑死,一個胖子當(dāng)著我的面吹牛艺糜,可吹牛的內(nèi)容都是我干的剧董。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼破停,長吁一口氣:“原來是場噩夢啊……” “哼翅楼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起真慢,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤毅臊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后黑界,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體管嬉,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年朗鸠,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚯撩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡烛占,死狀恐怖求厕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤呀癣,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弦赖,受9級特大地震影響项栏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹬竖,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一沼沈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧币厕,春花似錦列另、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阴绢,卻和暖如春店乐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呻袭。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工眨八, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人左电。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓廉侧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親篓足。 傳聞我的和親對象是個殘疾皇子段誊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容