一、 環境
solr 6.1.0 下載地址 http://archive.apache.org/dist/lucene/solr/6.1.0/
jdk 1.8
tomcat8
二、 安裝solr到tomcat
1 解壓solr ,把 solr-6.1.0\solr-6.1.0\server\solr-webapp 下的webapp 文件夾拷貝到tomcat 的webapps下,重命名爲solr,也可以是其他名字;
2 拷貝solr-6.1.0\server\lib\ext 下的jar包到 tomcat\webapps\ 下solr 項目的WEB-INF\lib下;拷貝solr-6.1.0\dist 下solr-dataimporthandler jar 包,solr-dataimporthandler-extras- 6.1.0.jar 包 到 tomcat\webapps\ 下solr 項目的WEB-INF\lib下
3 拷貝solr-6.1.0\server 下的solr文件夾到 tomcat 的webapps下 或不是tomcat的其他地方也行,重命名爲solrhome或者是其他名字;
4 修改tomcat\webapps\ solr(solr的項目名)\WEB-INF\web.xml, 找到如下代碼,去掉註釋,/put/your/solr/home/here 改爲你自己的solrhome的路徑, 如:D:/work/tomcat8/so/webapps/solr/solr-home
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>//C:\SOLRHOME
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5 拷貝solr-6.1.0\server\resources下的log4j.properties到tomcat\webapps\solr\WEB-INF\classes,如果WEB-INF下沒有classes文件那麼 就創建一個classes文件夾。
6、啓動tomcat, 輸入http://localhost:8080/solr/index.html 看到如下界面
7.拷貝webapps\solr\solrhome\configsets下的basic_configs 文件夾到webapps\solr\solr-home 下,重命名爲core1 或其他名字
點擊 core admin, 指定配置文件,默認是new_core,把名字改爲core1, 兩個都改,重啓tomcat
三 基本的操作
1、建立maven 項目,pom依賴
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.1.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
2、 測試代碼
package com.search;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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.client.solrj.impl.HttpSolrClient.Builder;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
public class TestSearch {
private static final String URL="http://localhost:8080/solr/new_core";
private static HttpSolrClient solrClient = null;
public static void main(String[] args){
TestSearch search = new TestSearch();
search.init();
search.addData();
}
private void init(){
solrClient = new HttpSolrClient.Builder(URL).build();
solrClient.setConnectionTimeout(3000);
}
public void addData(){
Map<String, SolrInputField> filedMap = new HashMap<String, SolrInputField>();
SolrInputField fa = new SolrInputField("id");
fa.addValue("id_JJJJJ", 1);
SolrInputField fb = new SolrInputField("aa");
fb.addValue("aaa", 1);
filedMap.put("id", fa);
//filedMap.put("a", fb);
SolrInputDocument doc = new SolrInputDocument(filedMap);
try {
//solrClient.deleteById("id");
solrClient.add(doc );
solrClient.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
System.out.println(e);
}
}
}