修改各種配置檔案。
1、修改solrhome下的solr.xml檔案
注解掉zookeeper搭建叢集配置,我們後面會采用master-slave的形式。
至于zookeeper的形式可以閱讀以下這篇文章【solrCloud叢集配置指導】:http://www.aboutyun.com/thread-9432-1-1.html

<!-- 結合zookeeper配置solrColound start -->
<!-- 采用master-slave的方式
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
</shardHandlerFactory>
-->
<!-- 結合zookeeper配置solrColound end -->
2、在sorlhome檔案夾下建立【my_solr】檔案夾。
3、在【my_solr】檔案夾中添加core.properties配置,内容如下:

name=my_solr
這個name的值實際上就core的名稱,可以任意命名,為了保證統一和友善閱讀,個人覺得最好和檔案夾名稱一緻。
4、将【solr-6.0.0\example\example-DIH\solr\solr】下的conf檔案夾拷貝到【my_solr】檔案夾下。包含如下檔案:
【conf】中檔案目錄如下:
5、solr-5.0 以上預設對schema的管理是使用managed-schema,不能手動修改,需要使用Schema Restful的API操作。
如果要想手動修改配置,把【conf】檔案夾中managed-schema拷貝一份修改為schema.xml,在solrconfig.xml中修改如下:

<codecFactory class="solr.SchemaCodecFactory"/>
<!-- 解除managed-schema管理模式 start -->
<schemaFactory class="ClassicIndexSchemaFactory"/>
<!-- 解除managed-schema管理模式 end -->
重新開機tomcat8,可能會報錯,檢視tomcat日志發現,比喻:
缺少DataImportHandler的jar等,那麼将【solr-6.0.0\dist】下的solr-dataimporthandler-6.0.0.jar和solr-dataimporthandler-extras-6.0.0.jar
拷貝到【apache-tomcat-8.0.33\webapps\solr\WEB-INF\lib】下。
重新開機tomcat8。如果缺少其他jar包,根據報錯資訊添加即可。沒有異常,
通路:【http://localhost:8080/solr/index.html#/】
會出現如下界面:
選擇my_solr,會出現如下界面:
至此其實由于沒有索引資料,其實solr是個空殼,那麼下面寫一個應用程式插入solr索引資料。
參考:http://www.open-open.com/lib/view/open1452062296995.html
1、首先需要修改schema.xml檔案,添加

<field name="content_test" type="text_general" indexed="true" stored="true" multiValued="true"/>
field的屬性和配置,可以google一下schema.xml 說明很多,用法也很多,這裡就不贅述。
2、添加索引資料,代碼如下:
編寫過程中可能會報錯,最簡便的方法是将web-inf下lib裡所有jar包添加進來,然後運作,出什麼錯,就添加什麼jar包即可。

package com.solr.insertData;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
public class InsertProgarm {
//solr 伺服器位址
public static final String solrServerUrl = "http://localhost:8080/solr";
//solrhome下的core
public static final String solrCroeHome = "my_solr";
//待索引、查詢字段
public static String[] docs = {"Solr是一個獨立的企業級搜尋應用伺服器",
"它對外提供類似于Web-service的API接口",
"使用者可以通過http請求",
"向搜尋引擎伺服器送出一定格式的XML檔案生成索引",
"也可以通過Http Get操作提出查找請求",
"并得到XML格式的傳回結果"};
public static void main(String[] args) {
SolrClient client = getSolrClient();
int i=0;
List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
for (String content : docs) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i++);
doc.addField("content_test", content);
solrDocs.add(doc);
}
try {
client.add(solrDocs);
client.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
}
public static SolrClient getSolrClient(){
return new HttpSolrClient(solrServerUrl+"/"+solrCroeHome);
}
3、運作成功後,會在【solrhome/my_solr】檔案夾下建立一個【data】的檔案夾,這個檔案夾中的内容就是我們的solr索引。
其實其對于的是solconfig.xml中如下配置:

<!-- Data Directory
Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home. If
replication is in use, this should match the replication
configuration.
-->
<dataDir>${solr.data.dir:}</dataDir>
4、通路http://localhost:8080/solr/index.html選擇【my_solr】core,選擇query得到如下界面:
選擇【my_solr】core,選擇query,點選【Execute Query】查詢結果如下:
其實其通路的url實際為:http://localhost:8080/solr/my_solr/select?q=*%3A*&wt=json&indent=true
至于q、wt、indent等參數,代表的含義,可以搜尋solr查詢文法。
那麼至此,我們就将solr插件完畢,結合了core和建立索引、查詢程式,完成!
本文轉自快樂就好部落格園部落格,原文連結:http://www.cnblogs.com/happyday56/p/5728441.html,如需轉載請自行聯系原作者