http://lucene.apache.org/solr/tutorial.html
引用
solr svn版本 754854
引用
chrish@asimov:~/solr/example/exampledocs$ java -jar post.jar solr.xml monitor.xml
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文件的过程
Updating Data
引用
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...
教程里说了。在演示中2次仍给solr同一份 solr.xml,但是再次搜索还是一个,因为schema.xml (/example/solr/conf目录下)配置了uniqueKey.所以如果遇到同一个id,就自动识别为同一个记录。作为更新而不是保存。
Deleting Data
删除就是包含 delete标签的一个xml
引用
java -Ddata=args -Dcommit=no -jar post.jar "<delete><id>SP2514N</id></delete>"
引用
Now if you go to the statistics page and scroll down to the UPDATE_HANDLERS section and verify that "deletesPending : 1"
在统计页面可以看到deletesPending变更为1
引用
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):
但是这个时候索引的变更还不会真的删除掉,直到刷到磁盘,打开一个新的searcher