Solr安裝與配置
需要Java Runtime Environment(JRE) 1.7或更高版本,先驗證。
# java -version
如果沒有安裝好Java環境,需要參考:http://blog.csdn.net/unix21/article/details/18774417
無需安裝tomcat,新版solr已經集成jetty
Solr最新版下載地址 http://mirror.bit.edu.cn/apache/lucene/solr/
#wget http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/solr-5.3.1.tgz
解壓壓縮包
#tar zxf solr-5.3.1.tgz
創建應用程序和數據目錄
#mkdir -p /data/solr /usr/local/solr
創建運行solr的用戶并賦權
#groupadd solr
#useradd -g solr solr
#chown -R solr.solr /data/solr /usr/local/solr
安裝solr服務
#/usr/solr-5.3.1/bin/install_solr_service.sh /usr/solr-5.3.1.tgz -d /data/solr -i /usr/local/solr
如果沒有安裝jdk
安裝正常
【狀態】
#/usr/local/solr/solr/bin/solr status
solr命令用法
定位到solr應用程序目錄
# cd /usr/local/solr/solr
查看solr命令選項
# ./bin/solr
--------------
Usage: solr COMMAND OPTIONS
where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete
Standalone server example (start Solr running in the background on port 8984):
./solr start -p 8984
SolrCloud example (start Solr running in SolrCloud mode using localhost:2181 to connect to ZooKeeper, with 1g max heap size and remote Java debug options enabled):
./solr start -c -m 1g -z localhost:2181 -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"
Pass -help after any COMMAND to see command-specific usage information,
such as: ./solr start -help or ./solr stop -help
-----------------------
【啟動】
#/usr/local/solr/solr/bin/solr start -help
#/usr/local/solr/solr/bin/solr create -help
【重啟】才可以新的索引配置文件生效 重啟可以解決CPU占比很高的問題
#/usr/local/solr/solr/bin/solr restart
#/usr/local/solr/solr/bin/solr stop
#crontab -l
#crontab -e
10 3 * * * root /usr/local/solr/solr/bin/solr restart
安裝solr服務腳本用法
運行安裝腳本
# /usr/solr-5.3.1/bin/install_solr_service.sh
【創建集合】
在這個部分,我們創建一個簡單的Solr集合。
Solr可以有多個集合,但在這個示例,我們只使用一個。使用如下命令,創建一個新的集合。我們以solr用戶運行以避免任何權限錯誤。
# su - solr -c "/usr/local/solr/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
在這個命令中,gettingstarted是集合的名字,-n指定配置集合。Solr默認提供了3個配置集合。這里我們使用的是schemaless,意思是可以提供任意名字的任意列,類型將會被猜測。
防火墻
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8983 -j ACCEPT
http://192.168.1.197:8983/solr
http://192.168.1.197:8983/solr/#/gettingstarted/query
【刪除核心】
#su - solr -c "/usr/local/solr/solr/bin/solr delete -c collection2"
【創建核心】
#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection1 -n data_driven_schema_configs"
#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection2 -n data_driven_schema_configs"
----------------------
【配置數據庫】
1.進入你的core(如collection1),新建一個目錄lib,拷貝mysql-connector-java-5.1.14.jar到新建的lib目錄中。
2.從solr的解壓文件目錄中找到“/example/example-DIH/solr/db/conf”下的db-data-config.xml文件到你的core(如collection1)conf目錄下,并更名為data-config.xml。
3.solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
4.data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.197:3306/test" user="root" password="123456"/><document>
<entity name="user" query="select * from user">
<field column="id" name="id" />
<field column="name" name="name" />
<field column="password" name="password" />
</entity>
</document>
</dataConfig>
[Core Admin點Reload]
5.
注意5.3managed-schema就代替之前的schema
schema brower可以查看schema
5.拷貝jar
Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler'
編譯的Solr,不會把data import handler的jar文件包含到war文件里面去的。
解決方法:
在編譯好的Solr文件夾里,我的是/usr/local/solr/solr-5.3.1/dist,找到solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar,
復制到jetty里,也就是前面建立的lib目錄。然后重新reload,Solr就沒有問題了
6.dataimport
這時候dataimport才有界面
7.【連接sqlserver】注意不支持域名,必須轉換為IP
<dataSource type="JdbcDataSource"
driver="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://211.152.35.122:49151;DatabaseName=YuanBoWebDB;"
user="panqingqiang"
password="514d1b0bfe6432841ac5a38cc7bfe22b"/>
jTDS驅動兼容性問題
Java連接SQL Server 2000數據庫時,有兩種方法:
(1)通過Microsoft的JDBC驅動連接。此JDBC驅動共有三個文件,分別是mssqlserver.jar、msutil.jar和msbase.jar。但是Microsoft官網上已經找不到這些驅動,其提供的sqljdbc.jar和sqljdbc4.jar并不支持SQL Server 2000。
驅動程序名稱:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname)
數據庫連接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url)
(2)通過jTDS驅動連接。下載地址:http://sourceforge.net/projects/jtds/files/jtds/
驅動程序名稱:net.sourceforge.jtds.jdbc.Driver(即下面的classforname)
數據庫連接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url)
http://www.cnblogs.com/snake-hand/archive/2013/06/18/3143159.html
8.【查詢】
http://192.168.1.197:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5
http://121.43.153.80:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5
-----
9.【分詞】
默認Solr提供的分詞組件對中文的支持是不友好的,比如:“VIM比作是編輯器之神”這個句子在索引的的時候,選擇FieldType為”text_general”作為分詞依據時,分詞效果是:它把每一個詞都分開了,可以想象如果一篇文章這樣分詞的搜索的體驗效果非常差。
能夠和Solr集成的中文分詞組件有很多,比如:mmseg4j、IkAnalyzer、ICTCLAS等等。各有各的特點。
作者github
https://github.com/chenlb/mmseg4j-solr
上的分享鏈接,可靠
http://pan.baidu.com/s/1dD7qMFf
mmseg4j-solr-2.3.0.jar
mmseg4j-core-1.10.0.jar
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
</analyzer>
</fieldtype>
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
</analyzer>
</fieldtype>
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/custom/path/to/my_dic" />
</analyzer>
</fieldtype>
TS_Address: '上海大酒店' 這個分詞,居然""不會分詞
http://www.tuicool.com/articles/67BFFz
68.罐頭不如果汁營養豐富,分別在ik和mmseg下比較分詞的差異
10.【注意事項】
Solr使用注意事項:
1:連接字符串要用IP,不能使用域名。
<dataSource type="JdbcDataSource"
driver="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://112.124.235.156:3499;DatabaseName=yuanbodb;"
2:需要設置jetty服務器的內存大小
<init-param>
<param-name>maxCacheSize</param-name>
<param-value>1024000000</param-value>
</init-param>
默認是256M。
數據超過1萬條會產生Java堆溢出錯誤
/usr/local/solr/solr-5.3.1/server/etc/ webdefault.xml
java.lang.OutOfMemoryError: Java heap space解決方法
靜態html admin-extra.html
E:\VM\test_197\solr\solr-5.3.1\example\example-DIH\solr\solr\conf
如果你需要修改官方分詞可以修改mmseg4j-core-1.10.0.jar里的data目錄下的分詞文件words.dic即可
==============================
參考:
CentOS下安裝Solr5.3
http://www.centoscn.com/image-text/install/2015/0918/6190.html
linux集群系列(三):Solr全文搜索服務器部署(Solr-5.2.1)
http://blog.csdn.net/jeffsmish/article/details/46533255
適用于 SQL Server 的 Microsoft JDBC Drivers 4.2、4.1 和 4.0
https://www.microsoft.com/zh-CN/download/details.aspx?id=11774
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=11774
Solr之搭建Solr5.2.1服務并從Mysql上導入數據
http://www.itnose.net/news/157/6310328
solr主從部署
http://my.oschina.net/gaowm/blog/349334
solr連接數據庫配置
http://www.cnblogs.com/madyina/p/4133908.html
[solr] - 數據庫導入
http://www.cnblogs.com/HD/p/3981677.html
[solr] - 索引數據刪除
http://www.cnblogs.com/HD/p/3981716.html
從mysql數據庫中導入數據到solr4.5
http://blog.csdn.net/zhangyaoming2004/article/details/44804987
全文檢索引擎Solr系列——整合中文分詞組件mmseg4j
http://www.importnew.com/12860.html
chenlb/mmseg4j-solr
https://github.com/chenlb/mmseg4j-solr
solr中mmseg4j自定義詞庫配置
http://blog.csdn.net/alen1985/article/details/8501021
Solr4.7.0中整合中文分詞mmseg4j-1.9.1
http://josh-persistence.iteye.com/blog/2050054?utm_source=tuicool&utm_medium=referral
solr4.7中文分詞器(ik-analyzer)配置
http://blog.csdn.net/clj198606061111/article/details/21289897#