solr更新,删除单个索引.docx

上传人:博****1 文档编号:542097194 上传时间:2024-01-11 格式:DOCX 页数:6 大小:21.32KB
返回 下载 相关 举报
solr更新,删除单个索引.docx_第1页
第1页 / 共6页
solr更新,删除单个索引.docx_第2页
第2页 / 共6页
solr更新,删除单个索引.docx_第3页
第3页 / 共6页
solr更新,删除单个索引.docx_第4页
第4页 / 共6页
solr更新,删除单个索引.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《solr更新,删除单个索引.docx》由会员分享,可在线阅读,更多相关《solr更新,删除单个索引.docx(6页珍藏版)》请在金锄头文库上搜索。

1、Apache Solr 教程本文介绍的内容是根据 Apache Solr 版本 1.3.0.2009.02.07.10.59.58 编写的,如果你在使用一个不同版本的Solr,请参看伴随发布版中的文档。 概述 准备 开始 索引数据 更新数据 删除数据 查询数据 排序 文本分析 分析调试 总结概述这个文档使用一个例子来介绍运行Solr的基本知识。准备为了进行这个教程,你需要. 1. Java 1.5或者更高版本。你可以从Sun、IBM、BEA获得它。在命令行中运行 java -version 将显示版本号,确保版本号大于1.5 。 2. 下载一个 Apache Solr 发行版。 3. 一个浏览

2、器用来访问管理页面,IE的标签页看起来不是很好,推荐使用 FireFox 或者 Mozilla 。开始请运行浏览器显示这个教程和在此机器上的Solr服务器,教程会正确地指向你的Solr服务器。unzip你下载下来的Solr版本,并且改变你的工作目录到example目录。(注意,基本的目录结构可能会因你下载的版本不同而有一定的变化)。chrishasimov:solr$ lssolr-nightly.zipchrishasimov:solr$ unzip -q solr-nightly.zipchrishasimov:solr$ cd solr-nightly/example/Solr可以运行在

3、你选择的 Java Servlet 容器上,为了简化这个教程,例子索引包含了一个Jetty的最小化安装。为了编译JSP,这个版本的Jetty需要你从JDK中运行java,而不是一个JRE中运行Java。为了运行带有Solr应用程序的Jetty和例子配置,仅需运行 start.jar .chrishasimov:/solr/example$ java -jar start.jar1 main INFO org.mortbay.log - Logging to org.slf4j.impl.SimpleLogger1f436f5 via org.mortbay.log.Slf4jLog334 ma

4、in INFO org.mortbay.log - Extract jar:file:/home/chrish/solr/example/webapps/solr.war!/ to /tmp/Jetty_solr/webappFeb 24, 2006 5:54:52 PM org.apache.solr.servlet.SolrServlet initINFO: user.dir=/home/chrish/solr/exampleFeb 24, 2006 5:54:52 PM org.apache.solr.core.SolrConfig INFO: Loaded Config solrcon

5、fig.xml.1656 main INFO org.mortbay.log - Started SelectChannelConnector 0.0.0.0:8983这个将会在8983端口启动Jetty应用服务器,在终端上会显示服务器输出的日志信息。通过在浏览器中输入 http:/localhost:8983/solr/admin/ 能看到Solr正在运行,这是Solr管理员的入口。索引数据你的Solr服务器运行起来了,但是它没有包含任何数据。你可以通过POST包含指令(添加、更新、删除文档,提交未决的添加、删除和优化索引命令)的XML文档来改变一个Solr索引。exampledocs目录包

6、含了Solr类型指令的例子,也可以在命令行使用一个java工具POST数据(这个脚本的名称为post.sh,但是这个教程里我们将使用跨平台的Java客户端)。让我们继续这个学习,打开一个终端窗口,进入exampledocs目录,运行java -jar post.jar命令并提供XML参数文件,指示Solr服务器的URL:chrishasimov:/solr/example/exampledocs$ java -jar post.jar solr.xml monitor.xmlSimplePostTool: version 1.2SimplePostTool: WARNING: Make sur

7、e your XML documents are encoded in UTF-8, other encodings are not currently supportedSimplePostTool: POSTing files to http:/localhost:8983/solr/update.SimplePostTool: POSTing file solr.xmlSimplePostTool: POSTing file monitor.xmlSimplePostTool: COMMITting Solr index changes.你现在已经在Solr中有了两个已经索引的文档,并已

8、经提交了这些改变。你现在可以在Admin管理页面上的Make a Query上搜索solr 就能返回结果。点击 Search 按钮,然后浏览下面的URL.http:/localhost:8983/solr/select/?stylesheet=&q=solr&version=2.1&start=0&rows=10&indent=on你可以使用下面的命令索引所有的例子数据(假设你的shell支持 *.xml形式的匹配模式):chrishasimov:/solr/example/exampledocs$ java -jar post.jar *.xmlSimplePostTool: version

9、 1.2SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supportedSimplePostTool: POSTing files to http:/localhost:8983/solr/update.SimplePostTool: POSTing file hd.xmlSimplePostTool: POSTing file ipod_other.xmlSimplePostTool: POSTing file ipod

10、_video.xmlSimplePostTool: POSTing file mem.xmlSimplePostTool: POSTing file monitor.xmlSimplePostTool: POSTing file monitor2.xmlSimplePostTool: POSTing file mp500.xmlSimplePostTool: POSTing file sd500.xmlSimplePostTool: POSTing file solr.xmlSimplePostTool: POSTing file spellchecker.xmlSimplePostTool:

11、 POSTing file utf8-example.xmlSimplePostTool: POSTing file vidcard.xmlSimplePostTool: COMMITting Solr index changes.现在可以你可以使用默认的 Lucene QueryParser语法查询所有排序的内容. video name:video +video +price:* TO 400更新数据你可能已经注意到,即使solr.xml已经被POST到服务器两次,但你搜索solr时仍然只得到一个结果。这是因为schema.xml例子文件指定了一个uniqueKey字段作为id。无论何时你向

12、Solr发送指令添加一个文档,如果已经存在一个uniqueKey相同的文档,它会自动地为你替换。你通过查看在统计页面的CORE部分的numDocs 和 maxDoc值来看刚才发生的事情.http:/localhost:8983/solr/admin/stats.jspnumDoc 应该为16 (因为我们的11个XML例子文件包含了不止一个),maxDoc可能比较大,因为其包含了在逻辑上已经删除了但是还没有从索引中删除的文档。你可以多次提交这些例子文件,但是numDocs将不会增加,因为新的文档会替换旧的文档。编辑已经存在的XML文件修改一些数据,重新运行 java -jar post.jar

13、命令,你将会在后续的搜索中看到你做的改变。删除数据你可以提交一个删除命令到更新的URL来删除数据,在标识符字段指定值,或者进行匹配多个文档的查询(这个要小心!)。因为这些命令都非常小,在这里我们再命令上进行这些操作,而不是指定一个XML文件。执行下面的命令来删除一个文档java -Ddata=args -Dcommit=no -jar post.jar SP2514N现在查看统计页面UPDATE HANDLERS 部分,deletesPending 应该为1。如果你现在搜索id:SP2514N你仍能找到它,因为索引的改变是不可见的直到其数据更新到磁盘。现在向Solr提交一个命令:java -j

14、ar post.jar现在重新执行前面的搜索,将不会有匹配文档被发现。也可以重新访问统计页面,观察UPDATE_HANDLERS和CORE部分的改变。这里是一个使用delete-by-query来删除在名字中有DDR的内容:java -Ddata=args -jar post.jar name:DDR提交是一个非常费时的操作,最好对一个索引一次提交多个改变,在最后提交再提交命令。也有一个优化命令,除了其完成提交命令相同的事情外,它会合并所有的索引段到一个单个的段中,这让搜索速度会更快,已经删除的文档也会从索引中删除。为了继续这个教程,我们需要把例子文档重新提交一边,使用下面的命令:java -jar post.jar *.xml查询数据查询可以通过HTTP的GET方式,URL的查询字符串中要包含q参数。你也可以传递一些可选参数来控制请求处理器返回什么信息。例如,你可以使用fl参数来控制返回什么存储字段,还有如果关联值(relevancy score)被返回时. q=video&fl=name,id (仅返回 name 和 id 字段) q=video&fl=name,id,score

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号