http://sinykk.iteye.com/blog/1168272 php
Solr 是一個開源的企業級搜索服務器,底層使用易於擴展和修改的Java 來實現。
Solr 主要特性有:強大的全文檢索功能,高亮顯示檢索結果,動態集羣,數據庫接口和電子文檔(Word ,PDF 等)的處理。並且Solr 具備高度的可擴展,支持分佈搜索和索引的複製。
Solr 底層的核心技術是使用Apache Lucene 來實現的,簡單的說Solr 是Lucene 的服務器化。須要注意的是Solr 並非簡單的對Lucene 進行封裝,它所提供的大部分功能都區別於Lucene 。 html
================================================== java
WINDOWS/linux SOLR安裝 node
【linux參考】:http://sinykk.iteye.com/admin/blogs/1171098 mysql
【windows以下】 linux
================================================== git
Tomcat 7
Solr apache-solr-3.3.0
Jdk 1.6
Windows web
1. 下載所需軟件,安裝配置Tomcat。 sql
下載軟件爲 :Tomcat與Solr,jdk1.6,官網均可免費下載。 數據庫
2. Tomcat 配置文件conf\server.xml
添加編碼的配置 URIEncoding="UTF-8" (如不添加,中文檢索時由於亂碼搜索不到)。
添加後爲:
<Connector port="8983" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
4. 將D:\solr\apache-solr-3.3.0 解壓
5. 創建d:/solr/home主目錄(能夠根據本身的狀況創建),把D:\solr\apache-solr-3.3.0\example\solr複製到該目錄下。
6. 創建solr.home 環境變量:置爲 d:/solr/home
7. 將solr.War複製到tomcat的webapp下啓動是會自動解壓。
8. 修改D:\resouce\java\tomcat\webapps\solr\WEB-INF\web.xml.
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>d:\solr\home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
9. 啓動tomcat,瀏覽器輸入:http://localhost:8080/solr/
10.看到頁面說明部署成功
==================================================
solr 將MYSQL數據庫作成索引數據源【注意格式】
參考:http://digitalpbk.com/apachesolr/apache-solr-mysql-sample-data-config
==================================================
一、在solrconfig.xml中添加,增長導入數據功能
二、添加一個數據源data-config.xml,代碼以下
三、建立schema.xml語法,代碼以下
schema.xml 裏重要的字段
要有這個copyField字段SOLR才能檢索多個字段的值【如下設置將同時搜索 title,name,contents中的值】
<defaultSearchField>contents</defaultSearchField>
copyField是用來複製你一個欄位裡的值到另外一欄位用. 如你能夠將name裡的東西copy到default裡, 這樣solr作檢索時也會檢索到name裡的東西.
<copyField source="name" dest="contents"/>
<copyField source="title" dest="contents"/>
四、建立索引
http://192.168.171.129:8983/solr/dataimport?command=full-import
注:保證與數據庫鏈接正確
==================================================
solr 建立增量索引
主要是修改data-config.xml 數據源
==================================================
注意數據庫相關表的建立
如本例中 solr_articles表中有 last_index_time(timestamp)字段,每當增長或者更新了值都應修改last_index_time的值,以便增量索引能更新到
有問題請即時查看TOMCAT的LOG日誌文件
運行:http://192.168.171.129:8983/solr/dataimport?command=delta-import
若是運行後未達到你的預期,請查看dataimport.properties文件的日期,並組合新SQL語句查詢來調整問題
==================================================
multiple core(SOLR多個索引共存)
參考:http://wiki.apache.org/solr/CoreAdmin
==================================================
一、配置多個索引
二、將D:\solr\apache-solr-3.3.0\example\multicore下的 core0,core1兩個文件拷貝到D:\solr\home下,D:\solr\home目錄下以前的任務目錄及文件不變
注:D:\solr\home目錄爲D:\solr\apache-solr-3.3.0\example\solr
三、創建兩個索引數據存放目錄
D:\solr\home\core0\data
D:\solr\home\core1\data
四、修改其中一個索引如CORE1
修改solrconfig.xml爲以下代碼
【注 須要加入 lib 標籤主要是由於DataImportHandler 爲報錯,這多是官方的BUG】
最後運行 http://localhost:8080/solr/core1/admin/
==================================================
定時更新SOLR索引
因SOLR的索引更新是通過HTTP的,因此不能直接使用CRON,如今咱們換一種方式
將要訪問的HTTP寫入到PHP文件中,通過定時運行PHP文件來達到更新SORL索引目錄
10/* * * * * /usr/local/php/bin/php /yym/cronfile/solr_cron.php?t=index_delta
==================================================
==================================================
solr 的PHP客戶端
==================================================
從名字就能夠看出,這是 Solr 的 PHP 客戶端開發包。
經過這個包能夠像
http://code.google.com/p/solr-php-client/downloads/list
==================================================
常見錯誤 org.apache.solr.common.SolrException: Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler
==================================================
將solrconfig.xml中的值改成以下:【主要是指定SOLR的主目錄路徑出錯】
<lib dir="D:/solr/apache-solr-3.3.0/contrib/extraction/lib" />
<!-- When a regex is specified in addition to a directory, only the
files in that directory which completely match the regex
(anchored on both ends) will be included.
-->
<lib dir="D:/solr/apache-solr-3.3.0/dist/" regex="apache-solr-cell-\d.*\.jar" />
<lib dir="D:/solr/apache-solr-3.3.0/dist/" regex="apache-solr-clustering-\d.*\.jar" />
<lib dir="D:/solr/apache-solr-3.3.0/dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
<!-- If a dir option (with or without a regex) is used and nothing
is found that matches, it will be ignored
-->
<lib dir="D:/solr/apache-solr-3.3.0/contrib/clustering/lib/" />
-----------------------------
I experienced the same issue. With Solr 1.x, I was copying out the
'example' directory to make my solr installation. However, for the
Solr 3.x distributions, the DataImportHandler class exists in a
directory that is at the same level as example: "dist", not a
directory within.
You'll either want to take the entire apache 3.1 directory, or modify
solrconfig to point to the new place you've copied it:
<lib dir="../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
==================================================
solr搜索不出數據
==================================================
SELECT id,title,main_contents as contents,last_index_time FROM solr_articles
要使用<field column="NAME" name="name" />最好將schema.xml中經過field配置相應的名字
==================================================
solr 分佈式(複製)配置
參考:http://hi.baidu.com/648636045/blog/item/3985aaf1f8f150d00a46e080.html
==================================================