搭建完成solr cloud的集群之后,接下来的工作就是需要向集群中导入数据,之后可能要更新数据,或者删除数有,假设有有一个服务的schema中的field是这样定义的:
<fields> <field name="id" type="string" indexed="true" stored="true" required="true" /> <field name="name" type="text" indexed="true" stored="true" required="true" /> <field name="age" type="string" indexed="true" stored="true" /> <field name="comefrom" type="string" indexed="true" stored="true" /> <field name="_version_" type="long" indexed="true" stored="true"/> </fields>
新增记录
首先可以通过最简便的方式向集群中添加数据,在cmd命令行中敲入以下命令:
java -Durl=http://localhost:8983/solr/update -jar post.jar terminator.xmlterminator.xml 文件的内容是:
<add> <doc> <field name="id">9999999</field> <field name="name">abcdefghijkmn</field> <field name="source">kkkkkkkkkkkkkkkkkkkkk</field> <!-- Join --> <field name="shape">gggggggggggggg</field> <field name="ptvector">llllllllllllllll</field> <field name="quad">quadquadquadquadquad</field> <field name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</field> </doc> <doc> <field name="id">9999998</field> <field name="name">abcdefghijkmn</field> <field name="source">kkkkkkkkkkkkkkkkkkkkk</field> <!-- Join --> <field name="shape">gggggggggggggg</field> <field name="ptvector">llllllllllllllll</field> <field name="quad">quadquadquadquadquad</field> <field name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</field> </doc> <doc> <field name="id">9999997</field> <field name="name">abcdefghijkmn</field> <field name="source">kkkkkkkkkkkkkkkkkkkkk</field> <!-- Join --> <field name="shape">gggggggggggggg</field> <field name="ptvector">llllllllllllllll</field> <field name="quad">quadquadquadquadquad</field> <field name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</field> </doc> <doc> <field name="id">9999996</field> <field name="name">abcdefghijkmn</field> <field name="source">kkkkkkkkkkkkkkkkkkkkk</field> <!-- Join --> <field name="shape">gggggggggggggg</field> <field name="ptvector">llllllllllllllll</field> <field name="quad">quadquadquadquadquad</field> <field name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</field> </doc> </add>
成功执行命令:
D:\download\solr-4.1.0\solr-4.1.0\example\exampledocs>
java -Durl=http://localhost:8983/solr/update -jar post.jar terminator.xm
SimplePostTool version 1.5 Posting files to base url http://localhost:8983/solr/update using content-type application/xml..
POSTing file terminator.xml 1 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/update..
java -Durl=http://localhost:8983/solr/update -jar post.jar terminator.xm
SimplePostTool version 1.5 Posting files to base url http://localhost:8983/solr/update using content-type application/xml..
POSTing file terminator.xml 1 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/update..
Document的share规则:
通过以上命令,成功将4条记录插入到了集群中。在solr节点的查询页面进行查询,显示结果集如下:
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3967</int> <lst name="params"> <str name="fl">*,[shard]</str> <str name="indent">true</str> <str name="q">id:999999*</str> <str name="wt">xml</str> </lst> </lst> <result name="response" numFound="4" start="0" maxScore="1.0"> <doc> <str name="id">9999999</str> <str name="name">abcdefghijkmn</str> <str name="source">kkkkkkkkkkkkkkkkkkkkk</str> <str name="shape">gggggggggggggg</str> <str name="ptvector">llllllllllllllll</str> <str name="quad">quadquadquadquadquad</str> <str name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</str> <long name="_version_">1434087019164729344</long> <str name="[shard]">10.1.31.91:80/solr/collection1/</str></doc> <doc> <str name="id">9999998</str> <str name="name">abcdefghijkmn</str> <str name="source">kkkkkkkkkkkkkkkkkkkkk</str> <str name="shape">gggggggggggggg</str> <str name="ptvector">llllllllllllllll</str> <str name="quad">quadquadquadquadquad</str> <str name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</str> <long name="_version_">1434087019165777920</long> <str name="[shard]">10.1.31.91:80/solr/collection1/</str></doc> <doc> <str name="id">9999997</str> <str name="name">abcdefghijkmn</str> <str name="source">kkkkkkkkkkkkkkkkkkkkk</str> <str name="shape">gggggggggggggg</str> <str name="ptvector">llllllllllllllll</str> <str name="quad">quadquadquadquadquad</str> <str name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</str> <long name="_version_">1434087018344742912</long> <str name="[shard]">10.1.31.91:8983/solr/collection1/</str></doc> <doc> <str name="id">9999996</str> <str name="name">abcdefghijkmn</str> <str name="source">kkkkkkkkkkkkkkkkkkkkk</str> <str name="shape">gggggggggggggg</str> <str name="ptvector">llllllllllllllll</str> <str name="quad">quadquadquadquadquad</str> <str name="geohash">geohashgeohashgeohashgeohashgeohashgeohash</str> <long name="_version_">1434087018867982336</long> <str name="[shard]">10.1.31.91:8983/solr/collection1/</str></doc> </result> </response>
大家会发现在输出的结果集上有一个[shard]字段,标识该条记录存储在集群中的哪个share分区中。要在结果集中shard字段可以通过设置 fl=*,[shard]做到。从[shard]属性的值来看四条记录被均匀的分布到了两个share中。
更新数据
删除数据
java -Ddata=args -jar post.jar '<delete><id>9999996</id></delete>'
或者
java -Ddata=args -jar post.jar '<delete><query>id:9999996</query></delete>'
经过测试,以上两条命令都可以成功删除id为9999996的那条记录。
相关推荐
Solr Cloud 6.1.0 是 Apache Solr 的一个版本,它是一个开源的企业级搜索平台,被广泛用于构建高效、可扩展的全文检索服务。在这个版本中,它支持拼音分词,使得中文搜索能力得到显著提升。拼音分词是处理中文文本的...
3. 加载数据:使用Solr的UpdateHandler将建议数据导入到Solr中,或者通过外部数据源(如JDBC)实时同步更新。 4. 查询建议:在查询请求中添加Suggest请求参数,Solr会返回匹配的建议结果。 描述中提到“已经配置好...
通过SolrJ,你可以创建SolrClient对象,与Solr服务器建立连接,然后进行索引文档的添加、删除、更新和查询等操作。 在分布式环境中,SolrCloud提供了高可用性和可扩展性。在SolrCloud模式下,每个Solr实例称为一个...
使用多线程方式 通过solrj 接口向solr新增索引信息
更新SolrCore通常涉及到更改配置文件或添加/删除数据。Solr提供了动态schema更新功能,允许在运行时添加或修改字段定义。对于配置文件,可以通过停用核心,替换文件,然后重新加载核心来进行更新。也可以使用...
增量索引是指将新添加或更新的数据插入 Solr 索引库中,一般用于批量更新数据的情况。在这种情况下,我们需要将新添加或更新的数据从数据源中提取出来,然后将其插入 Solr 索引库中。增量索引的优点是可以实时地更新...
全量导入会重新创建整个索引,而增量导入则只添加或更新自上次导入以来发生变化的数据。 `apache-solr-dataimportscheduler.jar` 这个文件很可能是用于实现Solr定时更新的一个插件,它可能包含了一个调度器,能按照...
- **Update Handler**:Solr提供了多种Update Handler,例如Direct Update Handler和Document Update Handler,它们接收单个文档或者批量文档的更新请求,然后进行相应的索引更新,而无需重新构建整个索引。...
利用python的pycurl对Solr进行原子更新操作
kafka-solr-sink连接器这是基于Java的简单Solr Sink Kafka连接器,它从kafka主题获取纯json数据并推送到solr,同时支持solr cloud和独立模式。 注意:仅支持JSON数据,对于值转换器,请保留schemas.enable=false 。...
solr6定时增量更新jar包
增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-solr-dataimportscheduler.jar" 是一个专门为Solr设计的扩展包,用于实现自动化的数据...
8. **实时索引**:Solr支持实时索引,一旦数据被添加或更新,索引会立即生效,无需重启服务。 9. **性能优化**:Solr可以通过调整缓存策略、使用NRT(Near Real Time)索引、优化查询执行计划等方式提高查询速度。 ...
Solr在其之上添加了更多高级特性,如 faceting(分面搜索),highlighting(高亮显示),以及更复杂的查询语法。 4. **配置文件**:压缩包中的配置文件包括`solrconfig.xml`和`schema.xml`。`solrconfig.xml`定义了...
Solr-SQL为Solr Cloud提供了SQL接口,开发人员可以通过JDBC协议在Solr Cloud上运行。同时,solr-sql是用于solr的Apache Calcite(见 http://calcite.apache.org)适配器。solr-sql 是用 Scala 编写的,它可以生成像 ...
- **测试目的**:通过对单节点Solr与基于Hadoop分布式文件系统(HDFS)的Solr Cloud集群进行压力测试,分析两者在读写性能上的差异,从而为生产环境中的Solr部署提供参考。 #### 二、测试环境配置 - **单节点Solr**...
java -classpath .:/home/myuser/solr-war/lib/* org.apache.solr.cloud.ZkCLI \ -cmd upconfig -zkHost z1.com:2181,z2.com:2181,z3.com:2181 \ -confDir /home/myuser/solr-config -confName myconf ``` 6. *...
1. Solr Cloud 2. 函数查询 3. 地理位置查询 4. JSON Facet 章节四:Solr高级(下) 1. 深度分页 2. Solr Join查询 3. 相关度排序 4.Solr缓存 5.Spring Data Solr 章节五:综合案例,电商网站搜索页面 1.关键字搜索...
"solr定时增量更新jar包1.4"是专门为Solr设计的一个组件,它允许用户设置定时任务来自动检测和导入新的或者修改过的数据,从而保持索引与数据库或其他数据源的一致性。 这个组件主要依赖于`apache-solr-...