Solr4.x 测试代码下载
Solr3.x 版本 添加数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;import org.apache.solr.common.SolrInputDocument;import java.io.IOException;public class SolrjPopulator { public static void main (String[] args) throws IOException, SolrServerException { CommonsHttpSolrServer server = new CommonsHttpSolrServer ("http://localhost:8983/solr" ); for (int i=0 ; i<1000 ; ++i) { SolrInputDocument doc = new SolrInputDocument (); doc.addField("cat" , "book" ); doc.addField("id" , "book-" + i); doc.addField("name" , "The Legend of Po part " + i); server.add(doc); if (i%100 ==0 ) server.commit(); } server.commit(); } }
查询数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocumentList;import org.apache.solr.common.params.ModifiableSolrParams;import java.net.MalformedURLException;public class SolrJSearcher { public static void main (String[] args) throws MalformedURLException, SolrServerException { CommonsHttpSolrServer solr = new CommonsHttpSolrServer ("http://localhost:8983/solr" ); ModifiableSolrParams params = new ModifiableSolrParams (); params.set("q" , "cat:electronics" ); params.set("defType" , "edismax" ); params.set("start" , "0" ); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0 ; i < results.size(); ++i) { System.out.println(results.get(i)); } } }
Solr4.x 版本 插入数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 SolrjPopulator { public static void main (String[] args) throws IOException, SolrServerException { HttpSolrServer server = new HttpSolrServer ("http://localhost:8983/solr" ); for (int i = 0 ; i < 1000 ; ++i) { SolrInputDocument doc = new SolrInputDocument (); doc.addField("cat" , "book" ); doc.addField("id" , "book-" + i); doc.addField("name" , "The Legend of Po part " + i); server.add(doc); if (i % 100 == 0 ) server.commit(); } server.commit(); } }
查询数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.net.MalformedURLException;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 SolrJSearcher { public static void main (String[] args) throws MalformedURLException, SolrServerException { HttpSolrServer solr = new HttpSolrServer ("http://localhost:8983/solr" ); ModifiableSolrParams params = new ModifiableSolrParams (); params.set("q" , "cat:electronics" ); params.set("defType" , "edismax" ); params.set("start" , "0" ); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0 ; i < results.size(); ++i) { System.out.println(results.get(i)); } } }
SolrCloud 添加数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import java.io.IOException;import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.CloudSolrServer;import org.apache.solr.common.SolrInputDocument;public class SolrCloudSolrjPopulator { public static void main (String[] args) throws IOException, SolrServerException { String zkHost = "localhost:2181" ; String defaultCollection = "collection1" ; CloudSolrServer server = new CloudSolrServer (zkHost); server.setDefaultCollection(defaultCollection); for (int i = 0 ; i < 1000 ; ++i) { SolrInputDocument doc = new SolrInputDocument (); doc.addField("cat" , "book" ); doc.addField("id" , "book-" + i); doc.addField("name" , "The Legend of Po part " + i); server.add(doc); if (i % 100 == 0 ) server.commit(); } server.commit(); } }
查询数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.net.MalformedURLException;import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.CloudSolrServer;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocumentList;import org.apache.solr.common.params.ModifiableSolrParams;public class SolrCloudSolrJSearcher { public static void main (String[] args) throws MalformedURLException, SolrServerException { String zkHost = "localhost:2181" ; String defaultCollection = "collection1" ; CloudSolrServer solr = new CloudSolrServer (zkHost); solr.setDefaultCollection(defaultCollection); ModifiableSolrParams params = new ModifiableSolrParams (); params.set("q" , "cat:electronics" ); params.set("defType" , "edismax" ); params.set("start" , "0" ); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0 ; i < results.size(); ++i) { System.out.println(results.get(i)); } } }
总结 本教程介绍了 SolrJ 的基本使用方法,包括:
Solr 3.x 版本: 使用 CommonsHttpSolrServer
Solr 4.x 版本: 使用 HttpSolrServer
SolrCloud 模式: 使用 CloudSolrServer
每个版本都提供了完整的增删改查示例代码,可以作为实际项目开发的参考。