最近项目中使用了solr技术,由于之前的数据有些小问题需要更新一下,到网上找了一下,没见更新的示例,自己通过添加索引,添加了部分数据,然后试着没有更改id,只是更改某些字段的值重复添加,发现值变了,但是总数没有发生改变,个人觉得solr中的更新和添加类似,如果有就更新没有就添加
public static final String solrURL = "http://localhost:8983/solr"; @Test public void updateSolrField() { SolrServer solrServer = new HttpSolrServer(solrURL); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); solrQuery.addFilterQuery("record_type:\"devicebasic\""); solrQuery.setStart(0); solrQuery.setRows(Integer.MAX_VALUE); QueryResponse response = new QueryResponse(); try { response = solrServer.query(solrQuery); if(response != null && response.getResults() != null) { SolrDocumentList results = response.getResults(); for (SolrDocument solrDocument : results) { if(solrDocument.get("ORG_CODE") != null && solrDocument.get("ORG_CODE").toString().trim().length() > 0) { SolrInputDocument document = new SolrInputDocument(); for (Map.Entry<String, Object> map : solrDocument.entrySet()) { document.addField("ORG_CODE", orgCode); } } else if(map.getKey().equals("_version_")) { continue; } else { document.addField(map.getKey(), map.getValue()); } } solrServer.add(document); solrServer.commit(); } else { continue; } } } } catch (Exception e) { e.printStackTrace(); } }
相关推荐
在实际操作中,确保Solr定时更新的稳定性和效率,需要注意以下几点: 1. **性能优化**:根据数据量和系统资源调整并发导入的线程数,避免对其他服务造成影响。 2. **增量策略**:选择合适的增量标识,如时间戳或...
- 最后,Solr执行更新操作,可以是单个文档或批量文档的更新。 6. **增量包的使用** 在你的描述中提到了"solr增量添加更新索引包",这可能是一个包含增量更新信息的压缩文件。这个包可能包含了DIH从数据库中获取...
利用python的pycurl对Solr进行原子更新操作
在索引方面,Solr 5.4.1支持热插拔索引,允许在不中断服务的情况下进行索引更新和重建,这对于大型系统来说至关重要。同时,它还支持多种存储后端,如Lucene的MMapDirectory和NIOFSDirectory,以及HDFS等分布式存储...
7. **搜索功能**:Solr支持丰富的查询语法,如标准查询解析器、布尔操作符、通配符查询、短语匹配、近似搜索等,还能进行高亮显示、排序和 faceting(分类)。 8. **实时索引**:Solr支持实时索引,一旦数据被添加...
- 实时索引:Solr支持实时更新索引,实现搜索结果的即时反馈。 - 可定制:Solr允许用户自定义字段类型、分析器和查询解析器,满足多样化需求。 1.4 SOLR架构及原理 1.5.1 全文检索 Solr通过构建倒排索引,将文档中...
2. 实时搜索:Solr具有实时索引和查询的能力,一旦数据被更新,索引会立即反映出来,提供实时搜索体验。 3. 多格式支持:Solr支持多种数据格式,如JSON、XML、CSV等,便于数据导入和处理。 4. 高级搜索功能:Solr...
在本文中,我们使用 Solr 3.6.2 版本,在 Linux 5.2 操作系统上进行测试。我们使用 Oracle 10g 数据库作为数据源,并使用 DIH 和 Delta-importer 工具来实现全量和增量索引。我们的测试结果表明,全量索引和增量索引...
此外,Solr还支持实时更新,这意味着当我们有新的数据需要添加或现有数据需要修改时,可以直接调用相应的API,而无需重新构建整个索引。 总结来说,Solr的简单应用操作主要涵盖集合的创建、数据导入、查询和结果...
Java客户端是与Solr通信的一种常见方式,它允许开发者通过编写Java代码来执行索引操作、查询、更新和管理Solr实例。在“solr-example”这个压缩包中,可能包含了一个简单的Java示例项目,展示了如何使用SolrJ,这是...
- **solrconfig.xml**:配置Solr服务器的行为,例如索引和查询处理、更新处理链、请求处理器等。 5. **Solr资源安装包**:这可能包含Solr服务器的完整二进制分发版,包括服务器端的jar文件、配置文件、示例集合等...
在Solr6版本中,为了更方便地进行客户端操作,通常会使用SolrJ库,这是一个Java客户端库,它允许Java开发者与Solr服务器进行交互,执行CRUD(创建、读取、更新、删除)操作以及复杂查询。本文将深入探讨Solr6工具类...
本项目示例是针对Solr 5.5.4版本的一个实践应用,旨在帮助用户了解并掌握Solr的基本操作,包括对索引的增加、删除、修改和查询。 1. **Solr安装与配置**:首先,你需要下载Solr 5.5.4版本,并解压到本地文件系统。...
- **Schema API**:允许动态管理和更新 Solr 的 Schema,无需重启服务。 - **新功能和模块**:例如,添加了对地理位置搜索的支持,增强了数据分析处理能力等。 2. **安装 Solr 4.4.0**: - 首先,你需要在 Linux...
9. **维护与更新**:如果需要升级或调整Solr,可以按照类似的过程离线升级服务,同时更新自定义服务的定义和配置。 离线安装Solr的过程可能比较复杂,特别是对于不熟悉Ambari或Solr的人来说。因此,描述中推荐查看...
- "索引和基本数据操作" 解释了如何使用客户端 API 和不同的工具上传数据、更新数据、处理重复项以及语言检测等。 - "搜索" 部分则提供了对 Solr 搜索功能的全面介绍,包括搜索语法、JSON 请求 API、分面搜索、高亮...
在使用Solr(Cloudera)时,创建Collection是基本的操作之一。Collection是Solr中的数据存储单元,相当于关系数据库中的表。 ##### 创建路径与实例 1. **创建路径**:在根目录下创建一个用于存放Solr实例的目录,...