java关闭solr连接_Java SolrClient.close方法代码示例

import org.apache.solr.client.solrj.SolrClient; //导入方法依赖的package包/类

public static void main(String[] args) throws CorruptIndexException, IOException, SolrServerException {

if (args.length < 3) {

System.err.println("Usage: java -Dfile.encoding=UTF8 -Dclient.encoding.override=UTF-8 -Xmx256m -Xms256m -server " + IndexLoader.class.getName()

+ " [indexField2,acField2 ... ]");

System.exit(0);

}

Map fieldMap = getFieldMapping(args, 2);

DirectoryReader reader = DirectoryReader.open(FSDirectory.open(Paths.get(args[0])));

int docs = reader.maxDoc();

SolrClient solr = new ConcurrentUpdateSolrClient.Builder(args[1]).withQueueSize(10000).withThreadCount(2).build();

Set batch = new HashSet(1000);

Bits liveDocs = MultiFields.getLiveDocs(reader);

// go through all docs in the index

for (int i = 0; i < docs; i++) {

// process doc only if not deleted

if (liveDocs == null || liveDocs.get(i)) {

// loop through all fields to be looked at

SolrInputDocument doc = new SolrInputDocument();

Iterator iter = fieldMap.keySet().iterator();

boolean phraseFieldEmpty = false;

while (iter.hasNext()) {

String indexField = iter.next();

String acField = fieldMap.get(indexField);

IndexableField field = reader.document(i).getField(indexField);

String value = field != null ? reader.document(i).getField(indexField).stringValue() : null;

if (field != null && value != null && !value.isEmpty()) {

doc.addField(acField, value);

} else {

// not very relevant piece of info

// System.err.println("Field is null or empty, skipping: " + indexField);

if (acField.equalsIgnoreCase("phrase")) {

System.err.println("Since AC phrase field would be null, this doc will not be created: " + reader.document(i));

phraseFieldEmpty = true;

break;

}

}

}

if (!phraseFieldEmpty) {

solr.add(doc);

if (docs % 1000 == 0) {

System.out.println("Docs: " + docs);

}

}

}

}

if (!batch.isEmpty())

solr.add(batch);

reader.close();

System.out.println("Optimizing...");

solr.optimize();

solr.close();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值