第一篇 solr配置
一、下载solr(地址:http://lucene.apache.org/solr/),并解压到一个目录中
Bin目录是执行脚本。Dist是构建完的jar包。Doc文档。Example是样例核配置。Server是solr的webapp和默认的solr_home目录。
Cmd进入在window命令窗口
(1)在solr/bin/路径下启动
solr start
(2)暂停solr
solr stop -p 8983
(3)查看solr的状态及属性
solr status
(4)创建一个核,来存储产品表中的数据
solr create -c demo
(5)成功之后,访问地址:
http://localhost:8983/solr
二、创建一个核,来存储产品表中的数据
三、solr的核心结构
(1)solr-webapp,这就是我们上面访问的这个web项目。
(2)Solr-home,是solr的主目录,里面包含solr的基本配置,还包含一到多个核的配置。
(3)Core,核,集群部署下叫collection。一个core对应一个文档集合。类似于一张表
(4)Document,文档,solr和lucene都将要搜索的东西抽象成文档。类似于数据库一行记录。
(5)Field 一个document包含多个field,每个field的类型是fieldType。Field类似数据库字段。
(6)Schema.xml或者managed-schema是描述document的文件,类似于数据库的表结构。
四、配置中文分词
1、IK中文分词器
(1)准备好ik分词器的jar包,可以自己编译,也可以下载我生成的。然后把它复制到tomcat/webapp/solr/WEB-INF/lib里面。
(2)打开/conf/managed-schema文件,追加如下配置
2、mmseg4j中文分词器
(1) 下载地址:https://github.com/chenlb/mmseg4j-solr
将jar包下载下来,放到solr-webapp的WEB-INF/lib目录下
(2)在solr-home/test/conf/managed-schema 文件中配置能够中文分词的fieldType
重新启动solr之后,点击分析器
也可以通过地址来查看:http://localhost:8983/solr/demo/analysis/field?q=name:江西财经大学&analysis.fieldtype=text_cn&indent=on&wt=json
四、配置完fieldType,接着在managed-schema配置field字段(注:此处的field必须和db-data-config.xml中的数据库字段一一对应)
五、配置db-data-config.xml
在demo/config文件下创建db-data-config.xml
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dmeo?useUnicode=true&characterEncoding=utf8"
user="root"
password="root"/>
<document>
<entity name="test" query="select id,name,phone from test">
<field name="id" column="id" />
<field name="name" column="name" />
<field name="phone" column="phone"/>
</entity>
</document>
</dataConfig>
新建,data-import.properties文件。从solr的example-DIH/solr/db中复制html和js文件到solr-home/demo/conf目录下。
六、配置数据库导入工具(在solrconfig.xml文件中配置)
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
配置导入工具之后,试着导入数据
七、指定solr_home路径
完成上面操作之后
solr访问地址:http://localhost:8983/solr/demo/select?q=*&fq=name:* AND phone:*&start=0&rows=10&sort=name desc
第二篇 Java中实现
一、maven配置
<!-- 搜索所需要的jar包 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.noggit</groupId>
<artifactId>noggit</artifactId>
<version>0.6</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
<!-- 搜索所需要的jar包 -->
二、代码中实现
public class Test {
public static void main(String[] args) throws MalformedURLException {
query();
}
public static SolrClient getClient() {
String url = "http://localhost:8983/solr/demo/";
SolrClient solr = new HttpSolrClient(url);
return solr;
}
/**
* 查询
*/
public static void query() {
SolrClient solr = getClient();
SolrQuery query = new SolrQuery();
query.set("q", "*:*");
try {
QueryResponse response = solr.query(query);
SolrDocumentList list = response.getResults();
System.out.println("共查询出" + list.getNumFound() + "条记录");
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}