首先下载solr:本文用的是5.5.3版本
http://apache.fayea.com/lucene/solr/5.5.3/solr-5.5.3.tgz
下载完解压solr-5.5.3.tgz拷贝到你的安装目录 我是放到/Users/mac/Library/下 重命名为solr
mv solr-5.5.3.tgz /Users/mac/Library/solr
进入bin目录 cd /Users/mac/Library/solr/bin
bin ./solr start -p 8000 (默认端口号为8983,可以使用-p 指定端口号)
启动成功!
http://localhost:8983/
$ bin/solr status 检查Solr的运行状态
下面开始新建一个core(相当于一个索引库对应一个schema,如果你是从mysql中拿数据相当于mysql中的一张大表)
mkdir /Users/mac/Library/solr/server/solr/core_name
echo "name=core_name" > /Users/mac/Library/solr/server/solr/core_name/core.properties
cp -r /Users/mac/Library/solr/server/solr/configsets/basic_configs/conf /Users/mac/Library/solr/server/solr/core_name/
注意:
- core.properties和conf目录应放置在相同的路径。
- conf目录将包含schema.xml和solrconfig.xml文件。(schema.xml 可以由managed-schema拷贝过来修改 cp managed-schema schema.xml)
schema.xml 需要配置的代码如下
<!-- <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> -->
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_ik" indexed="true" stored="true" />
<field name="content" type="text_ik" indexed="true" stored="true" />
另外添加定义fieldtype:
<fieldType name="text_ik" class="solr.TextField" >
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
solrconfig.xml:
在<requestHandlername="/select"class="solr.SearchHandler"> 上面添加:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
另外:
<!-- <schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>-->
<schemaFactory class="ClassicIndexSchemaFactory"/>
注意我是注释掉之前的schemaFactory添加了ClassicIndexSchemaFactory
最后db-data-config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_ldjs" user="root" password="123456"/>
<document name="testmysqlDoc">
<entity name="tb_solr" pk="id" query="select id ,name as title,CONCAT(name,' ',mobile,' ',province,' ',city,' ',company,' ',total,' ',flg) as content from tb_solr">
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="content" name="content"/>
</entity>
</document>
</dataConfig>
重启solr
登录http://localhost:8000/
点击Dataimport -->excute