一、使用配置好Maven的eclipse开发环境配置solr所需要的jar。
<!-- solr -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>org.noggit</groupId>
<artifactId>noggit</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.3</version>
</dependency>
<!-- end -->
注意:这些包一个都不能少,要不然出现各种错。
二、写索引
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
public class SolrIndexDemo {
public static void main(String[] args) throws SolrServerException, IOException {
HttpSolrServer server=new HttpSolrServer("http://192.168.125.129:8080/solr");
for(int i=0;i<100;i++){
SolrInputDocument doc=new SolrInputDocument();
doc.addField("id", i);
doc.addField("name","张三"+i);
server.add(doc);
if(i%10==0){
server.commit();
}
}
server.commit();
System.out.println("设置成功");
}
}
生成完毕,可以使用solr web图形界面查询结果。
三、读取索引import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.ModifiableSolrParams;
public class SolrQueryDemo {
private HttpSolrServer solr;
public SolrQueryDemo(){
solr=new HttpSolrServer("http://192.168.125.129:8080/solr");//sor地址
}
public static void main(String[] args) throws SolrServerException {
SolrQueryDemo demo=new SolrQueryDemo();
demo.query01("name:张三");
}
public void query01(String queryString) throws SolrServerException{
ModifiableSolrParams params=new ModifiableSolrParams();
params.set("q", queryString);
// params.set("defType", "edismax");
params.set("start", "0");
params.add("rows", "100");
QueryResponse response = solr.query(params);
SolrDocumentList results = response.getResults();
System.out.println("query01查到结果数量为:"+results.size());
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i));
}
}
public void query02(String queryString) {
SolrQuery query = new SolrQuery();
query.setQuery(queryString);
query.setStart(0);
query.setRows(100);
QueryResponse rsp;
try {
rsp = solr.query(query);
SolrDocumentList results = rsp.getResults();
System.out.println("query02查到结果数量为:"+results.size());
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
}