Content Table

Solr Tips

安装 Solr

准备 Solr

  • 启动 Solr: bin/solr start

  • 创建 Core,命名为 ebag: bin/solr create -c ebag

    • -c 的意义为 Core or Collection,不可缺少
  • 添加索引: bin/post -c ebag example/exampledocs/books.json

  • 搜索: http://localhost:8983/solr/ebag/select?indent=on&wt=json&q=Greek,输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    {
    "responseHeader": {
    "zkConnected": true,
    "status": 0,
    "QTime": 1,
    "params": {
    "q": "Greek",
    "indent": "on",
    "wt": "json"
    }
    },
    "response": {
    "numFound": 1,
    "start": 0,
    "docs": [{
    "id": "978-1857995879",
    "cat": [
    "book",
    "paperback"
    ],
    "name": ["Sophie's World : The Greek Philosophers"],
    "author": ["Jostein Gaarder"],
    "sequence_i": 1,
    "genre_s": "fantasy",
    "inStock": [true],
    "price": [3.07],
    "pages_i": 64,
    "_version_": 1532134320281485312
    }]
    }
    }

    Solr Start Script Reference: https://cwiki.apache.org/confluence/display/solr/Solr+Start+Script+Reference,有命令和参数的详细说明

关闭 Solr

1
bin/solr stop -all

创建 Core or Collection

1
bin/solr create -c <name>

删除 Core or Collection

1
bin/solr delete -c ebag

Admin 工具

Solr 的重要概念

  • Core (Collection): Document 的集合
  • Document: 相当于数据库里的一个记录,Field 的集合
  • Field: 数据项
  • Schema: The schema is the place where you tell Solr how it should build indexes from input documents.

添加索引

Solr 支持多种数据格式,例如 PDF,Html,Json,Xml 等。

1
2
3
bin/post -c ebag docs/
bin/post -c ebag example/exampledocs/*.xml
bin/post -c ebag example/exampledocs/books.json
  • ebag 是 collection 的名字
  • 把目录 docs 下的所有文件都添加到 Solr 的索引里(递归添加)
  • 对目录 exampledocs 中的所有 xml 做索引
  • 对 books.json 做索引
  • 多次对同一个文件做上面的索引操作,不会出现多个,只会更新,因为索引是以 id 来区分的(uniqueKey),每个 Document 都有一个 id

常用搜索

参考