php操作solr7.5通過mysql導入的數據
阿新 • • 發佈:2018-12-04
現在 休閑 ras 配置 name () multi 測試 lib solr安裝與配置
下載
下載地址:http://www.apache.org/dyn/closer.lua/lucene/solr/7.5.0
下載後直接解壓。
配置
創建新core
進入解壓後目錄(後面有~/solr-root/代替),進入~/solr-root/server/solr/,新建目錄,目錄名自己隨便定義,我定義的是test_core,然後將~/solr-root/server/solr/configsets/_default/目錄中的conf目錄復制到剛才新建的test_core中。
data-config.xml
新建data-config.xml文件,然後將下面內容寫入文件中。
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/emails" user="root" password="root" batchSize="-1" /> <document> <entity name="users" dataSource="source1" query="select id,name,id_card,staff_level,status from users"> <field column="id" name="id" /> <field column="name" name="name" /> <field column="id_card" name="id_card" /> <field column="staff_level" name="staff_level" /> <field column="status" name="status" /> </entity> </document> </dataConfig>
說明:
emails是庫名,下面幾個field定義的就是select出來的那幾個字段。
solrconfig.xml
編輯solrconfig.xml文件,搜索“requestHandler”,講下面代碼加入並列的requestHandler配置塊中:
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
managed-schema
編輯managed-schema文件,保留一下三個field:
<field name="_version_" type="plong" 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"/>
編輯其它field,跟data-config.xml文件中的field對應:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="string" indexed="true" stored="true"/>
<field name="id_card" type="string" indexed="true" stored="true"/>
<field name="staff_level" type="string" indexed="true" stored="true"/>
<field name="status" type="string" indexed="true" stored="true"/>
下載數據庫鏈接庫
下載地址:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
將剛才現在的mysql-connector-java-8.0.11.jar 和~/solr-root/dist 目錄下的
solr-dataimporthandler-extras-7.5.0.jar 、solr-dataimporthandler-7.5.0.jar
這三個jar包一起拷貝到~/solr-root/server/solr-webapp/webapp/WEB-INF/lib目錄下
啟動solr
執行啟動命令:
./~/solr-root/bin/solr start
啟動後訪問:127.0.0.1:8983,顯示如下界面:
導入mysql數據
選擇剛才新建的test_core。
執行完成後:
測試
PHP操作solr
安裝solr擴展。
查詢
直接通過curl訪問類似下面的url即可:
增加數據
$client = new \SolrClient($options);
$data = array(
array(
‘id‘ => ‘EN80922032‘,
‘name‘ => ‘男士打磨直筒休閑牛仔褲‘,
‘brand‘ => ‘ENERGIE‘,
‘cat‘ => ‘牛仔褲‘,
‘price‘ => ‘1870.00‘
),
array(
‘id‘ => ‘EN70906025‘,
‘name‘ => ‘品牌LOGO翻領拉鏈外套‘,
‘brand‘ => ‘ENERGIE‘,
‘cat‘ => ‘外套‘,
‘price‘ => ‘1680.00‘
),
//自定義數據。。。
);
foreach($data as $key => $value) {
$doc = new \SolrInputDocument();
foreach($value as $key2 =>$value2) {
$doc->addField($key2,$value2);
}
$client->addDocument($doc);
}
$client->commit();die;
php操作solr7.5通過mysql導入的數據