Linux下Solr相关配置
2016-01-21 16:10
483 查看
1、访问http://localhost:8983
点击菜单Core Admin->Add Core,会出现以下页面见
我们需要手动创建Core目录,该目录下要包含conf/solrconfig.xml、conf/schema.xml这连个基本文件
2、配置solrconfig.xml
因为我的项目需要加速数据库中数据的访问速度,因此需要加入结构化数据的数据导入句柄<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> //我们需要引入在solr安装目录中的dist目录下相关jar包 <lib dir="${solr.install.dir:../../../..}/lib/" regex="mysql-connector-java-.*\.jar" /> //引入数据库的驱动jar包
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str>//这是关于数据库的配置 </lst> </requestHandler>
3、 配置schema.xml
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="taskUUID" type="string" indexed="true" stored="true" required="true" /> <field name="taskLogo" type="string" indexed="true" stored="true" required="true" /> <field name="taskName" type="string" indexed="true" stored="true" required="true" /> <field name="taskType" type="int" indexed="true" stored="true" required="true" /> <field name="taskLang" type="int" indexed="true" stored="true" required="true" /> <field name="taskDesc" type="text_general" indexed="true" stored="true" required="true"/> <field name="status" type="int" indexed="false" stored="true" required="true" /> <field name="createByName" type="string" indexed="true" stored="true" required="true" /> <field name="createTime" type="<span style="color:#ff0000;">string</span>" indexed="true" stored="true" required="true" /> <field name="updateByName" type="string" indexed="true" stored="true" required="true" /> <field name="updateTime" type="<span style="color:#ff0000;">string</span>" indexed="true" stored="true" required="true" />
<span style="font-family: Arial, Helvetica, sans-serif;"><field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> //这个必须要配置,如果已经存在的话就不需要了</span>
</pre></p><p><pre name="code" class="html"><copyField source="taskUUID" dest="text"/> <copyField source="taskName" dest="text"/> <copyField source="taskDesc" dest="text"/>
上面这三行配置的用于组合查询的字段,意思是把这三个字段拼接到text这个字段上,相当于mysql中的concat,同样由于多字段的模糊查询。
4、配置db-data-config.xml
以下代码需要注意几个地方:UNIX_TIMESTAMP:这个返回的数据以秒为单位,而我的数据库中是毫秒级别的,因此需要乘以1000
row:这个自定义 函数中的row代表的是数据库的一条记录,因此取出的字段也是数据库中的字段
GMT+8:这个是指定时区,要不然算出的值不是咱们的北京时间,并且修改solr安装目录bin下的solr.in.sh中的SOLR_TIMEZONE="UTC,修改成#SOLR_TIMEZONE="UTC+8",重启Solr服务器即可
<dataConfig> <script> <![CDATA[ function dataFormat(row) { var createtime = row.get('<span style="color:#ff0000;">create_time</span>'); <span style="white-space:pre"> </span> var updatetime = row.get('<span style="color:#ff0000;">update_time</span>'); var createtimets; var updatetimets; var sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); <span style="color:#ff0000;">sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT+8"));</span> if(createtime != null) { createtimets = new java.util.Date(new java.lang.Long(createtime)); row.put('create_time', sdf.format(createtimets)); } if(updatetime != null) { <span style="white-space:pre"> </span>updatetimets = new java.util.Date(new java.lang.Long(updatetime)); row.put('update_time', sdf.format(updatetimets)); } return row; } ]]> </script> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_cda" user="root" password="123" convertType="true"/> <document> <entity name="task" query="select * from think_task" <span style="color:#ff0000;">transformer="script:dataFormat"</span> deltaQuery="select id from think_task where update_time > <span style="color:#ff0000;">UNIX_TIMESTAMP</span>('${dataimporter.last_index_time}') * 1000" deltaImportQuery="select * from think_task where id = '${dataimporter.delta.id}'"> <field column="id" name="id" /> <field column="task_uuid" name="taskUUID" /> <field column="task_logo" name="taskLogo" /> <field column="task_name" name="taskName" /> <field column="task_type" name="taskType" /> <field column="task_lang" name="taskLang" /> <field column="task_desc" name="taskDesc" clob="true"/> <field column="status" name="status" /> <field column="create_by_name" name="createByName" /> <field column="create_time" name="createTime"/> <field column="update_by_name" name="updateByName" /> <field column="update_time" name="updateTime"/> </entity> </document> </dataConfig>
相关文章推荐
- Linux 常用命令之cp
- gitbook学习之--linux下安装gitbook
- Linux下挂载NTFS格式的U盘或硬盘
- CentOS6.2永久静态路由的配置
- linux--chmod命令详解
- linux 配置 php 扩展curl
- linux下配置java环境变量
- CentOS6.6设置静态ip 设置主机名
- Linux---PHP源码编译安装报错
- Linux 信号signal处理机制
- archlinux安装输入法需要的包及archlinux无法使用输入法的解决
- linux 性能测评 火焰图
- Linux入门:如何安装Linux
- Linux sysinfo获取系统相关信息
- linux 下定时器 crontab
- linux与windows回车换行符的区别
- 关于如何在Linux虚拟机下挂载U盘
- Linux服务器通过rz/sz轻松上传下载文件
- linux下I2C驱动分析1
- linux下I2C驱动分析2-(1)