文档章节

solr6.6+jetty+centos+mysql

太黑_thj
 太黑_thj
发布于 2017/07/25 12:06
字数 1256
阅读 16
收藏 0

安装步骤(solr6.6+jetty+centos+mysql)

(使用solr内带的jetty作为服务器)

1.下载solr:http://www.apache.org/dyn/closer.lua/lucene/solr/6.6.0

2.丢到服务器上去   用命令解压   比如我最后解压的路径是

/data/solr/solr-6.6.0

3.进入到安装的根目录  cd /data/solr/solr-6.6.0(以下的所有操作都是基于这个文件夹的)

4.启动   bin/solr start (为solr分配了专用账号的情况下用这个命令启动)

bin/solr start -force(如果没有为solr分配账号得加上后面的-force强制启动)

5.默认占用8983端口

那么访问的地址就是   ip:8983

 eg:   http://192.168.1.1:8983

小结:

看网上的教程到这边基本都是没问题的,而且也基本到启动完就没了,我最想要的mysql数据导入却没有,哎肾伤;

如何创建一个core

方法一(基本没用的,做研究的同学可以看,如果只是用请直接看方法二)

1.先用命令创建   bin/solr create -c <core的名字>  这个名字你自己随便喜欢什么就取什么吧

2.接着将命令执行下去 bin/post -c <core的名字> example/exampledocs/*.xml(这句的用意是将内带的例子拷贝过来看看)

3.到页面刷新一下就可以看到你自己命名的core了

方法二(创建一个能导入mysql数据的core)

1.先将solr-6.6.0/server/solr/configsets/data_driven_schema_configs这个文件夹考本出来到本地

2.将上面拷贝出来的文件夹放到solr-6.6.0/server/solr   (自己重命名下文件夹,看你喜欢叫什么名称,比如我的叫thj_solr_core)

3.到页面去用add core的功能添加你刚才拷贝过去的文件夹

(到这边一个可以用来导入mysql数据的core就算是创建完成了)

4.添加mysql驱动(我这边用的是mysql-connector-java-5.1.42.jar)直接把这个mysql的jar包放到solr-6.6.0/dist这个文件夹内就可以了

5.配置数据

5.1 添加依赖在solr-6.6.0/server/solr/thj_solr_core/conf/solrconfig.xml这个文件添加两行依赖

添加到<config></config>这个标签中间

 <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-5.1.42.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-6.6.0.jar" />

5.2 重启solr(加载新依赖)

bin/solr restart  

5.3 配置mysql

5.3.1 比如我有个mysql的数据库名为thj_db

在thj_db这个库里有个表名为food_t

在food_t这个表里有四个字段  ft_id ,ft_name ,ft_mome, ft_updateTime

5.3.2 在solr-6.6.0/server/solr/thj_solr_core/conf文件夹内创建一个data-config.xml

内容如下(主键的name一定要用id)

<?xml version="1.0" encoding="UTF-8"?>  
<dataConfig>  
    <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/thj_db" user="root" password="root" batchSize="-1" />  
  <document>  
        <!--deltaImportQuery 里面引用id要和entity的pk属性一样才能生效-->
        <entity name="food_t" pk="ft_id"  dataSource="source1"   
                query="select * from  food_t"  
                deltaImportQuery="select * from food_twhere ft_id='${dataimporter.delta.ft_id}'"  
                deltaQuery="select lha_id from food_t where ft_updateTime> '${dataimporter.last_index_time}'">  
  
       
	<field column="ft_id" name="id" /><!-- 主键的name必须用id -->
    <!--一个数据库字段可以映射多个name,对应的在schema文件也加上去就可以了-->
    <!--<field column="ft_id" name="ft_id" />-->
	<field column="ft_name" name="name"  />
	<field column="ft_memo" name="memo"  />
	<field column="ft_updateTime" name="updateTime"  />
	
     </entity>  
  </document>  
</dataConfig> 

5.3.3继续修改solr-6.6.0/server/solr/thj_solr_core/conf/solrconfig.xml

5.3.3.1 定位到   <requestHandler name="/select" class="solr.SearchHandler">

5.3.3.2 在这行上面添加数据配置

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
      <lst name="defaults">  
         <str name="config">data-config.xml</str>  
      </lst>  
 </requestHandler>
 <!--  在这行上面添加数据配置  -->
  <requestHandler name="/select" class="solr.SearchHandler">

5.3.4 修改solr-6.6.0/server/solr/thj_solr_core/conf/managed-schema

5.3.4.1 先定位到<schema name="example-data-driven-schema" version="1.6">

由于这个是拷贝出来,所以这边的那么得换一下,换成表名替换完效果如下

<schema name="food_t" version="1.6">

5.3.4.2 继续定位到  <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

在这行的下面添加field

<!-- 这个也是默认的,勿动,默认对应你的主键 (我修改了几次发现都不能用)--> 
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!--  在这里开始添加你的字段 主键不需要添加  field 标签的的属性名称是什么意思就自己去百度吧-->
<!-- field里面的name属性对应的是咱们在data-config.xml里面设置的name-->
    <field name="name"  type="string" indexed="true" stored="true" />
	<field name="memo" type="string" indexed="true" stored="true" />
	<field name="updateTime" type="string" indexed="true" stored="true" />
<!-- 下面的这些事默认的,勿动 -->
    <!-- doc values are enabled by default for primitive types such as long so we don't index the version field  -->
    <field name="_version_" type="long" indexed="false" stored="false"/>
    <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>

5.4重启solr(不重启好像也能用)

bin/solr restart  

5.5到页面

注意:

一定要看清楚data-config.xml和managed-schema这两个文件的修改细节

不然到时候你就会纳闷为什么配置看上去都是一样对的,怎麼数据就是过不来呢,反正我是卡了两天才发现

© 著作权归作者所有

共有 人打赏支持
太黑_thj
粉丝 13
博文 117
码字总数 62323
作品 0
福州
程序员

暂无文章

window.parent,top,window.self,parent,opener

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口。 wind...

inidcard
22分钟前
1
0
Linux下Redis的安装和部署

一、Redis介绍 Redis是当前比较热门的NOSQL系统之一 它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set...

曾大大胖
25分钟前
2
0
开源堡垒机jumpserver搭建

概述 之前说了国产良心kodexplorer,今天再说一个国内比较好的开源项目jumpserver,除此之外还可以的国内开源项目我觉得就是宝塔面板了。废话不多说上教程搭建。 虽然说你可以看下面的教程不...

bboysoulcn
31分钟前
2
0
iPhoneX 底部距离

iPhoneX 底部距离 CGFloat adjust = 0; if (@available(iOS 11.0, *)) { //Account for possible notch UIEdgeInsets safeArea = [[UIApplication sharedApplication] keyWindow].safeAreaIn......

壹峰
35分钟前
2
0
养生篇01 (饭水分离法)

作者简介❤李祥文,1939年出生于韩国庆尚北道尚州市成昌邑。 24岁时,偶遇奇人习得这种分别喝水吃饭的养生方法,从而治好了自己的胃病和哮喘。从此,李祥文对饮食之于人体的影响产生了极大的...

十九亿少女的梦
51分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部