Solr与mysql数据同步
原文:https://blog.csdn.net/zhangchao19890805/article/details/54136164
一、什么是solr?
solr 是一个全文搜索工具,它是由Lucene发展而来。那么,solr 和 Lucene 之间是什么样的关系呢?简单地说,如果把solr比喻成一辆汽车,那么Lucene就是一台汽车引擎。绝大多数情况下我们完全可以使用solr 来解决开发中遇到的问题。
二、环境准备
确保你的机器上安装了 java8。java8具体的安装配置方法网上有很多,本文主要与 solr 相关,这里就不赘述了。
从solr的官网下载压缩包。你可以在 http://mirrors.cnnic.cn/apache/lucene/solr/
看到官网上存在的solr版本。因为我用6.3.0做例子,所以点击进入6.3.0的版本。你也可以直接访问 http://mirrors.cnnic.cn/apache/lucene/solr/ 来进行下载。下载下来的文件名是 solr-6.3.0.zip。
三、初次体验solr和数据库的结合使用。
solr 提供了例子来给使用者学习。本文是在win10上的演示。解压solr-6.3.0.zip 文件到 E:\blog\test1\solr-6.3.0。用管理员身份进入命令行,用cd命令进入 E:\blog\test1\solr-6.3.0\bin 文件夹下,输入命令:
solr -e dih
- 1
就可以启动 solr 服务器了。打开浏览器,输入网址:localhost:8983/solr/ 。你就可以进入solr的WEB控制台。
如果想要停止solr服务器,输入命令:
solr stop -all
- 1
四、WEB 控制台界面介绍
左边方框中的菜单项选择重要的说明一下:
Dashboard: 首页,显示各种系统信息。
Core Admin: 核心管理。后面的内容有解释。
Java Properties:java参数。因为solr是用java编写的,所以存在一些java参数。
下拉列表Core Selector : 选择当前的核心。后面的内容有讲解。
点击 Core Admin 后的界面:
红色方框中的是当前solr服务器正在管理的核心。这些核心与 E:\blog\test1\solr-6.3.0\example\example-DIH\solr 中的文件夹一一对应。绿色方框中的是用户选中的核心的详细信息。比如上面图片中,用户选择了db核心,绿色方框中就显示了db核心的startTime、instanceDir和dataDir参数。
下拉列表Core Selector中选择db后的界面:
其中 Overview是db核心的概览,Dataimport是导入数据,Query是查询。solr默认的db例子里面使用的是hsqldb。为了使用这个例子,我们要先引入数据。点击 Dataimport,页面如下:
Configuration显示db核心的数据配置。当你修改了核心配置了以后,点击Reload重新加载数据配置。每次启动solr服务器或者修改了数据配置以后,都要在左侧执行 full-import命令刷新。现在我们点击一下 Execute 按钮,就可以刷新。solr会启动一个线程进行刷新,在刷新完成前,你依然可以访问数据,不过只能访问到旧的数据。点击Refresh Status可以刷新线程的状态。点击 Raw Status-Output 就可以查看到最新的刷新线程运行的状态。当出现 Indexing completed. Added/Updated: 16 documents. Deleted 0 documents. (Duration: 02s) 的提示,说明刷新已经完成。
除了点击按钮以外,你也可以直接用Get方法访问
http://localhost:8983/solr/db/dataimport?command=full-import&wt=json
来刷新数据和配置。
用Get方法访问 http://localhost:8983/solr/db/dataimport?command=status&wt=json
来获得刷新线程的状态。
下拉列表Core Selector下方,点击Query,就来到了查询页面。等上面提到的刷新完成后,就可以查看到数据了。效果如图所示:
图中右上角的链接是一个Web api 的地址,用户可以用GET方法访问这个地址来获取数据。数据格式如右下部分json格式所示。中间栏,q文本域里面是查询参数。默认的 *:* 表示查询所有记录。 start, rows 分别表示开始的行数和显示出来的行数。start从0开始,默认start等于0,rows等于10。
name:*11* 表示查找name属性包含字符串11的记录。
name:*11* OR name:*DATA* 表示查找name属性包含11或者name属性包含DATA的记录。注意 OR 的左右都有英语空格。
NOT name:*11* 表示查找name 属性不包含11的记录。注意NOT和name之间有英语空格。
name:*le* AND price:[19 TO 10000] 表示查找name属性包含le字符串并且价格在19到10000之间的记录。注意TO和AND的左右两边有英语空格。
price:{350 TO 399] 查找价格在350到399之间的记录。{ 或 } 表示不包含边界值, [ 或 ] 表示包含边界值。
price:{350 TO *] 查找大于350的记录,不包含350。
price:{* TO 350] 查找小于等于350的记录。
(name:USB AND name:ta)OR(name:USB OR name:ta) 英文圆括号用来提高逻辑运算符的优先级。
五、连接MySQL
下面我们用连接一张表来演示如何连接MySQL。
使用solr stop -all
确保关闭solr。我们在已有例子的基础上进行修改。复制 E:\blog\test1\solr-6.3.0\example\example-DIH\solr 下的db文件夹,粘贴重命名为db2。
db2 下面的 lib 文件夹下,删除hsqldb-1.8.0.10.jar 文件,把文件 mysql-connector-java-5.1.40.jar 放到lib文件夹下面。在db2\conf文件夹下面,用编辑器打开solrconfig.xml文件,找到下面几行:
<lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" /><lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" /><lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" /><lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
- 1
- 2
- 3
- 4
- 5
在这几行代码下面紧跟着另起一行,加一个lib标签,内容如下:
<lib dir="E:/blog/test1/solr-6.3.0/example/example-DIH/solr/db2/lib/" regex="mysql-connector-java-5.1.40.jar" />
- 1
dir属性是指mysql驱动jar文件所在文件夹的硬盘路径。注意路径分隔符建议使用 / 。这个例子,所有的字符编码都使用了UTF-8。数据库也使用了UTF-8。
mysql中的数据结构如下:
CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */;use db1;CREATE TABLE `t_book` (`c_id` varchar(100) NOT NULL,`c_name` varchar(45) DEFAULT NULL,`c_isbn` varchar(45) DEFAULT NULL,`c_price` decimal(5,2) DEFAULT NULL,PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
编辑 db-data-config.xml 文件,内容如下:
<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/db1" user="test_user" encoding="UTF-8"password="123456"/><document><entity name="jynbook" processor="SqlEntityProcessor" pk="id"query="select c_id,c_name,c_isbn from t_book"><field name="id" column="c_id" /> <field name="name" column="c_name" /> <field name="isbn" column="c_isbn" /></entity></document>
</dataConfig>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
编辑 managed-schema 文件,换成下面的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Solr managed schema - automatically generated - DO NOT EDIT -->
<schema name="example-DIH-db2" version="1.6"><uniqueKey>id</uniqueKey><fieldType name="alphaOnlySort" class="solr.TextField" omitNorms="true" sortMissingLast="true"><analyzer><tokenizer class="solr.KeywordTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.TrimFilterFactory"/><filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replace="all" replacement=""/></analyzer></fieldType><fieldType name="ancestor_path" class="solr.TextField"><analyzer type="index"><tokenizer class="solr.KeywordTokenizerFactory"/></analyzer><analyzer type="query"><tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/"/></analyzer></fieldType><fieldType name="binary" class="solr.BinaryField"/><fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/><fieldType name="currency" class="solr.CurrencyField" currencyConfig="currency.xml" defaultCurrency="USD" precisionStep="8"/><fieldType name="date" class="solr.TrieDateField" positionIncrementGap="0" precisionStep="0"/><fieldType name="descendent_path" class="solr.TextField"><analyzer type="index"><tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/"/></analyzer><analyzer type="query"><tokenizer class="solr.KeywordTokenizerFactory"/></analyzer></fieldType><fieldType name="double" class="solr.TrieDoubleField" positionIncrementGap="0" precisionStep="0"/><fieldType name="float" class="solr.TrieFloatField" positionIncrementGap="0" precisionStep="0"/><fieldType name="ignored" class="solr.StrField" indexed="false" stored="false" multiValued="true"/><fieldType name="int" class="solr.TrieIntField" positionIncrementGap="0" precisionStep="0"/><fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/><fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" maxDistErr="0.001" distErrPct="0.025" distanceUnits="kilometers"/><fieldType name="long" class="solr.TrieLongField" positionIncrementGap="0" precisionStep="0"/><fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.KeywordTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/></analyzer></fieldType><fieldType name="payloads" class="solr.TextField" indexed="true" stored="false"><analyzer><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/></analyzer></fieldType><fieldType name="phonetic" class="solr.TextField" indexed="true" stored="false"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/></analyzer></fieldType><fieldType name="point" class="solr.PointType" subFieldSuffix="_d" dimension="2"/><fieldType name="random" class="solr.RandomSortField" indexed="true"/><fieldType name="string" class="solr.StrField" sortMissingLast="true"/><fieldType name="tdate" class="solr.TrieDateField" positionIncrementGap="0" precisionStep="6"/><fieldType name="tdouble" class="solr.TrieDoubleField" positionIncrementGap="0" precisionStep="8"/><fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ar.txt" ignoreCase="true"/><filter class="solr.ArabicNormalizationFilterFactory"/><filter class="solr.ArabicStemFilterFactory"/></analyzer></fieldType><fieldType name="text_bg" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_bg.txt" ignoreCase="true"/><filter class="solr.BulgarianStemFilterFactory"/></analyzer></fieldType><fieldType name="text_ca" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ElisionFilterFactory" articles="lang/contractions_ca.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ca.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Catalan"/></analyzer></fieldType><fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.CJKWidthFilterFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.CJKBigramFilterFactory"/></analyzer></fieldType><fieldType name="text_ckb" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.SoraniNormalizationFilterFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ckb.txt" ignoreCase="true"/><filter class="solr.SoraniStemFilterFactory"/></analyzer></fieldType><fieldType name="text_cz" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_cz.txt" ignoreCase="true"/><filter class="solr.CzechStemFilterFactory"/></analyzer></fieldType><fieldType name="text_da" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_da.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Danish"/></analyzer></fieldType><fieldType name="text_de" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_de.txt" ignoreCase="true"/><filter class="solr.GermanNormalizationFilterFactory"/><filter class="solr.GermanLightStemFilterFactory"/></analyzer></fieldType><fieldType name="text_el" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.GreekLowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_el.txt" ignoreCase="false"/><filter class="solr.GreekStemFilterFactory"/></analyzer></fieldType><fieldType name="text_en" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.EnglishPossessiveFilterFactory"/><filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/><filter class="solr.PorterStemFilterFactory"/></analyzer><analyzer type="query"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/><filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.EnglishPossessiveFilterFactory"/><filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/><filter class="solr.PorterStemFilterFactory"/></analyzer></fieldType><fieldType name="text_en_splitting" class="solr.TextField" autoGeneratePhraseQueries="true" positionIncrementGap="100"><analyzer type="index"><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/><filter class="solr.WordDelimiterFilterFactory" catenateNumbers="1" generateNumberParts="1" splitOnCaseChange="1" generateWordParts="1" catenateAll="0" catenateWords="1"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/><filter class="solr.PorterStemFilterFactory"/></analyzer><analyzer type="query"><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/><filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/><filter class="solr.WordDelimiterFilterFactory" catenateNumbers="0" generateNumberParts="1" splitOnCaseChange="1" generateWordParts="1" catenateAll="0" catenateWords="0"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/><filter class="solr.PorterStemFilterFactory"/></analyzer></fieldType><fieldType name="text_en_splitting_tight" class="solr.TextField" autoGeneratePhraseQueries="true" positionIncrementGap="100"><analyzer><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.SynonymFilterFactory" expand="false" ignoreCase="true" synonyms="synonyms.txt"/><filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/><filter class="solr.WordDelimiterFilterFactory" catenateNumbers="1" generateNumberParts="0" generateWordParts="0" catenateAll="0" catenateWords="1"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/><filter class="solr.EnglishMinimalStemFilterFactory"/><filter class="solr.RemoveDuplicatesTokenFilterFactory"/></analyzer></fieldType><fieldType name="text_es" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_es.txt" ignoreCase="true"/><filter class="solr.SpanishLightStemFilterFactory"/></analyzer></fieldType><fieldType name="text_eu" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_eu.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Basque"/></analyzer></fieldType><fieldType name="text_fa" class="solr.TextField" positionIncrementGap="100"><analyzer><charFilter class="solr.PersianCharFilterFactory"/><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.ArabicNormalizationFilterFactory"/><filter class="solr.PersianNormalizationFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_fa.txt" ignoreCase="true"/></analyzer></fieldType><fieldType name="text_fi" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_fi.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Finnish"/></analyzer></fieldType><fieldType name="text_fr" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ElisionFilterFactory" articles="lang/contractions_fr.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_fr.txt" ignoreCase="true"/><filter class="solr.FrenchLightStemFilterFactory"/></analyzer></fieldType><fieldType name="text_ga" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ElisionFilterFactory" articles="lang/contractions_ga.txt" ignoreCase="true"/><filter class="solr.StopFilterFactory" words="lang/hyphenations_ga.txt" ignoreCase="true"/><filter class="solr.IrishLowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ga.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Irish"/></analyzer></fieldType><fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/></analyzer><analyzer type="query"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/><filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/><filter class="solr.LowerCaseFilterFactory"/></analyzer></fieldType><fieldType name="text_general_rev" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.ReversedWildcardFilterFactory" maxPosQuestion="2" maxFractionAsterisk="0.33" maxPosAsterisk="3" withOriginal="true"/></analyzer><analyzer type="query"><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/><filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/></analyzer></fieldType><fieldType name="text_gl" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_gl.txt" ignoreCase="true"/><filter class="solr.GalicianStemFilterFactory"/></analyzer></fieldType><fieldType name="text_hi" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.IndicNormalizationFilterFactory"/><filter class="solr.HindiNormalizationFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_hi.txt" ignoreCase="true"/><filter class="solr.HindiStemFilterFactory"/></analyzer></fieldType><fieldType name="text_hu" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_hu.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Hungarian"/></analyzer></fieldType><fieldType name="text_hy" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_hy.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Armenian"/></analyzer></fieldType><fieldType name="text_id" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_id.txt" ignoreCase="true"/><filter class="solr.IndonesianStemFilterFactory" stemDerivational="true"/></analyzer></fieldType><fieldType name="text_it" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ElisionFilterFactory" articles="lang/contractions_it.txt" ignoreCase="true"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_it.txt" ignoreCase="true"/><filter class="solr.ItalianLightStemFilterFactory"/></analyzer></fieldType><fieldType name="text_ja" class="solr.TextField" autoGeneratePhraseQueries="false" positionIncrementGap="100"><analyzer><tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/><filter class="solr.JapaneseBaseFormFilterFactory"/><filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt"/><filter class="solr.CJKWidthFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ja.txt" ignoreCase="true"/><filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/><filter class="solr.LowerCaseFilterFactory"/></analyzer></fieldType><fieldType name="text_lv" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_lv.txt" ignoreCase="true"/><filter class="solr.LatvianStemFilterFactory"/></analyzer></fieldType><fieldType name="text_nl" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_nl.txt" ignoreCase="true"/><filter class="solr.StemmerOverrideFilterFactory" dictionary="lang/stemdict_nl.txt" ignoreCase="false"/><filter class="solr.SnowballPorterFilterFactory" language="Dutch"/></analyzer></fieldType><fieldType name="text_no" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_no.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Norwegian"/></analyzer></fieldType><fieldType name="text_pt" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_pt.txt" ignoreCase="true"/><filter class="solr.PortugueseLightStemFilterFactory"/></analyzer></fieldType><fieldType name="text_ro" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_ro.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Romanian"/></analyzer></fieldType><fieldType name="text_ru" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_ru.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Russian"/></analyzer></fieldType><fieldType name="text_sv" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_sv.txt" ignoreCase="true"/><filter class="solr.SnowballPorterFilterFactory" language="Swedish"/></analyzer></fieldType><fieldType name="text_th" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.ThaiTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_th.txt" ignoreCase="true"/></analyzer></fieldType><fieldType name="text_tr" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ApostropheFilterFactory"/><filter class="solr.TurkishLowerCaseFilterFactory"/><filter class="solr.StopFilterFactory" words="lang/stopwords_tr.txt" ignoreCase="false"/><filter class="solr.SnowballPorterFilterFactory" language="Turkish"/></analyzer></fieldType><fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100"><analyzer><tokenizer class="solr.WhitespaceTokenizerFactory"/></analyzer></fieldType><fieldType name="tfloat" class="solr.TrieFloatField" positionIncrementGap="0" precisionStep="8"/><fieldType name="tint" class="solr.TrieIntField" positionIncrementGap="0" precisionStep="8"/><fieldType name="tlong" class="solr.TrieLongField" positionIncrementGap="0" precisionStep="8"/><field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/><field name="name" type="string" indexed="true" stored="true"/><field name="isbn" type="string" indexed="true" stored="true"/><field name="_version_" type="long" indexed="true" stored="true"/>
</schema>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
注意schema标签的name改成example-DIH-db2,主键必须是id,必须要有id属性。db-data-config.xml 里面的field标签和 schema内部的field标签要对应。这样执行命令:
solr -e dih
- 1
启动后访问 http://localhost:8983/solr 。可以看到db2核心。按照上面提到的下拉列表里面选择db2、点击Dataimport、Reload、Execute、Query,最后执行 Execute Query,就可以看到返回的JSON数据了。成功的界面如下:
系列教程
solr6.3与MySQL结合使用的简明教程(一)
solr6.3与MySQL结合使用的简明教程(二)
solr6.3与MySQL结合使用的简明教程(三)——SolrException: undefined field text错误如何解决
solr6.3与MySQL结合使用的简明教程(四)
solr6.3与MySQL结合使用的简明教程(五)——中文分词
Solr与mysql数据同步相关推荐
- solr与mysql数据同步的方案
1.使用activeMQ http://blog.csdn.net/zhou2s_101216/article/details/77855413 2.通过配置实现定时同步 http://blog.cs ...
- MYSQL数据同步到ES7
** 概述 ** 现在的项目数据量越来越大,全文检索功能使用场景也越来越普遍. 而我们一般的生产数据是在mysql,或其它一些数据库, 我们的产品数据就是mysql,而又要使用全文检索, 所以要把my ...
- MySql数据同步(双机热备)已正式应用上平台
经过一个多月的测试MYSQL的双机同步数据还是很不错的. 在家庭ADSL的4M的带宽下,有10个人在应用此网络,MYSQL数据同步还是照样正常,我想在正常的平台环境肯定更即时,效率更高! 但同时需要注 ...
- MySQL数据同步的一个很初级运用
PHP程序员基本上都离不开MySQL,今天转载一篇关于MySQL数据同步的一个很初级运用. 今天由于工作需要,配置了一下主从同步,这里记录一下配置过程,以备查阅. 事先度娘了一番,主从同步需要保证主从 ...
- datax实现mysql数据同步
前言 DataX 是阿里内部广泛使用的离线数据同步工具/平台,可以实现包括 MySQL.Oracle.HDFS.Hive.OceanBase.HBase.OTS.ODPS 等各种异构数据源之间高效的数 ...
- liunx下通过Canal将MySQL数据同步到Elasticsearch
liunx下通过Canal将MySQL数据同步到Elasticsearch 一.canal背景信息 Canal是Github中开源的ETL(Extract Transform Load)软件 cana ...
- canal实现mysql数据同步
前言 canal是实现mysql数据备份,异地灾备,异地数据同步等重要的中间件,在实际的业务场景中有着广泛的使用,本文基于小编所在项目中一个异地数据同步的场景为例,通过案例演示下利用canal实现my ...
- ES和MySQL数据同步(简略版)
一.在docker配置elasticsearch和kibana 1.注:elasticsearch和kibana的版本要一致 elesticsearch --拉取镜像 docker pull dock ...
- es与mysql数据同步 (go-mysql-es)
es与mysql数据同步 (go-mysql-es) 简介 go-mysql-elasticsearch是一款开源的高性能的Mysql数据同步ES的工具,其由go语言开发,编译及使用非常 简单.go- ...
最新文章
- java ognl 性能_OGNL详解
- [JAVA][Liferay] Configure sharding in multiple sites
- 百度智能小程序开源联盟成立,首批12家成员签约
- PacketGetAdapterNames返回false
- ubuntu 12.10 php55安装过程
- Qt工作笔记-两种方法从容器中筛选出父类和子类(继承法、typeid法)
- 360小程序将上线,机会在哪里?
- 系统引导的过程一般包括如下几步: 【 】_20190317工控维修日记(西门子系统第二讲)...
- 华为网络技术培训笔记之常用网络工具(一)
- php和python-PHP和Python性能比较:放弃PHP改用Python
- 多线程三大概念:并发并行,阻塞,同异步
- CAD常用命令大全(快捷键和命令说明)
- php文字怎么居中,PHP图片文字合成居中
- nova虚拟机迁移一
- 磁珠 符号_FB是磁珠的符号 | 学步园
- matlab波形叠加,matlab程序两列波相向传播叠加波形图和动画.doc
- 调整计算机繁体,在线繁体转换
- 基因组数据分析在生物医学领域的应用
- 【游戏客户端】制作节奏大师Like音游(全)
- 红米2刷android4.4,【图片】红米2三网通刷CyanogenMod CM11 Android 4.4.4_红米2吧_百度贴吧...