技术帮
 

应该怎么使用Solr

本网站内容基本都是原创作品,未得到作者同意也欢迎转载
转载请注明出处:技术帮
说你呢,赶紧长按二维码,然后点击识别图中二维码

任何技术难题可进QQ群提问:【小崔说编程
对于提问的原则是:没有你不能问的,只有我不会答的

1472955908895017376.png说两句


上文解释了一大堆,可以感觉到Solr和数据库在一定程度上是平级的吧?因此Solr作为单独的服务做部署也是很合理的了?

一般Solr是作为单独的服务程序运行的,主要以下两种:

1473058358717068189.png 下载Solr,解压缩后直接启动运行。

这种方式下,Solr将基于自带的jetty服务运行,jetty是一种轻量级的web中间件,你可以理解它是一个比Tomcat还轻巧的web容器。

 部署到Tomcat下运行

这种方式是将Solr部署到Tomcat的webapps文件夹下,然后启动Tomcat即可。

从上面两种方式可以看出,Solr运行都是基于Web容器的,也可以想到Solr的使用应该是基于Http协议的。


Solr的使用主要是3个事儿:

1473058358717068189.png Solr全文检索的配置

这个是在Solr项目下通过配置文件进行设置的,配置好之后就可以对数据源创建全文索引。

这种方式对于熟悉Linux的用户很习惯,因为Linux下的各种配置都是对配置文件进行修修改改,对于Windows用户只能强迫自己熟悉一下了。


 Solr的后台管理

Solr有一个管理控制台,通过浏览器输入正确的url将看到一个管理界面,在这个界面中可以进行后台管理配置。比如执行创建索引、进行关键词分析、进行查询测试等。


 基于Solr的开发

Solr最终要用于查询,Solr的查询方式是通过http协议提交一个url进行检索。

譬如:http://localhost:8080/solr/abc/select?indent=on&q=username:"张三丰"&wt=json

就是通过url访问Solr的web服务(之前我们说过了,Solr是基于http协议提供服务的)进行一次查询(select);

访问的服务器是http://localhost:8080/solr 

检索的全文索引是abc

查询条件是username等于张三丰

查询结果将以json格式返回。


查询结果如下:

{
  "responseHeader":{
    "status":400,
    "QTime":9,
    "params":{
      "q":"username:\"张三丰\"",
      "indent":"on",
      "wt":"json"}},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"undefined field username",
    "code":400}}

这是一个测试代码,查询结果说的是状态400,没有username这个field可供查询。