`
mozhenghua
  • 浏览: 324580 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

solr cloud 之添加,删除,更新Document

 
阅读更多

 

    搭建完成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.xml
   terminator.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..

 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 cloud6.1.0拼音分词

    Solr Cloud 6.1.0 是 Apache Solr 的一个版本,它是一个开源的企业级搜索平台,被广泛用于构建高效、可扩展的全文检索服务。在这个版本中,它支持拼音分词,使得中文搜索能力得到显著提升。拼音分词是处理中文文本的...

    solr7.5_ik分词器,suggest配置源文件文件

    3. 加载数据:使用Solr的UpdateHandler将建议数据导入到Solr中,或者通过外部数据源(如JDBC)实时同步更新。 4. 查询建议:在查询请求中添加Suggest请求参数,Solr会返回匹配的建议结果。 描述中提到“已经配置好...

    solr入门java工程

    通过SolrJ,你可以创建SolrClient对象,与Solr服务器建立连接,然后进行索引文档的添加、删除、更新和查询等操作。 在分布式环境中,SolrCloud提供了高可用性和可扩展性。在SolrCloud模式下,每个Solr实例称为一个...

    solr 数据迁移工具

    使用多线程方式 通过solrj 接口向solr新增索引信息

    solrcore 添加修改控制

    更新SolrCore通常涉及到更改配置文件或添加/删除数据。Solr提供了动态schema更新功能,允许在运行时添加或修改字段定义。对于配置文件,可以通过停用核心,替换文件,然后重新加载核心来进行更新。也可以使用...

    Solr数据库插入(全量和增量)索引

    增量索引是指将新添加或更新的数据插入 Solr 索引库中,一般用于批量更新数据的情况。在这种情况下,我们需要将新添加或更新的数据从数据源中提取出来,然后将其插入 Solr 索引库中。增量索引的优点是可以实时地更新...

    Solr定时更新Solr定时更新

    全量导入会重新创建整个索引,而增量导入则只添加或更新自上次导入以来发生变化的数据。 `apache-solr-dataimportscheduler.jar` 这个文件很可能是用于实现Solr定时更新的一个插件,它可能包含了一个调度器,能按照...

    solr增量导入更新索引包

    - **Update Handler**:Solr提供了多种Update Handler,例如Direct Update Handler和Document Update Handler,它们接收单个文档或者批量文档的更新请求,然后进行相应的索引更新,而无需重新构建整个索引。...

    Solr的原子更新

    利用python的pycurl对Solr进行原子更新操作

    kafka-solr-sink-connector:这是基于JSON的简单Solr Sink Kafka连接器,使用Solr Cloud

    kafka-solr-sink连接器这是基于Java的简单Solr Sink Kafka连接器,它从kafka主题获取纯json数据并推送到solr,同时支持solr cloud和独立模式。 注意:仅支持JSON数据,对于值转换器,请保留schemas.enable=false 。...

    solr6定时增量更新

    solr6定时增量更新jar包

    solr增量更新架包apache-solr-dataimportscheduler.jar

    增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-solr-dataimportscheduler.jar" 是一个专门为Solr设计的扩展包,用于实现自动化的数据...

    最新版windows solr-8.8.2.zip

    8. **实时索引**:Solr支持实时索引,一旦数据被添加或更新,索引会立即生效,无需重启服务。 9. **性能优化**:Solr可以通过调整缓存策略、使用NRT(Near Real Time)索引、优化查询执行计划等方式提高查询速度。 ...

    Apache Solr(solr-8.11.1.zip)

    Solr在其之上添加了更多高级特性,如 faceting(分面搜索),highlighting(高亮显示),以及更复杂的查询语法。 4. **配置文件**:压缩包中的配置文件包括`solrconfig.xml`和`schema.xml`。`solrconfig.xml`定义了...

    针对Solr的SQL查询引擎

    Solr-SQL为Solr Cloud提供了SQL接口,开发人员可以通过JDBC协议在Solr Cloud上运行。同时,solr-sql是用于solr的Apache Calcite(见 http://calcite.apache.org)适配器。solr-sql 是用 Scala 编写的,它可以生成像 ...

    solr压力测试报告

    - **测试目的**:通过对单节点Solr与基于Hadoop分布式文件系统(HDFS)的Solr Cloud集群进行压力测试,分析两者在读写性能上的差异,从而为生产环境中的Solr部署提供参考。 #### 二、测试环境配置 - **单节点Solr**...

    Tomcat上部署SolrCloud.txt

    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. *...

    java进阶Solr从基础到实战

    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定时增量更新jar包1.4"是专门为Solr设计的一个组件,它允许用户设置定时任务来自动检测和导入新的或者修改过的数据,从而保持索引与数据库或其他数据源的一致性。 这个组件主要依赖于`apache-solr-...

Global site tag (gtag.js) - Google Analytics