solr詳解

一.什麼是solr?

solr是基於lucene的全文搜索引擎。提供了比lucene更多的查詢語言,同時實現了可配置,可擴展,索引性能優化。提供了較爲完備的引擎解決方案。java

二.solr和lucene的區別?

1.lucene是全文搜索引擎工具包,不是一個完整的全文檢索引擎,lucenen提供了完整的查詢引擎和索引引擎,目的是爲開發人員提供簡單易用的開發工具包
2.solr是搜索引擎系統,能夠獨立運行,經過solr能夠快速的構建企業的搜索引擎。web

三.solr目錄結構

clipboard.png

(1)bin:是腳本的啓動目錄apache

(2)contrib:第三方包存放的目錄vim

(4)dist:編譯打包後存放目錄,即構建後的輸出產物存放的目錄tomcat

(5)docs:solr文檔的存放目錄性能優化

(6)example:示範例子的存放目錄,這裏展現了DIH,即數據導入處理的例子服務器

三.solr的安裝和相關配置

安裝

1.建立solr文件夾app

mkdir /usr/local/solor

2.將tomcat和solr的壓縮包拷貝到該目錄下並解壓webapp

tar -zxf solr-4.10.3.tgz.tgz 
tar -zxf apache-tomcat-7.0.47

3.solr服務部署到tomcat下
將/usr/local/solr/solr-4.10.3/dist下的solr-4.10.3.war部署到tomcat下(建議更名爲solr.war)工具

cd /usr/local/solr/solr-4.10.3/dist
cp solr-4.10.3.war /usr/local/solr/apache-tomcat-7.0.47/webapps/solr.war

4.啓動tomcat將war包解壓。(再關閉後刪除war包。。切記)

cd /usr/local/solr/apache-tomcat-7.0.47/bin
./startup.sh

5.複製jar包solr工程中

cd /usr/local/solr/solr-4.10.3/example/lib/ext

cp * /usr/local/solr/apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib

6.建立solrhome,存放solr服務器全部配置文件的目錄

cd /usr/local/solr/solr-4.10.3/example
cp -r solr /usr/local/solr/solrhome

7.配置solrhome

cd /usr/local/solr/apache-tomcat-7.0.47/webapps/solr/WEB-INF
vim web.xml

修改:
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

8.重啓tomcat
訪問 xxx.xx.x.x:8080/solr

配置中文分析器及業務字段

(中文分析其部分)

1.把分析其的jar包添加到solr工程中

2.須要把IKAnalyzer須要的擴展詞典及停用詞詞典、配置文件複製到solr工程的classpath。
(WEB-INF下建立classes目錄 --拷貝 ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic)

3.配置filedType(/usr/local/solr/solrhome/collection1/conf/schema.xml)

<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"/>

4.重啓

相關文章
相關標籤/搜索