solr5.0入门及一些遇到的问题总结

sol可通过对文档数据简历索引,然后进行搜索的搜索引擎工具,我们常用的json/xml/各种文档文件,或者数据库都可以被看作是文档。

首先,要了解SOLR有一个控制台,可以帮我们做很多事~

solr的安装网上有一大堆就不说了 但是需要注意的是,貌似solr的每个版本目录结构都不一样,看到网上好多文章描述的步骤,对应的文件夹和文件都不存在了 我的目录结构如下


[img]http://dl2.iteye.com/upload/attachment/0110/7059/1d25b5b8-d5ef-3a2a-9510-8cf782481d3c.png[/img]
其中bin不多说了,solr的核心运行文件./solr start/stop/restart等等命令吧
solr控制台
http://localhost:8983/solr
1.创建core
这里面,控制台里是菜单上有一个core,点进去之后有一个Add Core 这里注意,至少我试了在这里是创建无效的,他会去找Solr根目录下你创建这个core名称文件夹里面的配置文件~ 所以,应该是先通过命令创建core,然后在这个菜单下添加到控制台 命令 到solr的bin目录下,./solr create -c [core_name]这里面的core_name就是你要创建的core的名字,比如 ./solr create -c test
文件会被创建在server/solr的目录下,然后里面会有一些预生成的文件。

2.schema.xml
在创建的文件夹中的conf文件夹下
这里面给我带来很多困扰,默认生成的一个managed-schema文件,网上很多资料写着,需要将这个文件改名为schema.xml,然后修改当中的配置
但是需要注意的一点就是,需要将原来的这个文件删掉,因为在solrconfig.xml里面有一段注释如下:
<!-- To disable dynamic schema REST APIs, use the following for <schemaFactory>:

<schemaFactory class="ClassicIndexSchemaFactory"/>

When ManagedIndexSchemaFactory is specified instead, Solr will load the schema from
the resource named in 'managedSchemaResourceName', rather than from schema.xml.
Note that the managed schema resource CANNOT be named schema.xml. If the managed
schema does not exist, Solr will create it after reading schema.xml, then rename
'schema.xml' to 'schema.xml.bak'.

Do NOT hand edit the managed schema - external modifications will be ignored and
overwritten as a result of schema modification REST API calls.

When ManagedIndexSchemaFactory is specified with mutable = true, schema
modification REST API calls will be allowed; otherwise, error responses will be
sent back for these requests.
-->

所以,如果不删除这个文件,就会默认取读取managed-schema,无论你怎么修改schema.xml都不起作用,当然,可以在这段注释代码下修改引用的文件

再说schema.xml里面配置的就是对应的数据了,配置对应的字段(名称、类型、是否设置索引、是否保存、是否可以为多个值等等)
相关的配置推荐大家到[url]http://www.solrcn.com/books/#2-en[/url]去看
或者去看solr的官方文档

3.solrconfig.xml
在创建的文件夹中的conf文件夹下
这个文件是配置当前core的,我是通过从mysql导入数据,在这个文件里面添加了如下代码,注意位置哦,生成的文件里,本来就存在一些<requestHandler>标签
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

这里面的data-config.xml需要在同级目录下
data-config.xml如下
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/brander"
user="root"
password="root"/>
<document>
<entity name="brand_share"
query="select id, text from t_test">
<field column="id" name="id" />
<field column="text" name="text" />
</entity>
</document>
</dataConfig>

这个文件是配置JDBC以及对应的SQL,查询出来的数据将作为solr的Doc文档存在,solr则通过Doc文档建立索引并进行检索
column对应数据库字段,name对应schema里面的字段名
还有就是对于jar包,连接数据库的jar包和dataimporthandle的jar包
solr-dataimporthandle.jar存放在solr解压目录下的dist里面,这里面存了很多以后可能会需要用到的solr功能,将这个包copy到server下的solr-webapp/webapp/WEB-INF/lib下,也就是我们运行的控制台的Web应用程序中
jdbc的连接jar包,则放到server下的lib(这是在网上看到的,但是放进去看日志也说找不到)所以如果找不到,需要在solrconfig.xml里面配置lib文件夹的位置,类似如下
<lib dir="" />


4.elevate.xml
这个文件我看很多博客都没有写,但是我在配置的时候,就会报错,后来查看日志,说需要修改这个文件
将里面的doc标签都加上注释
这个文件是实现类似百度竞价排名一样的功能


以上基本工作就完成了,在控制台添加core后,可以在core选择器里选择刚刚创建的core
然后进行数据导入、查询等等一系列的操作
可在schema browser里面查看自己配置的schema和相关的存储关系

可以通过控制台的core里进行对配置修改后的reload
可以通过core页面内的dateimport对配置data-config.xml的配置修改进行reload

有一点很重要就是要学会看log,否则,功能不好用找不到头绪,也不知道到底哪里出错了
配置的时候遇到相关的问题,就可以通过日志分析然后再Google了,这样入门才会快一些
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值