我的环境
jdk1.8
solr6.5.1
apache-tomcat-8.0.35
下载solr(直接从官网下就可以了)解压得到solr文件
在要运行的tomcat下的webapp文件夹下新建solr文件夹(solr自带有jetty的习惯了tomcat)把从解压得到的文件夹中复制webapp(solr-6.5.1\server\solr-webapp\webapp)下的所有文件复制到solr下;再复制jar包,把解压得到的文件夹下的dist包下的solr-dataimporthandler-6.5.1和solr-dataimporthandler-extras-6.5.1包复制到开始新建的solr的lib目录下这是用来开启加载其他的xml文件用的(个人这么认为的如有大神知道可以和我解说一下)入下图如果要连接数据库的话也要把数据库驱动加上
复制过来的文件中在WEB-INF文件夹下一般是没有classes文件夹的自己新建一个把log4j.properties(日志相关文件)复制;打开web.xml修改env-entry节点(注释了的话放开注释) 把等下要新建的solr_home地址复制过来放到该节点下(具体操作的solr地址)
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>C:\apache-tomcat-8.0.35\webapps\solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
到这的话solr算告一小段落在浏览器中输入localhost:8983/solr/index.html访问一下solr是可以访问的(也可以输入ip地址个人比较喜欢输入ip地址现在什么都做不了)
下面是会涉及到具体的solr的东西了
在tomcat中新建solr_home(上面提到过的)从解压得到的文件夹中把solr(solr-6.5.1\server\solr)下面的所有文件复制到该目录下;在把solr-6.5.1\server\solr\configsets\basic_configs文件夹下的conf文件加复制到该目录下修改文件名为core或my_core如下图
打开core文件夹,打开solrconfig.xml修改${solr.data.dir:},在后面加上自己新建的索引目录位置(如果只是少量测试数据的话加不加都可以)
如果要导入mysql数据的话在 <requestHandler name="/select" class="solr.SearchHandler">节点前面加上
<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为连接mysql文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/cs" user="root" password="密码" batchSize="-1" />
<document name="testDoc">
<entity name="user" pk="id"
query="select id,userName,userAge,userAddress from user">
<field column="id" name="id"/>
<field column="userName" name="userName"/>
<field column="userAge" name="userAge"/>
<field column="userAddress" name="userAddress"/>
</entity>
</document>
</dataConfig>
column为数据库中的列名,name为schema文件中的 节点<field name="userName" type="text_general" indexed="true" stored="true"/>的name
如果打开elevate.xml文件 <doc id="MA147LL/A" /> put the actual ipod at the top
<doc id="IW-02" exclude="true" /> exclude this cable没有注释的话把这两段注释掉(因为id很多时候都是int型的但在sold中是string类型的不改容易报错)
修改完后重启tomcat访问http://192.168.1.103:8080/solr/index.html点击core Admin新建core和my_core
点击core Selector选择开始新建的core或my_core点击schema按钮新建索引key(以前有版本是修改schema.xml文件的不知道什么时候开始这个文件没有了变成managed-schemaa了当然也可以直接在把这个文件加个后缀变成xml文件在这个文件中加入fieldType节点,不过这样容易出错)如果要实现一个查询关键字查询多个索引文件的话就要修改scheama文件了加入下面的节点把要包括的索引名字都归纳到一个关键字上去
<field name="keywords" type="text_ik" indexed="true" stored="true" multiValued="true"/>
<copyField source="keywords1" dest="keywords1"/>
<copyField source="keywords1" dest="keywords2"/>
<copyField source="keywords1" dest="keywords3"/>
添加完节点后点击Documents添加json索引或是java直接调用添加索引;如果是导入的mysql数据的话还要点击Dataimport测试连接和加载数据。添加完索引后点击Query查询
直接点击Execute Query的话就会查询出所有的索引在q模块添加查询条件的话就会查询出符合条件的索引,如下图就会查询出我开始建的索引
java内直接HttpSolrClient调用就可以了如果是分布式集群的话还要设置solrcloud调用到此结束
用户可以可以同时参考http://blog.csdn.net/jiangchao858/article/details/72581278(写这个博客的人写了很多关于solr的文章可以多看看)和
http://www.kailing.pub/article/index/arcid/149.html和http://www.cnblogs.com/luxiaoxun/p/4442770.html个人感觉这三个人的都不错