Solr 入门

下载-安装-启动

  1. 首先去官网下载到指定目录,我用的是5.5.4 版本的, 如果同学们用的是6.x的建议看官网的getting started 来操作. 毕竟有些地方不一样.
    因为5.5.4 已经满足一般学生党的需求了,不过话说6.x 有什么新特性我没有去考究过, 并且我运行的是单机版的solr, 如果同学需要部署分布式的,还是参考上文提到的getting start.
  2. 解压缩
  3. 启动
  4. 这个时候我们可以在8983 端口访问刚刚启动的Solr.
Solr 入门_第1张图片
http://x.x.x.x:8983

命令清单如下:

    $ wget http://apache.fayea.com/lucene/solr/5.5.4/solr-5.5.4.tgz
    $ tar -zvxf solr-5.5.4.tgz
    $ cd solr-5.5.4
    $ bin/solr start

初始化

  1. 建立Collection/Core Core是单机版的Collection .我们可以把他理解成数据库 后面再讲解
  2. 索引数据, 我们通过这一步给Collection提供数据. 因为检索的前提是有数据嘛, 得先把Collection喂饱 , 然后Collection自己有一套消化数据的算法,把我们提供的数据 建立索引,把索引放在内存中以便我们的检索.

命令清单如下:

    $ bin/solr create -c demo #创建一个名为demo的Collection
    $ bin/post -c demo docs/ #给docs/下的文件建立索引

检索

  • 我们刚刚把docs/ 下的文件都发送到demo这个Collection里面去了. 假设docs/下有个文件叫index.html,内容如下:
Solr 入门_第2张图片
index.html
  • 这时候我们打开控制台,即访问http:x.x.x.x:8983,选择一个Collection
Solr 入门_第3张图片
控制台
Solr 入门_第4张图片
Collection试图
  • 选择query功能 , 随便搜索一段我们index.html中的话,如"Additional documentation, especially focused on using Solr." 这个时候我们会发现,index.html 已经被我们查找出来了.


    Solr 入门_第5张图片
    查找"Additional documentation, especially focused on using Solr."
  • 我们来看看Solr query返回的结果.
    有一个responseHeader对象,表示这次检索的总体情况
    有一个response对象, 是检索返回的内容主体.我们重点看看这个对象的字段代表什么含义

  1. numFound 匹配的结果总数.
  2. start 偏移量 相当于SQL 中的 limit 的第一个参数
  3. docs 这个是一个document对象列表, 表示匹配到的结果.
  4. document是什么? document就是Collection中的数据单元. 相当于数据库中的表. 一个document可以有多个字段. 比如我们的例子就有id,title等等. 这些都是可以自己定义的, 我们在下一篇文章中演示.
{
    "responseHeader": {
        "status": 0,
        "QTime": 10,
        "params": {
            "q": "\"Additional documentation, especially focused on using Solr\"",
            "indent": "true",
            "wt": "json",
            "_": "1491660892707"
        }
    },
    "response": {
        "numFound": 1,
        "start": 0,
        "docs": [
            {
                "id": "/usr/local/solr-5.5.4/docs/index.html",
                "stream_size": [
                    4365
                ],
                "x_parsed_by": [
                    "org.apache.tika.parser.DefaultParser",
                    "org.apache.tika.parser.html.HtmlParser"
                ],
                "stream_content_type": [
                    "text/html"
                ],
                "dc_title": [
                    "Apache Solr 5.5.4 Documentation"
                ],
                "content_encoding": [
                    "UTF-8"
                ],
                "resourcename": [
                    "/usr/local/solr-5.5.4/docs/index.html"
                ],
                "title": [
                    "Apache Solr 5.5.4 Documentation"
                ],
                "content_type": [
                    "text/html; charset=UTF-8"
                ],
                "_version_": 1564118831183429600
            }
        ]
    }
}

所以,当我们有很多个html文件,我们将它们都塞进Solr里面并建立索引.这个时候我们搜索任意内容,就会得到匹配到一些html文件等等. 像上个例子.我们还可以指定字段来搜索,如q = title:Apache Solr 5.5.4 Documentation. 表示在title这一个字段上面查找跟Apache Solr 5.5.4 Documentation 相关的doc对象 , 同样也是可行的.

Solr 入门_第6张图片
检索字段

总结

这篇文章只是简单的走了一下流程. 先对Solr 做一个简单的helloworld出来.
通过这个helloworld. 我们发现:

  1. solr对文件(pdf,txt,html 等文本文件)的索引建立是 建立在其文本内容上. 不同的文件类型有不同的Parser来解析.比如html会有HtmlParser来解析.
  2. solr的检索是基于Collection的,不像我们的SQL 基于表格. 如果在SQL的概念来类比的话, 应该说是基于整个整个数据库, 对数据库所有的记录做一次检索. 然后将所有搜索到的记录(document)呈现出来.
  3. 我们把document的字段称为Filed, 每个Filed 有对应的FieldType. 每个FieldType有自己的索引建立规则, 比如如何分词之类的.

你可能感兴趣的:(Solr 入门)