也不算完全转载,稍微做了点改动,
新建一个java project,然后引入solr-4.7.2\dist\solrj-lib目录下所有jar包到building path,就可以开始写测试代码。
(ps: 执行代码的时候要启动Solr服务= = |||)
项目结构如下:
1、建立索引
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 TestSolrIndex {
public static void main(String[] args) throws SolrServerException,
IOException {
HttpSolrServer server = new HttpSolrServer("http://127.0.0.1:8983/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("设置成功");
}
}
执行成功后会在collection1中增加100条记录;
2、查询索引
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 TestSolrQuery {
private HttpSolrServer solr;
public TestSolrQuery() {
solr = new HttpSolrServer("http://127.0.0.1:8983/solr");// solr地址
}
public static void main(String[] args) throws SolrServerException {
TestSolrQuery demo = new TestSolrQuery();
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();
}
}
}
查询name字段,这里提供了两种方法,
但实际上public class SolrQuery extends ModifiableSolrParams ,所以就差不多了。