solr 怎么让从mysql导入的数据是json数组
2个回答
2017-06-09
展开全部
1. 编写配置文件
1)编写 data-config-comment.xml,此文件用于描述如何查询MySQL数据,如何将数据变换导入索引。
假设有一个数据库叫mooc,其中有个表叫comment,代表学生的评论
其中:
entity对应MySQL数据库表中的一行
query对应全库导入的SQL查询
queryImportQuery 对应增量导入的SQL查询
deltaQuery对应增量导入获取最新修改的行ID,这些ID用于 queryImportQuery,SQL的含义中
DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}
表示comment的更新时间updatetime,或者comment的写入时间writetime比上一次的导入时间$(dih.last_index_time)还大。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mooc"
user="root"
password="root"/>
<document>
<entity name="comment"
query="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment"
deltaImportQuery="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment where id='${dih.delta.id}'"
deltaQuery="SELECT id FROM comment WHERE DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}'">
<field column="id" name="id"/>
<field column="writetime" name="writetime"/>
<field column="title" name="title"/>
</entity>
</document>
</dataConfig>
2)假设要创建一个名为mooc的solr核,在其conf目录中的schema.xml文件中编写fields,加入id,writetime,title,其中text_cn,需要使用我上一则博客写的中文分词插件。
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="writetime" type="tdate" indexed="true" stored="true"/>
<field name="title" type="text_cn" indexed="true" stored="true"/>
3) 配置Solr的 solrconfig.xml
在 D:\libs\solr-4.10.2\example\solr\mooc\conf 目录中,创建data-config-comment.xml
在solrconfig.xml中创建数据导入handler用来导入comment表,如下编写,其中的data-config-comment.xml即是第1步写的
<requestHandler name="/dataimportcomment" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config-comment.xml</str>
</lst>
</requestHandler>
2.配置使用到的JAVA库文件
创建D:\libs\solr-4.10.2\example\solr\mooc\lib,拷贝solr-dataimporthandler-4.10.2和mysql-connector-java-5.1.26-bin到此,这两个库用于导入和查询数据库
3.启动Solr
进入solr的example目录
java -jar start.jar
3.导入为索引数据
在浏览器运行如下命令做全库导入,表示将数据,导入到Solr核mooc中
http://localhost:8983/solr/mooc/dataimportcomment?command=full-import&commit=y
如果带clean=false参数,则表示不删除原数据
增量导入
http://localhost:8983/solr/mooc/dataimportcomment?command=delta-import
4.删除索引文件
编写一个XML文件,内容为
<delete><query>*:*</query></delete>
执行命令
1)编写 data-config-comment.xml,此文件用于描述如何查询MySQL数据,如何将数据变换导入索引。
假设有一个数据库叫mooc,其中有个表叫comment,代表学生的评论
其中:
entity对应MySQL数据库表中的一行
query对应全库导入的SQL查询
queryImportQuery 对应增量导入的SQL查询
deltaQuery对应增量导入获取最新修改的行ID,这些ID用于 queryImportQuery,SQL的含义中
DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}
表示comment的更新时间updatetime,或者comment的写入时间writetime比上一次的导入时间$(dih.last_index_time)还大。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mooc"
user="root"
password="root"/>
<document>
<entity name="comment"
query="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment"
deltaImportQuery="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment where id='${dih.delta.id}'"
deltaQuery="SELECT id FROM comment WHERE DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}'">
<field column="id" name="id"/>
<field column="writetime" name="writetime"/>
<field column="title" name="title"/>
</entity>
</document>
</dataConfig>
2)假设要创建一个名为mooc的solr核,在其conf目录中的schema.xml文件中编写fields,加入id,writetime,title,其中text_cn,需要使用我上一则博客写的中文分词插件。
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="writetime" type="tdate" indexed="true" stored="true"/>
<field name="title" type="text_cn" indexed="true" stored="true"/>
3) 配置Solr的 solrconfig.xml
在 D:\libs\solr-4.10.2\example\solr\mooc\conf 目录中,创建data-config-comment.xml
在solrconfig.xml中创建数据导入handler用来导入comment表,如下编写,其中的data-config-comment.xml即是第1步写的
<requestHandler name="/dataimportcomment" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config-comment.xml</str>
</lst>
</requestHandler>
2.配置使用到的JAVA库文件
创建D:\libs\solr-4.10.2\example\solr\mooc\lib,拷贝solr-dataimporthandler-4.10.2和mysql-connector-java-5.1.26-bin到此,这两个库用于导入和查询数据库
3.启动Solr
进入solr的example目录
java -jar start.jar
3.导入为索引数据
在浏览器运行如下命令做全库导入,表示将数据,导入到Solr核mooc中
http://localhost:8983/solr/mooc/dataimportcomment?command=full-import&commit=y
如果带clean=false参数,则表示不删除原数据
增量导入
http://localhost:8983/solr/mooc/dataimportcomment?command=delta-import
4.删除索引文件
编写一个XML文件,内容为
<delete><query>*:*</query></delete>
执行命令
2017-06-09
展开全部
1. 编写配置文件
1)编写 data-config-comment.xml,此文件用于描述如何查询MySQL数据,如何将数据变换导入索引。
假设有一个数据库叫mooc,其中有个表叫comment,代表学生的评论
其中:
entity对应MySQL数据库表中的一行
query对应全库导入的SQL查询
queryImportQuery 对应增量导入的SQL查询
deltaQuery对应增量导入获取最新修改的行ID,这些ID用于 queryImportQuery,SQL的含义中
DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}
表示comment的更新时间updatetime,或者comment的写入时间writetime比上一次的导入时间$(dih.last_index_time)还大。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mooc"
user="root"
password="root"/>
<document>
<entity name="comment"
query="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment"
deltaImportQuery="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment where id='${dih.delta.id}'"
deltaQuery="SELECT id FROM comment WHERE DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}'">
<field column="id" name="id"/>
<field column="writetime" name="writetime"/>
<field column="title" name="title"/>
</entity>
</document>
</dataConfig>
2)假设要创建一个名为mooc的solr核,在其conf目录中的schema.xml文件中编写fields,加入id,writetime,title,其中text_cn,需要使用我上一则博客写的中文分词插件。
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="writetime" type="tdate" indexed="true" stored="true"/>
<field name="title" type="text_cn" indexed="true" stored="true"/>
3) 配置Solr的 solrconfig.xml
在 D:\libs\solr-4.10.2\example\solr\mooc\conf 目录中,创建data-config-comment.xml
在solrconfig.xml中创建数据导入handler用来导入comment表,如下编写,其中的data-config-comment.xml即是第1步写的
<requestHandler name="/dataimportcomment" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config-comment.xml</str>
</lst>
</requestHandler>
2.配置使用到的JAVA库文件
创建D:\libs\solr-4.10.2\example\solr\mooc\lib,拷贝solr-dataimporthandler-4.10.2和mysql-connector-java-5.1.26-bin到此,这两个库用于导入和查询数据库
3.启动Solr
进入solr的example目录
java -jar start.jar
3.导入为索引数据
在浏览器运行如下命令做全库导入,表示将数据,导入到Solr核mooc中
http://localhost:8983/solr/mooc/dataimportcomment?command=full-import&commit=y
如果带clean=false参数,则表示不删除原数据
增量导入
http://localhost:8983/solr/mooc/dataimportcomment?command=delta-import
4.删除索引文件
编写一个XML文件,内容为
<delete><query>*:*</query></delete>
执行命令
1)编写 data-config-comment.xml,此文件用于描述如何查询MySQL数据,如何将数据变换导入索引。
假设有一个数据库叫mooc,其中有个表叫comment,代表学生的评论
其中:
entity对应MySQL数据库表中的一行
query对应全库导入的SQL查询
queryImportQuery 对应增量导入的SQL查询
deltaQuery对应增量导入获取最新修改的行ID,这些ID用于 queryImportQuery,SQL的含义中
DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}
表示comment的更新时间updatetime,或者comment的写入时间writetime比上一次的导入时间$(dih.last_index_time)还大。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mooc"
user="root"
password="root"/>
<document>
<entity name="comment"
query="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment"
deltaImportQuery="SELECT id, DATE_FORMAT(writetime, '%Y-%m-%dT%TZ') as 'writetime', title from comment where id='${dih.delta.id}'"
deltaQuery="SELECT id FROM comment WHERE DATE(updatetime) >= '${dih.last_index_time}' OR DATE(writetime) >= '${dih.last_index_time}'">
<field column="id" name="id"/>
<field column="writetime" name="writetime"/>
<field column="title" name="title"/>
</entity>
</document>
</dataConfig>
2)假设要创建一个名为mooc的solr核,在其conf目录中的schema.xml文件中编写fields,加入id,writetime,title,其中text_cn,需要使用我上一则博客写的中文分词插件。
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="writetime" type="tdate" indexed="true" stored="true"/>
<field name="title" type="text_cn" indexed="true" stored="true"/>
3) 配置Solr的 solrconfig.xml
在 D:\libs\solr-4.10.2\example\solr\mooc\conf 目录中,创建data-config-comment.xml
在solrconfig.xml中创建数据导入handler用来导入comment表,如下编写,其中的data-config-comment.xml即是第1步写的
<requestHandler name="/dataimportcomment" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config-comment.xml</str>
</lst>
</requestHandler>
2.配置使用到的JAVA库文件
创建D:\libs\solr-4.10.2\example\solr\mooc\lib,拷贝solr-dataimporthandler-4.10.2和mysql-connector-java-5.1.26-bin到此,这两个库用于导入和查询数据库
3.启动Solr
进入solr的example目录
java -jar start.jar
3.导入为索引数据
在浏览器运行如下命令做全库导入,表示将数据,导入到Solr核mooc中
http://localhost:8983/solr/mooc/dataimportcomment?command=full-import&commit=y
如果带clean=false参数,则表示不删除原数据
增量导入
http://localhost:8983/solr/mooc/dataimportcomment?command=delta-import
4.删除索引文件
编写一个XML文件,内容为
<delete><query>*:*</query></delete>
执行命令
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询