本文将描述如何初步使用solr。至于安装、部署大家可以自行Google或者参考这里:solr环境搭建。
SolrJ小例子
一、:启动配置好的solr Tomcat,IDEA新建MAVEN项目,添加依赖:
二、新建创建索引类:
public class SolrJDataImporter { public static void main(String[] args) throws IOException, SolrServerException { HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr"); for (int i = 0; i < 1000; ++i) { SolrInputDocument doc = new SolrInputDocument(); doc.addField("cat", "book"); doc.addField("id", "book-" + i); doc.addField("name", "The Legend of Po part " + i); server.add(doc); if (i % 100 == 0) server.commit(); // periodically flush } server.commit(); } }
三、新建查询类:
public class SolrJSearcher { public static void main(String[] args) throws MalformedURLException, SolrServerException { HttpSolrServer solr = new HttpSolrServer("http://localhost:80/solr"); ModifiableSolrParams params = new ModifiableSolrParams(); params.set("q", "Legend"); params.set("defType", "edismax"); params.set("start", "0"); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); if(results.size() < 1) System.out.println("没有查到任何数据"); else{ for (int i = 0; i < results.size(); ++i) { System.out.println(results.get(i)); } } } }
四、运行项目
solr与数据库同步(DIH)
一、创建表:
create table UserInfo
(
userID int auto_increment primary key,
userName varchar(30) not null,
userAge number not null
);
插入数据。
二、配置solrconfig.xml:
打开Solr主目录的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>
三、新建data-config.xml:
就在这个同级目录conf文件下新建一个data-config.xml文件,加入如下配置:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test" user="root" password="root" />
<document>
<entity name="id" query="select USERID,USERNAME,USERAGE from
USERINFO">
<field column="USERID" name="id"/>
<field column="USERNAME" name="userName"/>
<field column="USERAGE" name="userAge"/>
</entity>
</document>
</dataConfig>
四、配置schema.xml:
file域配置数据库表的列列名,到scheme.xml配置文件中配置索引字段名称的映射,在⽂件中加入这几个字段的配置:
<field name="userName" type="text_general" indexed="true" stored="true" />
<field name="userAge" type="int" indexed="true" stored="true" />
五、导入相关的jar包:
到solr的解压包下找到dist目录下的solr-dataimporthandler-4.10.3.jar和solr-dataimporthandler-extras-4.10.3.jar这两个jar包,放到%tomcat%\webapps\solr
\WEB-INF\lib下,同时加入链接驱动mysql-connector-java-5.1.27-bin.jar。
至此完成,启动Tomcat,浏览器输入:http://localhost:80/solr/dataimport?command=full-import进行全量导入。到查询界⾯面,查询userName这个字段,包含“名字”这个中⽂文词的记录。如图: