/usr/local/solr/ 目錄cd /usr/local/solr/solr-5.5.3/bin ./solr start ./solr create -c demo ./solr stop -all
Core 目錄生成於 server/solr/demo。
mkdir -p /usr/local/solr/apache-tomcat-8.5.4/webapps/solrsolr-5.5.3/server/solr-webapp/webapp/* → webapps/solr/webapps/solr/solrhome,拷貝 server/solr/*(含 demo core)至其中。server/lib/ext/*.jar、dist/solr-dataimporthandler-*.jar、dist/solr-dataimporthandler-extras-*.jar → webapps/solr/WEB-INF/lib/server/resources/log4j.properties → webapps/solr/WEB-INF/classes/web.xml 添加 solr/home 環境變量:<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/solr/apache-tomcat-8.5.4/webapps/solr/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
solrhome/demo/conf/solrconfig.xml 中 <lib> 路徑為絕對路徑(指向 solr-5.5.3/contrib/.../lib、dist/)。https://IP:8080/solr 看到 Core demo。mysql-connector-java-5.1.22-bin.jar → WEB-INF/lib/solrhome/demo/conf/data-config.xml:<dataConfig>
<dataSource name="solrdemo" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.229.1:3306/solrdemo"
user="root" password="root"/>
<document>
<entity name="user" dataSource="solrdemo"
query="select id, name, address from user where valid=1"
deltaImportQuery="select id,name,address from user where ID='${dataimporter.delta.id}'"
deltaQuery="select id from user where updatetime > '${dataimporter.last_index_time}'"
deletedPkQuery="select id from user where valid=0">
<field column="id" name="id"/>
<field column="name" name="name"/>
<field column="address" name="address"/>
</entity>
</document>
</dataConfig>
managed-schema 添加欄位:<field name="name" type="string" indexed="true" stored="true" required="true"/> <field name="address" type="string" indexed="true" stored="true" required="true"/>
solrconfig.xml 註冊 DataImportHandler:<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"><str name="config">data-config.xml</str></lst> </requestHandler>
apache-solr-dataimportscheduler.jar → WEB-INF/lib/web.xml 添加監聽器:<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
solrhome/conf/dataimport.properties:syncEnabled=1 syncCores=demo server=192.168.229.100 port=8080 webapp=solr params=/dataimport?command=delta-import&clean=false&commit=true interval=1 reBuildIndexInterval=2 reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true reBuildIndexBeginTime=03:00:00
valid=0 → 通過 deletedPkQuery 自動從索引移除。