ps:针对solr-4.10版本
一、 安装
1、 从
http://lucene.apache.org/solr/下载相应版本的包,解压即可,(前提是必须正确配置好jdk和apache-tomcat)
2、 在你需要的地方新建文件夹,将${你的解压包}\example\solr拷贝至此,假设为D:/solr/solrData/(此步骤也可省略,直接在solr文件夹下)
3、 修改solrconfig.xml(约102行)为<dataDir>${solr.data.dir:D:/solr/solrData/solr/collection1/data}</dataDir>
<!—说明:solr.data.dir 用于存放你索引的地方-->
4、 找到solr.war(${你的解压包}\example\webapps),将其当放在tomcat下的webapp下,运行tomcat,将其解压
5、 在解压的solr文件夹下找到web.xml文件,解除注释(大约在41行)
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/solr/solrData/solr</env-entry-value>
<!—说明: env-entry-value 为你的solr所在文件夹-->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
6、 将${你的解压包}\example\lib\ext下的jar包拷贝到解压后的solr\WEB-INF\lib下,重启tomcat,输入localhost:8080/solr会看到solr界面则表示成功,如下:
一、 solr和mysql数据库的索引建立
1、 在上一的2的solr\collection1\conf下找到solrconfig.xml文件并加入
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config"> data-config.xml</str>
<!—
说明:此处的名字可以随便起,但该文件一定要存在,本配置为相对路径,你也可以使用绝对路径-->
</lst>
</requestHandler>
2、 在conf文件夹下创建data-config.xml文件,内容如下:
<dataConfig>
<dataSourcetype="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/ptj"
user="root"
password="123456"/>
<!--
说明:password 为你的数据库密码,ptj为你要连接的数据库名-->
<document name="myResume">
<entity name="resume"query="select pkCode,resumeName from resume">
<field column="pkCode"name="id" />
<!--
说明:此处必须有一个id(据我目前的了解程度如此),否则导致查询不到内容-->
<fieldcolumn="resumeName" name="resumeName" />
</entity>
</document>
</dataConfig>
3、 由于resumeName不存在schmea.xml,故而需要加入<fieldname="resumeName" type="string" indexed="true"stored="true"/>
和<copyField source="resumeName" dest="text"/>
4. copy
/dist/solr-dataimporthandler-x.x.x.jar
and solr-dataimporthandler-extras-x.x.x.jar to web-inf/lib
5
、重启tomcat并在浏览器中输入http://localhost:8080/solr/dataimport?command=full-import
6
、再进入http://localhost:8080/solr,在界面找到Core selector选择connect1,找到Query,如下:
点击Excute Query即可出现结果
也可在java代码中搜索,java代码如下:
public
static
void
main(String[] args) {
String url =
"http://localhost:8080/solr"
;
SolrServer server =
new
HttpSolrServer(url);
SolrQuery query =
new
SolrQuery(
"*"
);
try
{
QueryResponse response = server.query(query);
SolrDocumentList docs = response.getResults();
System.
out
.println(
"
文档个数:"
+ docs.getNumFound());
System.
out
.println(
"
查询时间:"
+ response.getQTime());
for
(SolrDocument doc : docs) {
System.
out
.println(
"id"
+ doc.getFieldValue(
"id"
));
System.
out
.println(
"resumeName"
+ doc.getFieldValue(
"resumeName"
));
//
resumeName
为你自己的字段
System.
out
.println(
"=================="
);
}
}
catch
(SolrServerException e) {
e.printStackTrace();
}
}
说明:小编也是初学者,对solr也是一知半解,欢迎各位大神指点和各位小白们一起讨论
讨论地址:
QQ
群:248716722