<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>8.1.0</version>
</dependency>
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient; public class SolrClient { private volatile static SolrClient solrClient;
private SolrClient(){}
public static SolrClient getSolrClient(String url) {
if (solrClient == null) {
synchronized (MySolrClient.class) {
if (solrClient == null) {
solrClient = new HttpSolrClient.Builder(url)
.withConnectionTimeout(10*1000)
.withSocketTimeout(30*1000)
.build();
}
}
}
return solrClient;
}
}
/**
* 添加或者更新solr库
* 单条数据
* @param document
* @return
*/
public static String addByDoc(SolrInputDocument document, String url) {
SolrClient solrClient = MySolrClient.getSolrClient(url);
String result = "success";
try {
solrClient.add(document);
solrClient.commit();
log.info("insert doc to solr success!");
} catch (Exception e) {
result = "failed";
loggerErrToSolr(e);
}
return result;
} /**
* 添加或者更新solr库
* 多条数据
* @param docs
* @return
*/
public static String addByList(List<SolrInputDocument> docs, String url) {
SolrClient solrClient = MySolrClient.getSolrClient(url);
String result = "success";
try {
solrClient.add(docs);
solrClient.commit();
log.info("insert list to solr success!");
} catch (Exception e) {
result = "failed";
loggerErrToSolr(e);
}
return result;
}

如果是更新已经存在的记录里面的某个字段,可以这样实现:

 SolrInputDocument updateDocument = new SolrInputDocument();
updateDocument.addField("FEATUREID", requestAddLayerElementDisable.getLayerName() + "_" + requestAddLayerElementDisable.getElement());//类似于id
Map<String, Object> operationMap = new HashMap<String, Object>();
operationMap.put("set", false);//要设置的值
updateDocument.addField("VISIBLE", operationMap);//要更新的字段
SolrUtil.addByDoc(updateDocument, jmsConfig.getSolrUrl());

最新文章

  1. .NET平台开源项目速览(17)FluentConsole让你的控制台酷起来
  2. input文本框录入字母自动大写
  3. 我心中的MySQL DBA
  4. MongoDB-C#驱动基本操作
  5. http://www.cnblogs.com/figure9/p/developer-reading-list.html
  6. jquery插件之文字无缝向上滚动
  7. POJ 1013 Counterfeit Dollar
  8. linux服务之vnc和x2go
  9. POJ 1146 ID Codes (UVA146)
  10. 在vim中设置 &#39;打印时间&#39;的快捷键.
  11. libevent入门(1)
  12. 读取系统执行状态的shell脚本
  13. delphi BitmapCompress
  14. 【Alpha】——Sixth Scrum Meeting
  15. mv&amp;cp
  16. PHP处理上传文件信息数组中的文件类型 正确获取
  17. 深入理解JVM——虚拟机GC
  18. Matlab 根号的输入
  19. vscode 使用iView时标签报错 Parsing error: x-invalid-end-tag
  20. Windows系统80端口被占用

热门文章

  1. [LeetCode] 109. 有序链表转换二叉搜索树
  2. Python 入门之编码
  3. 如何使用js在移动端和PC端居中
  4. styled-components缺点
  5. dsLinq.Count() 引发了“System.NullReferenceException”类型的异常
  6. iOS开发之详解剪贴板
  7. 切入点表达式execution()
  8. Ubuntu18 给terminal改个漂亮的命令行提示符
  9. Manacher || P4555 [国家集训队]最长双回文串 || BZOJ 2565: 最长双回文串
  10. shell脚本中oldIFS=$IFS