Solr之搭建Solr5.2.1服务并从Mysql上导入数据

一、开启Solr服务

1、首先从solr官网下载solr-5.2.1.tgz包,解压之后为solr-5.2.1。

2、读取README.txt可知通过bin/solr start命令开启solr服务,当然可以将solr-5.2.1/bin加入环境变量里面。此时开启的服务是放在jetty下的服务,也可以放在Tomcat下,只是感觉那样挺麻烦,还需要再下载一个Tomcat包。

3、开启服务之后,默认是开启8983端口,此时就可以使用localhost:8983/solr/进行访问了;如果不能访问,通过java -version查看你的java版本,看是否低于java1.7,如果低于,请升级。其实,在README.txt文件里面,Instructions for Building Apache Solr from Source下面的一行,已经明确指出要下载哪些东西。

二、从Mysql数据库中导入数据

1、创建core或collection,有两种方式创建

第一种是使用命令行,查看README.txt所知道的

bin/solr create -c collection

第二种使用访问链接创建

localhost:8983/solr/admin/cores?action=CREATE&name=collection&instanceDir=collection

默认创建的目录在solr-5.2.1/server/solr下

2、修改solr-5.2.1/server/solr/collection/conf/managed-schema文件为schema.xml

前面进入conf文件夹一看,傻了,居然没有4.6.1里面的schema.xml文件,这怎么设置?后来看到别人的一个文件说可以设置,难道我去4.6.1复制一个过来,再仔细一看有个managed-schema文件,于是试着打开一看,看到了下面的内容:

This is the Solr schema file. This file should be named “schema.xml” and should be in the conf directory under the solr home(i.e. ./solr/conf/schema.xml by default)

3、在schema.xml添加filed,因为我的mysql数据库当中只有id和name两个字段,而name这个filed在schema.xml已经存在,我只需要添加id就行了,如下:

   <fields>
        <field name="id" type="int" indexed="true" stored="true" required="true" />
    </fields>

    <uniqueKey>id</uniqueKey>
    <defaultSearchField>name</defaultSearchField>

4、修改solr-5.2.1/server/solr/collection/conf/下的solrconfig.xml的配置文件,配置一下添加数据库数据的xml,如下:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
          <lst name="defaults">
               <str name="config">data-config.xml</str>
          </lst>
</requestHandler>

5、创建solrconfig.xml文件中的data-config.xml文件,内部主要配置了访问数据库的用户名、密码,以及对应的数据库的字段,文件内容如下:

<dataConfig>

    <dataSource type="JdbcDataSource"

    driver="com.mysql.jdbc.Driver"

    url="jdbc:mysql://localhost/database_name"

    user="userName"

    password="passWord"/>

    <document>

        <entity name="check_lawyer"

            query="select id, name from tableName">

            <field column="id" name="id" />

            <field column="name" name="name" />

        </entity>

    </document>

</dataConfig>

注:上面的database_name是你创建的数据库名,userName是数据库用户名,passWord是数据库密码,tableName是你的表名,field区域当中的column对应数据库中的列,而name就是solr中显示的名称。

6、将solr-dataimporthandler-5.2.1.jarsolr-5.2.1/dist/文件夹下copy到solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib当中,此java包是导入数据用的。

8、从mysql官网中下载一个mysql-connector-java-5.1.35.zip压缩包,解压出一个mysql-connector-java-5.1.35-bin.jar包,将它copy到solr-5.2.1/server/lib下。

9、重启服务bin/solr restart,在在浏览器中输入:localhost:8983/solr/dataimport?command=full-import 来完成全量数据导入,在每次全量数据导入执行的时候,原有索引会被删除,如果不想删除原有索引,可以运行如下命令:localhost:8983/solr/dataimport?command=full-import&clean=false

10、若是不用步骤9的方法,也可以通过选择当前的core为collection,然后点击Dataimport,如果上面配置好的话,command下拉框就会有个full-import选择,选择它,然后点击下面的蓝色按钮Execute,等几分钟,刷新之后,出现Indexing completed. Added/Updated: 1963 documents. Deleted 0 documents. (Duration: 01s)类似的字段,说明导入mysql成功,此时就可以进行查询了

11、localhost:8983/solr/collection/select?q=%E6%98%A5&wt=json&indent=true输入这个链接就查询到结果了

三、相关错误:

1、如下,说明在schema.xml重复定义了id,把它屏蔽掉,重启服务

collection: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core collection: [schema.xml] Duplicate field definition for ‘id’ [[[id{type=string,properties=indexed,stored,omitNorms,omitTermFreqAndPositions,sortMissingLast,required, required=true}]]] and [[[id{type=int,properties=indexed,stored,omitNorms,omitTermFreqAndPositions,required, required=true}]]]. Schema file is /Users/user/lcg/Web/solrServer/solr-5.2.1/server/solr/collection/conf/schema.xml

2、如下,说明没有在schema.xml文件中定义name字段

collection: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core collection: default search field ‘name’ not defined or not indexed. Schema file is /Users/user/lcg/Web/solrServer/solr-5.2.1/server/solr/collection/conf/schema.xml

3、<field name="name" type="string" indexed="true" stored="true">后面少了个/,应该为<field name="name" type="string" indexed="true" stored="true"/>,修改完之后,重启服务

collection: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core collection: org.xml.sax.SAXParseException; systemId: solrres:/schema.xml; lineNumber: 1028; columnNumber: 12; 元素类型 “field” 的结束标记必须以 ‘>’ 分隔符结束。. Schema file is /Users/user/lcg/Web/solrServer/solr-5.2.1/server/solr/collection/conf/schema.xml

四、参考:

http://www.csdn123.com/html/itweb/20130726/23894_23889_23891.htm

http://tbwuming.iteye.com/blog/1152333

http://ju.outofmemory.cn/entry/19792

http://blog.csdn.net/hbuxzy/article/details/9254071

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 19:13:15

Solr之搭建Solr5.2.1服务并从Mysql上导入数据的相关文章

[solr] - 环境搭建 - 使用tomcat做为容器

这里忽略solr其他依赖环境的搭建,这里搭建solr5.2.1.使用Java1.7.0_17,tomcat使用6.0.36版本的. 1.下载solr压缩文件 Solr是Apache基金组织在lucene之上建立的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.Lucene是一个全文检索引擎工具包,不是一个完整的应用服务器.下载Solr的地址为:http://mirrors.hust.edu.cn/apache/lucene/solr/,这个链接中只有常用的版本

搭建 SolrCloud 集群服务

一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库 Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方式.Cloud方式. SolrCloud是基于Solr和Zookeeper的分布式搜索方案.当索引越来越大,一个单一的系统无法满足磁盘需求,查询速度缓慢,此时就需要分布式索引.在分布式索引中,原来的大索引,将会分成多个小索引,solr可以将这些小索引返回的结果合并,然后返回给客户端. 二.特色功能 Solr

第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)

https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第五天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第六天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)[第七天](redis缓存) 第04

Dockerfile搭建apache、ssh服务

Dockerfile文件 实验需求: 1.  创建容器守护态运行 2.  使用dockerfile文件创建镜像 3.  使用镜像搭建httpd.sshd服务 实验步骤: 守护态运行 更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行.此时,可以通过添加  -d  参数来实现.例如下面的命令会在后台运行容器. 或 容器启动后会返回一个唯一的 id,也可以通过dockerps命令来查看容器信息. 1.docker run -d 运行提个新的容器,我们通过-d命令让他

比Gitlab更易搭建的自助Git服务———gogs!

大家都认为Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大.但是,还有一款产品能够和Gitlab/Github媲美且操作更简单,没错,它就是Gogs.该项目沿用了GitHub Go 语言,而且Gogs的四位主要开发者都是中国人哦,小编我的自豪感油然而生啊! Gogs是什么?   Gogs是一款极易搭建的自助 Git 服务.它的目标是打造一个用最简单.最快速.最轻松的方式搭建自助 Git 服务.使用 Go 语言开发让Gogs能够通过独立的二进制进行分发,并且支持 Go 语言支持的

服务搭建基础篇 &nbsp; &nbsp; dhcp服务 &nbsp; &nbsp;

Server :  redhat 7.2     (192.1681.144) Clien :   redhat 6.8      (192.168.1.120) 未配置之前设置静态ip 网卡设置都为自定义vm1  (防止外部干扰) 服务器端下载dhcp安装包 确定server与client   通信 Client  网卡设置为dhcp 修改服务器端/etc/dhcp/dhcpd.conf 开启dhcpd服务 客户端client重启网卡获取到新的ip 绑定某一网卡.未特定主机私定ip 重启服务

从建立yum仓库到搭建ftp以及http服务

1 什么是yum仓库 yum工作需要依赖C/S架构工作模式的文件服务器,服务器中存放了yum工作时所需的程序包.yum接收到需要安装的程序包的名称之后,通过文件共享协议(或者文件传输协议),在配置文件中指向的yum仓库(可以是多个)中查询需要的程序包.找到之后,通过文件下载协议,将程序包下载至本地yum的缓存目录中,当安装完成后,缓存目录便会被删除 yum的配置文件位置在/etc/yum.repos.d/base.repo,用vim工具编辑下. yum内容格式: 1 [base] 2 name=

Solr环境搭建

记录一下Solr环境搭建,基于Solr 4.6.0. 一.配置Tomcat 下载Tomcat 7.0.新建一个solr文件夹,解压tomcat到solr目录下: solr tar -zxvf apache-tomcat-7.0.69.tar 启动tomcat: ./apache-tomcat-7.0.69/bin/catalina.sh start 访问8080端口测试. 二.配置solr solr下载地址:http://archive.apache.org/dist/lucene/solr/

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务 目的 ?? 使用多个tomcat服务器来对请求进行分流,防止单个服务器压力过重.这里为了简单,只使用两个tomcat. 软件 apache httpd-2.2.31(下载地址:https://httpd.apache.org/download.cgi) apache tomcat-7.0.69(下载地址:https://tomcat.apache.org/download-70.cgi) tomcat-con