SOLR作為成熟的企業(yè)級檢索服務(wù),已經(jīng)有些年頭。我在5年前,也接觸部分皮毛。當(dāng)時(shí)跟另外一個(gè)同事,一起學(xué)習(xí)學(xué)運(yùn)用到我們的產(chǎn)品之中,當(dāng)時(shí)是面對的數(shù)據(jù)量是500-700百W,多表聯(lián)合處理。然后通過SOLR,引入索引,再走日常的查詢。大概也是在4年前,在入門MVN之后,通過MVN快速搭建了SOLR運(yùn)行環(huán)境,幾天前,又翻看了一下寫的POM,覺得很有必要與大家進(jìn)行一下REVIEW,溫故而知新!我也對比了當(dāng)前網(wǎng)上多如牛毛的SOLR搭建文章,總感覺我照著做,還是不會。當(dāng)然,當(dāng)時(shí)的POM,我是參照了國外一個(gè)大牛弄的,當(dāng)時(shí)的SOLR版本是4.4.0.目前SOLR的6版本都出來,不過,需要JDK8以上。鄙人一直在用JDK7,所以,不考慮一下跨那么大,怕扯到蛋了。哈哈,玩笑話。另外由于之前分詞,是用的jcseg,當(dāng)時(shí)的版本也比較舊(1.8.9),所以今天做了相關(guān)升級。我就分享一下相關(guān)的心得,多有不足,歡迎指正。
環(huán)境說明:
WEB服務(wù)器:
apache-tomcat-7.0.68
JDK:
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
MVN:3.0.5
SOLR:4.10.4
分詞器:jcseg1.9.7
業(yè)務(wù)場景:一般我們需要對一些大數(shù)據(jù)量的表進(jìn)行查詢,如果涉汲到多個(gè)表,是比較難辦的。這個(gè)時(shí)候,SOLR就能解決我們的燃眉之急。首先,我們通過把數(shù)據(jù)映射到SOLR的索引之中,這樣查詢先走SOLR的索引,(千W數(shù)據(jù)毫無壓力)毫秒級。查詢到概要數(shù)據(jù),當(dāng)需要明細(xì),再檢索庫就很快了。我們今天就講一下如何通過MVN,把數(shù)據(jù)庫的數(shù)據(jù)快速全量同步到SOLR,然后有一個(gè)基本的界面然我們可以操作,測試一下效果。
配置文件結(jié)構(gòu):
從上往下,一一進(jìn)行說明:
jscseg.properties:分詞器的配置文件
log4j.propertes:日志文件
solr.xml:這個(gè)是SOLR運(yùn)行時(shí),首先加載的一個(gè)配置文件,它會根據(jù)這里面的CORE去找相應(yīng)的庫的索引,很重要。
看src/main/config下面,有幾個(gè)文件夾,除了lexicon是分詞的庫文件之外,其它都是你業(yè)務(wù)庫的索引配置文件,我們以tagger為例
主要看一下 db-data-config.xml,schema.xml.
db-data-config:固明思義,就是存數(shù)據(jù)庫訪問,SQL相關(guān)的。
里面的具體配置,現(xiàn)在不講,不然,篇幅不夠。
schema是定義索引字段類型,哪些字段需要分詞等相關(guān)的。
這里面描述了某個(gè)字段的類型,是否索引,是否持久化等等。
src/main/webapp下面還有一個(gè)solr.xml這個(gè)是放在tomcat的目錄下面的。用來啟動SOLR
實(shí)際上定義了solr.solr.home這個(gè)環(huán)境變量(關(guān)鍵)
下面,就是POM部分了,點(diǎn)鏈接下載。POM
我的微信公眾號,歡迎溝通學(xué)習(xí)。
posted on 2016-05-20 18:38
alexcai 閱讀(217)
評論(0) 編輯 收藏