通過(guò)solr定位“獨(dú)孤求敗”在金庸15本小說(shuō)中出現(xiàn)的章節(jié)

實(shí)驗(yàn)內(nèi)容

使用Solr對(duì)金庸的15本小說(shuō)的每一個(gè)章節(jié)進(jìn)行全文索引曙砂,定位“獨(dú)孤求敗”在小說(shuō)中出現(xiàn)的章節(jié)香伴。

實(shí)驗(yàn)環(huán)境

操作系統(tǒng):Win10專業(yè)版 17134.137
Solr版本:7.3.1
Java版本:1.8.0_172

實(shí)驗(yàn)步驟

1. 啟動(dòng)solr并建立新的core

在solr的根目錄下侣肄,同時(shí)點(diǎn)擊鼠標(biāo)右鍵+shift,在出現(xiàn)的菜單中,選擇在此處打開(kāi)PowerShell窗口屡拨,輸入如下指令啟動(dòng)solr

bin/solr.cmd start

啟動(dòng)完成后攻冷,輸入如下指令建立新core

bin/solr.cmd create -c jinyong

然后在瀏覽器輸入

http://localhost:8983/solr/#/jinyong

即可進(jìn)入solr admin界面娃胆,對(duì)新建的core進(jìn)行管理

tips:在windows下重啟solr需要輸入如下指令

bin/solr.cmd restart -p 8983

2. 添加Ik分詞包和text_ik字段類型

首先進(jìn)入如下目錄

image

然后,將ik的兩個(gè)Jar包放入lib文件夾等曼,配置文件放入classes文件夾
image

image

image

然后在jinyong這個(gè)core中的manage-shema中加入如下fieldType配置:

<!-- IK字段類型 -->
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
  <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" isMaxWordLength="false" useSmart="false"/>
</analyzer>
<analyzer type="query">
  <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" isMaxWordLength="false" useSmart="false"/>
</analyzer>
</fieldType>

重啟solr里烦,進(jìn)入solr admin界面,查看text_ik字段類型分詞效果禁谦,為了完好的分出“獨(dú)孤求敗”4個(gè)字胁黑,我在ik分詞包的額外詞(ext.dic)中加入了“獨(dú)孤求敗”,在停用詞(stopword.dic)加入了“獨(dú)孤”州泊,“求敗”兩次别厘,以上兩個(gè)文件均在以下目錄中

image

分詞效果如圖所示:
image

3. 使用DIH方式導(dǎo)入金庸小說(shuō)的文本文件

為了知道“孤獨(dú)求敗”具體在哪個(gè)章節(jié)中出現(xiàn),先使用章節(jié)分割器將15本小說(shuō)按章節(jié)分開(kāi)拥诡,每本小說(shuō)一個(gè)文件夾触趴,再用編碼轉(zhuǎn)換器,將txt文件編碼轉(zhuǎn)為utf-8渴肉,如圖:

image

image

準(zhǔn)備好被索引的文件后冗懦,在solr-7.3.1/server/solr/jinyong/conf目錄下,建立data-config.xml文件仇祭。文件內(nèi)容如下

<dataConfig>
  <dataSource name="fileDataSource" type="FileDataSource" />
  <document>
    <!-- baseDir:被索引文件的位置 fileName:正則匹配文件名 -->
    <!-- 索引文件出錯(cuò)時(shí)跳過(guò)該文件 -->
    <!-- 遞歸地索引baseDir下的每個(gè)文件夾 -->
    <entity name="files" dataSource="null" rootEntity="false"
    processor="FileListEntityProcessor"
    baseDir="D:\Storage\小說(shuō)\金庸小說(shuō)全集" fileName=".*\.txt" 
    onError="skip" 
    recursive="true"> 
    
      <!-- 將文件信息與相應(yīng)的managed-schema中的field對(duì)應(yīng)起來(lái)披蕉,有id、filePath、size没讲、lastModified眯娱、text這些字段 -->
      <field column="file" name="id"/>
      <field column="fileAbsolutePath" name="filePath" />
      <field column="fileSize" name="size" />
      <field column="fileLastModified" name="lastModified" />

      <entity processor="PlainTextEntityProcessor" name="txtfile" url="${files.fileAbsolutePath}" dataSource="fileDataSource">
        <field column="plainText" name="text"/>
      </entity>
    </entity>
  </document>
</dataConfig>

然后添加相應(yīng)的field到managed-schema文件中(id字段會(huì)默認(rèn)定義,所以不用再重復(fù)定義)

<!-- txt文件定義字段 -->
<field name="text" type="text_ik" indexed="true" stored="true" omitNorms="true" multiValued="false"/>
<field name="fileName" type="string" indexed="true" stored="true" />
<field name="filePath" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="size" type="plong" indexed="true" stored="true" />
<field name="lastModified" type="pdate" indexed="true" stored="true" />

然后在solrconfig.xml文件中定義DIH
先是導(dǎo)入相應(yīng)的jar包爬凑,在如下位置添加以下語(yǔ)句

image

<!--  添加DIH包依賴 -->
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

再是再合適位置加入如下定義:

<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
  <str name="config">data-config.xml</str>
</lst>
</requestHandler>

重啟solr后徙缴,打開(kāi)solr amdin,在如下界面即可導(dǎo)入文件嘁信,建立索引

image

然后查看被索引的文件數(shù)
image

可見(jiàn)文件已經(jīng)被索引成功

4.搜索“孤獨(dú)求敗”出現(xiàn)的位置

構(gòu)造查詢

text:獨(dú)孤求敗

選擇在所有字段高亮于样,如下圖,我們可以發(fā)現(xiàn)一共在九個(gè)文檔中出現(xiàn)了“獨(dú)孤求敗”的字眼潘靖,通過(guò)查詢出來(lái)的filePath穿剖,我們可以知道該詞具體出現(xiàn)在哪本書(shū)的哪個(gè)章節(jié)

image

image

5.結(jié)論

由4的搜索結(jié)果我們可以知道,獨(dú)孤求敗共在兩本書(shū)中出現(xiàn)卦溢,《神雕俠侶》與《笑傲江湖》糊余。
而具體的章節(jié)如下:
《神雕俠侶》23、26单寂、27贬芥、32、30
《笑傲江湖》10凄贩、18誓军、21、39

6.參考資料

Solr建立索引練習(xí)
solr6.6 導(dǎo)入 文本(txt/json/xml/csv)文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疲扎,一起剝皮案震驚了整個(gè)濱河市昵时,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌椒丧,老刑警劉巖壹甥,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異壶熏,居然都是意外死亡句柠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)溯职,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谜酒,你說(shuō)我怎么就攤上這事妻枕∑ё澹” “怎么了粘驰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蝌数。 經(jīng)常有香客問(wèn)我度秘,道長(zhǎng)顶伞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任敷钾,我火速辦了婚禮枝哄,結(jié)果婚禮上阻荒,老公的妹妹穿的比我還像新娘众羡。我一直安慰自己侨赡,他們只是感情好粱侣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布齐婴。 她就那樣靜靜地躺著油猫,像睡著了一般柠偶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毡证,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天蔫仙,我揣著相機(jī)與錄音,去河邊找鬼恤煞。 笑死施籍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的法梯。 我是一名探鬼主播犀概,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼夜惭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姻灶!你這毒婦竟也來(lái)了诈茧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤曾沈,失蹤者是張志新(化名)和其女友劉穎鸥昏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吏垮,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡膳汪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遗嗽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痹换。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖晴音,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搁料,我是刑警寧澤系羞,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站昭伸,受9級(jí)特大地震影響澎迎,放射性物質(zhì)發(fā)生泄漏选调。R本人自食惡果不足惜灵份,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弦聂。 院中可真熱鬧氛什,春花似錦、人聲如沸枪眉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萨脑。三九已至饺饭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘫俊,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工骂蓖, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留川尖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓被芳,卻偏偏與公主長(zhǎng)得像馍悟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锣咒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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

  • 一.簡(jiǎn)介 Solr是一個(gè)獨(dú)立的企業(yè)級(jí)搜索應(yīng)用服務(wù)器,它對(duì)外提供類似于Web-service的API接口嗤攻。用戶可以通...
    泰安青年閱讀 3,666評(píng)論 0 37
  • 1 準(zhǔn)備工作及相關(guān)介紹 solr和lucene的版本是同步更新的诽俯,最新版本是6.5.0。本案例使用4.10.3 j...
    阿太哥閱讀 2,330評(píng)論 1 5
  • 2017年6月23日 星期五 雨天 今天才爬樓把昨天的課程聽(tīng)完闯团,晚上開(kāi)始實(shí)踐課程的方法仙粱,這兩天也找了以前發(fā)紅包推薦...
    何小萱閱讀 177評(píng)論 0 0
  • 今天已是運(yùn)動(dòng)會(huì)結(jié)束的第三天了。我憑著記憶幾下最后一篇運(yùn)動(dòng)會(huì)日記候味。 還和往常一樣隔心。一大早,全校師生就來(lái)到了運(yùn)動(dòng)場(chǎng)硬霍,他...
    劉婧_閱讀 653評(píng)論 0 4
  • 感賞自己表達(dá)與女兒的愛(ài)唯卖,感賞自己今晚在這個(gè)元宵節(jié)的晚上,思念女兒拜轨,并與女兒聯(lián)系。 感賞自己今日邊準(zhǔn)備晚餐橄碾,...
    Ai琳琳_六中玩換閱讀 188評(píng)論 0 0