项目结构如下:
a.java文件无视掉。
1. 把D:\solr-4.6.0\dist\目录下的:solr-solrj-4.6.0.jar,solrj-lib\目录下的所有jar包添加到项目中。
2. 建立log4j.properties文件:内容如下:
log4j.rootLogger=WARN, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=(%r ms) [%t] %-5p: %c#%M %x: %m%n
log4j.logger.com.genuitec.eclipse.sqlexplorer=DEBUG
log4j.logger.org.apache=WARN
log4j.logger.org.hibernate=WARN
3. Test.java代码如下:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
public class Test
{
private static int fetchSize = 1000;
public static String url = "http://localhost:8983/solr/collection1";
private static HttpSolrServer server;
public static void main(String[] args)
{
server = new HttpSolrServer(url);
int innerCount = 0;
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
for (int i=1; i<1000; i++)
{
innerCount++;
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
doc.addField("name", i);
doc.addField("price", i);
docs.add(doc);
if (innerCount == fetchSize)
{
try
{
server.add(docs);
docs.clear();
innerCount = 0;
server.commit();
}
catch (SolrServerException | IOException e)
{
e.printStackTrace();
}
}
}
if (innerCount != 0)
{
try
{
server.add(docs);
server.commit();
}
catch (SolrServerException | IOException e)
{
e.printStackTrace();
}
}
System.out.println("done");
}
}