Solr 概况
顶部灰色部分:
头部信息,当启动多个Solr实例时,可以帮助了解在操作哪个实例。IP地址和端口号都是可见的。example(Admin旁边)是对这个schema的引用,仅仅是标识这个schema。如果你有很多schema,可以用这个标识去区分。当前工作目录(cwd) ,和Solr的根目录(SolrHome)。导航栏上的功能:
SCHEMA:显示当前的schema的配置文件。(不同浏览器显示可能不同,Firefox会高亮显示语法关键字)CONFIG:显示当前的Solr config文件。ANALYSIS:她用来诊断潜在的 文本分析 的查询/索引问题。这是高级功能,稍后做讨论。SCHEMA BROWSER:这是一个简洁的 反映当前索引中实际存放数据的 视图,稍后做讨论。STATISTICS:这里是 时间和缓存命中率统计。稍后做讨论。INFO:她列出了Solr当前应用组件的版本信息,不是很常用。DISTRIBUTION:这里包含了分布式/复制的状态信息,稍后讨论。PING:可以忽略,她用来在分布式模式下提供健壮性检查。LOGGING:可以在这里设置Solr不同部分的Logging levels。在Jetty下,输出的信息都在控制台。(Solr使用SLF4j)JAVA PROPERTIES:列出了JAVA系统环境变量。THREAD DUMP:这里显示了Java中的线程信息,帮助诊断问题。FULL INTERFACE:一个更多选择的查询表单,可以帮助诊断问题。这个表单也是能力有限的,只能提交一小部分搜索选项给SolrAssistance 部分包括一些在线的帮助信息。
十、装在示例数据
Solr有一些示例数据和装载脚本,在example/exampledocs下。
进入example/exampledoce下,输入:
java -jar post.jar *.xml (如果在unix环境下,就运行post.sh)
post.jar是一个简单的程序,会遍历所有的参数(这里就是*.xml),然后对本机正运行的Solr(example)服务器的默认配置(http://localhost:8983/solr/update) 发送post请求(HTTP)。这里可以看下post.sh,就可以了解在干什么了。
可以在控制台命令行中看到发送的文件:
SimplePostTool: POSTing files to http://localhost:8983/solr/update..
SimplePostTool: POSTing file hd.xml
SimplePostTool: POSTing file ipod_other.xml
SimplePostTool: POSTing file ipod_video.xml
SimplePostTool: POSTing file mem.xml
SimplePostTool: POSTing file monitor.xml
SimplePostTool: POSTing file monitor2.xml
SimplePostTool: POSTing file mp500.xml
SimplePostTool: POSTing file payload.xml
SimplePostTool: POSTing file sd500.xml
SimplePostTool: POSTing file solr.xml
SimplePostTool: POSTing file utf8-example.xml
SimplePostTool: POSTing file vidcard.xml
SimplePostTool: COMMITting Solr index changes..
最后一行会执行commit操作,保证之前的文档都被保存,并可见。
理论上post.sh 和 post.jar是可以用在产品脚本上的,但这里仅仅用作示例。
这里取其中一个文件monitor.xml 看下:
?
这个发送给Solr的文件非常简单。这里只用了一些简单的标签,不过都是非常重要的。
<add>标签中可以放置多个<doc>标签(一个doc代表一个document),在大量数据装载时这样做能提高性能。
Solr在每个POST请求中都会收到一个<commit/>标签。更多的一些特性会在之后介绍。
十一、一次简单的搜索。
在管理员界面,让我们运行一次简单的搜索。
在管理员界面,点击查询按钮,或进入FULL INTERFACE再作更详细的查询。
在我们查看XML输出文件之前,先看下URL和参数信息:
http://localhost:8983/solr/select/?q=monitor&version=2.2&start=0&rows=10&indent=on.
然后浏览器中会显示输出的用XML标识的搜索结果,如下:
这只是一个简单的查询结果,可以加入例如高亮显示等查询条件,然后在result标记后会有更多信息。
十二、一些统计信息
进入http://localhost:8983/solr/admin/stats.jsp。
在这里,当我们没有加载任何数据时,numDocs显示0,而现在显示19。
maxDocs的值取决于当你删除一个文档但却没有提交。
可以关注以下的一些handler:
/update,standard。
注意:这些统计信息都是实时的,不在磁盘上做保存。
十三、solrconfig.xml?
这里包含很多我们可以研究的参数,现在先让我们看下<requestHandler>下定义的 request handers。
?
而当使用搜索时,是使用solr.SearchHandler(上面的XML定义了)
通过URL参数或POST中的参数,都可以调用这些request handler
也可以在solrconfig.xml中通过default,appends,invariants来指定。
这里的一些参数等于是默认的,就像已经放在了URL后面的参数一样。
十四、一些重要的Solr资源
Solr's Wiki:http://wiki.apache.org/solr/ 有很多文档,以wiki的方式陈列。mailling lists of Solr:http://www.lucidimagination.com/search/ 很多有价值的信息。(建议订阅Solr-users mailing list)Solr's issue tracker:http://issues.apache.org/jira/browse/SOLR,安装JIRA。可以看到一些bug和能力增强信息。十五、查询参数
fl=*,score&q.op=AND&start=0&rows=16&hl=true&hl.fl=merHeading&hl.snippets=3&hl.simple.pre=<font?color=red>&hl.simple.post=</font>&facet=true&facet.field=merCategory&q=+(merHeading%3A%E4%BD%A0%E5%A5%BD+AND+merHeadingWithWord%3A%E6%BD%98?)??+merActualendTime:[1239264030468?TO?1240473630468]&sort=merActualendTime?asc??
fl表示索引显示那些field(*表示所有field, score 是solr 的一个匹配热度)
q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或)
start 开始返回条数
rows 返回多少条
hl 是否高亮
hl.fl 高亮field
hl.snippets 不太清楚(反正是设置高亮3就可以了)
hl.simple.pre 高亮前面的格式
hl.simple.post 高亮后面的格式
facet 是否启动统计
facet.field? 统计field
q 查询语句(类似SQL) 相关详细的操作还需lucene 的query 语法
sort 排序
十六、删除索引
post? "<delete><id>42</id></delete>"?