Solor 簡(jiǎn)介
** Solr** 是Apache
下的一個(gè)頂級(jí)開源項(xiàng)目醉拓,采用Java
開發(fā),它是基于Lucene
的全文搜索服務(wù)器。Solr
提供了比Lucene
更為豐富的查詢語(yǔ)言亿卤,同時(shí)實(shí)現(xiàn)了可配置愤兵、可擴(kuò)展,并對(duì)索引排吴、搜索性能進(jìn)行了優(yōu)化秆乳。Solr
可以獨(dú)立運(yùn)行,運(yùn)行在Jetty
钻哩、Tomcat
等這些Servlet
容器中屹堰,Solr
索引的實(shí)現(xiàn)方法很簡(jiǎn)單,用 POST
方法向 Solr
服務(wù)器發(fā)送一個(gè)描述 Field
及其內(nèi)容的 XML
文檔街氢,Solr
根據(jù)xml
文檔添加双藕、刪除、更新索引 阳仔。Solr
搜索只需要發(fā)送 HTTP GET
請(qǐng)求忧陪,然后對(duì) Solr
返回Xml
、json
等格式的查詢結(jié)果進(jìn)行解析近范,組織頁(yè)面布局嘶摊。Solr
不提供構(gòu)建UI的功能,Solr
提供了一個(gè)管理界面评矩,通過(guò)管理界面可以查詢Solr
的配置和運(yùn)行情況叶堆。
Solor安裝及Solr使用指南
tar -zxvf solr-4.10.3.tgz.tgz
bin:solr的運(yùn)行腳本
contrib:solr的一些貢獻(xiàn)軟件/插件,用于增強(qiáng)solr的功能斥杜。
dist:該目錄包含build過(guò)程中產(chǎn)生的war和jar文件虱颗,以及相關(guān)的依賴文件。
docs:solr的API文檔
example:solr工程的例子目錄:
example/solr:該目錄是一個(gè)包含了默認(rèn)配置信息的Solr的Core目錄蔗喂。
example/multicore:該目錄包含了在Solr的multicore中設(shè)置的多個(gè)Core目錄忘渔。
example/webapps:該目錄中包括一個(gè)solr.war,該war可作為solr的運(yùn)行實(shí)例工程缰儿。
licenses:solr相關(guān)的一些許可信息
Solr依賴環(huán)境
Jdk:jdk1.7.0_72
Tomcat:apache-tomcat-7.0.53
cp -r solr-4.10.3/dist/solr-4.10.3.war /usr/local/tomcat/webapps/solr.war
cd /usr/local/tomcat/bin/
./startup.sh #solr.war自動(dòng)解壓
./shutdown.sh #關(guān)閉tomcat
rm -rf solr.war
cp solr-4.10.3/example/lib/ext/*.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
cp solr-4.10.3/example/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/
# 創(chuàng)建Solorhome
cp -r solr-4.10.3/ /usr/local/solr
cd /usr/local/solr/example
cp -r solr solrhome
pwd /usr/local/solr/example/solrhome
vim web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr/example/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
./startup.sh
IKAnalyzer配置
mkdir webapps/solr/WEB-INF/classes
cp IKAnalyzer2012FF_u1.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib
cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic webapps/solr/WEB-INF/classes
vim /usr/local/solr/example/solrhome/collection1/conf/schema.xml
#配置FeilType
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
Solor 索引庫(kù)維護(hù)
"item_price":12,"item_title":"shutdown" #添加:添加一個(gè)json格式文件
"item_price":12,"item_title":"shutdown" # 修改:新增會(huì)自動(dòng)覆蓋
#刪除:在Documents 中選xml格式的
<delete>
<id>change.me</id>
</delete>
<commit/>
或者
<delete>
<query>*:*</query>
</delete>
<commit/>