title: solr上手指南

date: 2016-04-23 22:10:59

tags: [solr]

categories: 搜索


  1. 通过homebrew安装solr:

    1
    
    brew install solr
    

    安装在/usr/local/Cellar/solr/下对应版本号的目录

  2. 启动solr cloud:

    1
    
    solr start -e cloud -noprompt
    

    或者solr单个节点:

    1
    
    solr start
    

    启动后通过访问:http://localhost:8983/solr/#/~cloud 可以看到系统拓扑图: 2016-04-12 at 下午9.20.jpg

  3. 导入数据 3.1 导入富文本文件

    1
    
    post -c gettingstarted /usr/local/Cellar/solr/5.5.0/libexec/docs/
    

    以上命令将导入solr目录下的示例数据文件夹包含的富文本文件. 导入之后,就可以通过访问solr的搜索界面:http://localhost:8983/solr/#/gettingstarted_shard1_replica2/query 进行搜索: 2016-04-12 at 下午9.34.jpg 3.2 通过solr xml格式文件导入数据 solr xml文件的定义参见:apache wiki 导入示例文件命令为:

    1
    
    post -c gettingstarted example/exampledocs/*.xml
    

    通过访问:http://localhost:8983/solr/gettingstarted/browse 可以看到当前已导入的文件列表,同样可以通过搜索界面进行搜索. 3.3 通过json格式文件导入

    1
    
    post -c gettingstarted example/exampledocs/books.json
    

    3.4 通过csv格式文件导入

    1
    
    post -c gettingstarted example/exampledocs/books.csv
    

    3.5 其他导入方式 通过DIH从数据库导入,使用SolrJ插件通过java等基于jvm的代码导入,使用Admin UI …

  4. 通过关键词进行搜索 4.1 单个条件搜索 通过替换搜索界面中q的默认值:*:*为’foudation’或者访问地址:http://localhost:8983/solr/gettingstarted/select?wt=json&indent=true&q=foundation 可以得到搜索结果. 访问搜索界面需要执行sharding,但是请求搜索结果可以忽略 可以看到返回的结果几乎包含了所有的记录,因为刚才的搜索包含了所有的字段,通过将q设置为name:foudation可以仅仅搜索name属性中中包含foudation的记录,同理可以试试q设置为cat:software搜索cat属性中包含software的记录. 4.2 词组搜索 例如需要搜索CAS latency,在搜索界面中可以直接录入CAS latency,但是如果通过url,需要将空格替换为+. 2016-04-12 at 下午10.17.jpg 4.3 组合搜索条件 需要条件出现使用+,需要条件不出现使用- 例如:http://localhost:8983/solr/gettingstarted/select?wt=json&indent=true&q=%2Bone+%2Bthree 这个链接搜索包含one但是不包含three的记录 4.4 更多 访问apache wiki获取更多有关搜索的细节.

  5. 清理 到现在我们已经大致接触了solr,要将solr恢复到初始状态,执行以下命令:

    1
    
    bin/solr stop -all ; rm -Rf example/cloud/