solr 创建,删除,更新索引

[flash=336,280]http://img.alimama.cn/bm/wrappler_swf/2009-11-26/2042702_0af5658d088e285c4ac474cd20865090_336x280.swf?v=1259240549[/flash][url]http://lucene.apache.org/solr/tutorial.html[/url]

[quote]solr svn版本 754854[/quote]

[quote]chrish@asimov:~/solr/example/exampledocs$ java -jar post.jar solr.xml monitor.xml [/quote]

solr创建索引的过程起始于xml,要仍给solr一个xml文件。文件的内容包含了solr服务器需要何种方式处理这个xml的内容。

例如一个添加一个文档到solr操作。

solr.xml的文件内容就是

<add>
<doc>
<field name="id">SOLR1000</field>
<field name="name">Solr, the Enterprise Search Server</field>
<field name="manu">Apache Software Foundation</field>
<field name="cat">software</field>
<field name="cat">search</field>
<field name="features">Advanced Full-Text Search Capabilities using Lucene</field>
<field name="features">Optimized for High Volume Web Traffic</field>
<field name="features">Standards Based Open Interfaces - XML and HTTP</field>
<field name="features">Comprehensive HTML Administration Interfaces</field>
<field name="features">Scalability - Efficient Replication to other Solr Search Servers</field>
<field name="features">Flexible and Adaptable with XML configuration and Schema</field>
<field name="features">Good unicode support: héllo (hello with an accent over the e)</field>
<field name="price">0</field>
<field name="popularity">10</field>
<field name="inStock">true</field>
<field name="incubationdate_dt">2006-01-17T00:00:00.000Z</field>
</doc>
</add>



其中的add标签就代表了添加操作。

上面提交的moniter.xml文档的内容也是类似的。


<add><doc>
<field name="id">3007WFP</field>
<field name="name">Dell Widescreen UltraSharp 3007WFP</field>
<field name="manu">Dell, Inc.</field>
<field name="cat">electronics</field>
<field name="cat">monitor</field>
<field name="features">30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
<field name="includes">USB cable</field>
<field name="weight">401.6</field>
<field name="price">2199</field>
<field name="popularity">6</field>
<field name="inStock">true</field>
</doc></add>


创建索引就是扔给solr一个xml文件的过程

[b]Updating Data[/b]

[quote]You may have noticed that even though the file solr.xml has now been POSTed to the server twice, you still only get 1 result when searching for "solr". This is because the example schema.xml specifies a "uniqueKey" field called "id". Whenever you POST instructions to Solr to add a document with the same value for the uniqueKey as an existing document, it automaticaly replaces it for you. You can see that that has happened by looking at the values for numDocs and maxDoc in the "CORE" section of the statistics page... [/quote]

教程里说了。在演示中2次仍给solr同一份 solr.xml,但是再次搜索还是一个,因为schema.xml (/example/solr/conf目录下)配置了uniqueKey.所以如果遇到同一个id,就自动识别为同一个记录。作为更新而不是保存。

[b]Deleting Data[/b]

删除就是包含 delete标签的一个xml
[quote]java -Ddata=args -Dcommit=no -jar post.jar "<delete><id>SP2514N</id></delete>"[/quote]

[quote]Now if you go to the statistics page and scroll down to the UPDATE_HANDLERS section and verify that "deletesPending : 1"[/quote]
在统计页面可以看到deletesPending变更为1


[quote]If you search for id:SP2514N it will still be found, because index changes are not visible until changes are flushed to disk, and a new searcher is opened. To cause this to happen, send a commit command to Solr (post.jar does this for you by default):[/quote]
但是这个时候索引的变更还不会真的删除掉,直到刷到磁盘,打开一个新的searcher
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值