如果您想訪問不同於 '/select' 的 RequestHandler,您可以透過 https://php.dev.org.tw/manual/en/solrclient.setservlet.php 更改它
如何在 PHP 中使用 Apache Solr 擴充的範例
範例 #1 BootStrap 檔案的內容
<?php
/* Solr 伺服器的網域名稱 */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');
/* 是否以安全模式運行 */
define('SOLR_SECURE', true);
/* 連線的 HTTP 埠 */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));
/* HTTP 基本驗證的使用者名稱 */
define('SOLR_SERVER_USERNAME', 'admin');
/* HTTP 基本驗證的密碼 */
define('SOLR_SERVER_PASSWORD', 'changeit');
/* HTTP 連線逾時 */
/* 這是允許 http 資料傳輸操作的最大時間(以秒為單位)。預設值為 30 秒 */
define('SOLR_SERVER_TIMEOUT', 10);
/* PEM 格式的私鑰 + 私有憑證(按此順序串聯)的檔案名稱 */
define('SOLR_SSL_CERT', 'certs/combo.pem');
/* 僅 PEM 格式的私有憑證的檔案名稱 */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');
/* PEM 格式的私鑰的檔案名稱 */
define('SOLR_SSL_KEY', 'certs/solr.key');
/* PEM 格式的私鑰檔案的密碼 */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');
/* 包含一個或多個用於驗證對等方的 CA 憑證的檔案名稱 */
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');
/* 包含多個用於驗證對等方的 CA 憑證的目錄名稱 */
define('SOLR_SSL_CAPATH', 'certs/');
?>
範例 #2 新增文件到索引
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');
$updateResponse = $client->addDocument($doc);
print_r($updateResponse->getResponse());
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 446 ) )
範例 #3 將一個文件合併到另一個文件
<?php
include "bootstrap.php";
$doc = new SolrDocument();
$second_doc = new SolrDocument();
$doc->addField('id', 1123);
$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";
$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat = 'Information Technology';
$second_doc->addField('cat', 'Lucene Search');
$second_doc->merge($doc, true);
print_r($second_doc->toArray());
?>
上述範例會輸出類似以下的內容
Array ( [document_boost] => 0 [field_count] => 3 [fields] => Array ( [0] => SolrDocumentField Object ( [name] => cat [boost] => 0 [values] => Array ( [0] => Software [1] => Custom Search [2] => Information Technology ) ) [1] => SolrDocumentField Object ( [name] => id [boost] => 0 [values] => Array ( [0] => 1123 ) ) [2] => SolrDocumentField Object ( [name] => features [boost] => 0 [values] => Array ( [0] => PHP Client Side [1] => Fast development cycles ) ) ) )
範例 #4 搜尋文件 - SolrObject 回應
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setQuery('lucene');
$query->setStart(0);
$query->setRows(50);
$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');
$query_response = $client->query($query);
$response = $query_response->getResponse();
print_r($response);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 1 [params] => SolrObject Object ( [wt] => xml [rows] => 50 [start] => 0 [indent] => on [q] => lucene [fl] => cat,features,id,timestamp [version] => 2.2 ) ) [response] => SolrObject Object ( [numFound] => 3 [start] => 0 [docs] => Array ( [0] => SolrObject Object ( [cat] => Array ( [0] => Software [1] => Lucene ) [id] => 334456 ) [1] => SolrObject Object ( [cat] => Array ( [0] => Software [1] => Lucene ) [id] => 334455 ) [2] => SolrObject Object ( [cat] => Array ( [0] => software [1] => search ) [features] => Array ( [0] => Advanced Full-Text Search Capabilities using Lucene [1] => Optimized for High Volume Web Traffic [2] => Standards Based Open Interfaces - XML and HTTP [3] => Comprehensive HTML Administration Interfaces [4] => Scalability - Efficient Replication to other Solr Search Servers [5] => Flexible and Adaptable with XML configuration and Schema [6] => Good unicode support: héllo (hello with an accent over the e) ) [id] => SOLR1000 [timestamp] => 2009-09-04T20:38:55.906 ) ) ) )
範例 #5 搜尋文件 - SolrDocument 回應
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setQuery('lucene');
$query->setStart(0);
$query->setRows(50);
$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');
$query_response = $client->query($query);
$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);
$response = $query_response->getResponse();
print_r($response);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 1 [params] => SolrObject Object ( [wt] => xml [rows] => 50 [start] => 0 [indent] => on [q] => lucene [fl] => cat,features,id,timestamp [version] => 2.2 ) ) [response] => SolrObject Object ( [numFound] => 3 [start] => 0 [docs] => Array ( [0] => SolrDocument Object ( [_hashtable_index:SolrDocument:private] => 19740 ) [1] => SolrDocument Object ( [_hashtable_index:SolrDocument:private] => 25485 ) [2] => SolrDocument Object ( [_hashtable_index:SolrDocument:private] => 25052 ) ) ) )
範例 #6 簡單的 TermsComponent 範例 - 基本
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setTerms(true);
$query->setTermsField('cat');
$updateResponse = $client->query($query);
print_r($updateResponse->getResponse());
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 2 ) [terms] => SolrObject Object ( [cat] => SolrObject Object ( [electronics] => 14 [Lucene] => 4 [Software] => 4 [memory] => 3 [card] => 2 [connector] => 2 [drive] => 2 [graphics] => 2 [hard] => 2 [monitor] => 2 ) ) )
範例 #7 簡單的 TermsComponent 範例 - 使用前綴
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setTerms(true);
// 只回傳以 $prefix 開頭的詞彙
$prefix = 'c';
$query->setTermsField('cat')->setTermsPrefix($prefix);
$updateResponse = $client->query($query);
print_r($updateResponse->getResponse());
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 1 ) [terms] => SolrObject Object ( [cat] => SolrObject Object ( [card] => 2 [connector] => 2 [camera] => 1 [copier] => 1 ) ) )
範例 #8 簡單的 TermsComponent 範例 - 指定最小頻率
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setTerms(true);
/* 只回傳以 $prefix 開頭的詞彙 */
$prefix = 'c';
/* 只回傳出現頻率大於等於 2 的詞彙 */
$min_frequency = 2;
$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);
$updateResponse = $client->query($query);
print_r($updateResponse->getResponse());
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 0 ) [terms] => SolrObject Object ( [cat] => SolrObject Object ( [card] => 2 [connector] => 2 ) ) )
範例 #9 簡單的 Facet 範例
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery('*:*');
$query->setFacet(true);
$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);
$updateResponse = $client->query($query);
$response_array = $updateResponse->getResponse();
$facet_data = $response_array->facet_counts->facet_fields;
print_r($facet_data);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [cat] => SolrObject Object ( [electronics] => 14 [memory] => 3 [Lucene] => 2 [Software] => 2 [card] => 2 [connector] => 2 [drive] => 2 [graphics] => 2 [hard] => 2 [monitor] => 2 [search] => 2 [software] => 2 ) [name] => SolrObject Object ( [gb] => 6 [1] => 3 [184] => 3 [2] => 3 [3200] => 3 [400] => 3 [500] => 3 [ddr] => 3 [i] => 3 [ipod] => 3 [memori] => 3 [pc] => 3 [pin] => 3 [pod] => 3 [sdram] => 3 [system] => 3 [unbuff] => 3 [canon] => 2 [corsair] => 2 [drive] => 2 [hard] => 2 [mb] => 2 [n] => 2 [power] => 2 [retail] => 2 [video] => 2 [x] => 2 ) )
範例 #10 簡單的面位(Facet)範例 - 使用可選欄位覆寫最小計數 (mincount)
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery('*:*');
$query->setFacet(true);
$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');
$updateResponse = $client->query($query);
$response_array = $updateResponse->getResponse();
$facet_data = $response_array->facet_counts->facet_fields;
print_r($facet_data);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [cat] => SolrObject Object ( [electronics] => 14 [memory] => 3 [Lucene] => 2 [Software] => 2 [card] => 2 [connector] => 2 [drive] => 2 [graphics] => 2 [hard] => 2 [monitor] => 2 [search] => 2 [software] => 2 ) [name] => SolrObject Object ( [gb] => 6 ) )
範例 #11 日期切面範例
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery('*:*');
$query->setFacet(true);
$query->addFacetDateField('manufacturedate_dt');
$query->setFacetDateStart('2006-02-13T00:00:00Z');
$query->setFacetDateEnd('2012-02-13T00:00:00Z');
$query->setFacetDateGap('+1YEAR');
$query->setFacetDateHardEnd(1);
$query->addFacetDateOther('before');
$updateResponse = $client->query($query);
$response_array = $updateResponse->getResponse();
$facet_data = $response_array->facet_counts->facet_dates;
print_r($facet_data);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [manufacturedate_dt] => SolrObject Object ( [2006-02-13T00:00:00Z] => 9 [2007-02-13T00:00:00Z] => 0 [2008-02-13T00:00:00Z] => 0 [2009-02-13T00:00:00Z] => 0 [2010-02-13T00:00:00Z] => 0 [2011-02-13T00:00:00Z] => 0 [gap] => +1YEAR [start] => 2006-02-13T00:00:00Z [end] => 2012-02-13T00:00:00Z [before] => 2 ) )
範例 #12 連線到啟用 SSL 的伺服器
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'timeout' => SOLR_SERVER_TIMEOUT,
'secure' => SOLR_SECURE,
'ssl_cert' => SOLR_SSL_CERT_ONLY,
'ssl_key' => SOLR_SSL_KEY,
'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
'ssl_cainfo' => SOLR_SSL_CAINFO,
);
$client = new SolrClient($options);
$query = new SolrQuery('*:*');
$query->setFacet(true);
$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');
$updateResponse = $client->query($query);
$response_array = $updateResponse->getResponse();
$facet_data = $response_array->facet_counts->facet_fields;
print_r($facet_data);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [cat] => SolrObject Object ( [electronics] => 14 [memory] => 3 [Lucene] => 2 [Software] => 2 [card] => 2 [connector] => 2 [drive] => 2 [graphics] => 2 [hard] => 2 [monitor] => 2 [search] => 2 [software] => 2 ) [name] => SolrObject Object ( [gb] => 6 ) )
範例 #13 摺疊 SolrQuery
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);
$client = new SolrClient($options);
$query = new SolrQuery('*:*');
$collapseFunction = new SolrCollapseFunction('manu_id_s');
$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);
$query
->collapse($collapseFunction)
->setRows(4);
$queryResponse = $client->query($query);
$response = $queryResponse->getResponse();
print_r($response);
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 1 [params] => SolrObject Object ( [q] => *:* [indent] => on [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore} [rows] => 4 [version] => 2.2 [wt] => xml ) ) [response] => SolrObject Object ( [numFound] => 14 [start] => 0 [docs] => Array ( [0] => SolrObject Object ( [id] => SP2514N [name] => Array ( [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133 ) [manu] => Array ( [0] => Samsung Electronics Co. Ltd. ) [manu_id_s] => samsung [cat] => Array ( [0] => electronics [1] => hard drive ) [features] => Array ( [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133 [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor ) [price] => Array ( [0] => 92 ) [popularity] => Array ( [0] => 6 ) [inStock] => Array ( [0] => 1 ) [manufacturedate_dt] => 2006-02-13T15:26:37Z [store] => Array ( [0] => 35.0752,-97.032 ) [_version_] => 1510294336412057600 ) [1] => SolrObject Object ( [id] => 6H500F0 [name] => Array ( [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300 ) [manu] => Array ( [0] => Maxtor Corp. ) [manu_id_s] => maxtor [cat] => Array ( [0] => electronics [1] => hard drive ) [features] => Array ( [0] => SATA 3.0Gb/s, NCQ [1] => 8.5ms seek [2] => 16MB cache ) [price] => Array ( [0] => 350 ) [popularity] => Array ( [0] => 6 ) [inStock] => Array ( [0] => 1 ) [store] => Array ( [0] => 45.17614,-93.87341 ) [manufacturedate_dt] => 2006-02-13T15:26:37Z [_version_] => 1510294336449806336 ) [2] => SolrObject Object ( [id] => F8V7067-APL-KIT [name] => Array ( [0] => Belkin Mobile Power Cord for iPod w/ Dock ) [manu] => Array ( [0] => Belkin ) [manu_id_s] => belkin [cat] => Array ( [0] => electronics [1] => connector ) [features] => Array ( [0] => car power adapter, white ) [weight] => Array ( [0] => 4 ) [price] => Array ( [0] => 19.95 ) [popularity] => Array ( [0] => 1 ) [inStock] => Array ( [0] => ) [store] => Array ( [0] => 45.18014,-93.87741 ) [manufacturedate_dt] => 2005-08-01T16:30:25Z [_version_] => 1510294336458194944 ) [3] => SolrObject Object ( [id] => MA147LL/A [name] => Array ( [0] => Apple 60 GB iPod with Video Playback Black ) [manu] => Array ( [0] => Apple Computer Inc. ) [manu_id_s] => apple [cat] => Array ( [0] => electronics [1] => music ) [features] => Array ( [0] => iTunes, Podcasts, Audiobooks [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight [3] => Up to 20 hours of battery life [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication ) [includes] => Array ( [0] => earbud headphones, USB cable ) [weight] => Array ( [0] => 5.5 ) [price] => Array ( [0] => 399 ) [popularity] => Array ( [0] => 10 ) [inStock] => Array ( [0] => 1 ) [store] => Array ( [0] => 37.7752,-100.0232 ) [manufacturedate_dt] => 2005-10-12T08:00:00Z [_version_] => 1510294336562003968 ) ) ) )
範例 #14 Solr 即時獲取 (RTG) 範例 SolrClient::getById()
<?php
include "bootstrap.php";
$options = array(
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);
$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());
?>
上述範例會輸出類似以下的內容
SolrObject Object ( [doc] => SolrObject Object ( [id] => GB18030TEST [name] => Array ( [0] => Test with some GB18030 encoded characters ) [features] => Array ( [0] => No accents here [1] => 这是一个功能 [2] => This is a feature (translated) [3] => 这份文件是很有光泽 [4] => This document is very shiny (translated) ) [price] => Array ( [0] => 0 ) [inStock] => Array ( [0] => 1 ) [_version_] => 1510294336239042560 ) )
如果您想訪問不同於 '/select' 的 RequestHandler,您可以透過 https://php.dev.org.tw/manual/en/solrclient.setservlet.php 更改它
從 solr 4.0 開始,waitFlush 參數已被移除。
來源
http://wiki.apache.org/solr/UpdateXmlMessages
$client->commit() 拋出錯誤
[SolrClientException]
更新請求失敗。回應代碼 400。 <?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">400</int>
<int name="QTime">1</int>
</lst>
<lst name="error">
<str name="msg">未知的 commit 參數 'waitFlush'</str>
<int name="code">400</int>
</lst>
</response>
如果您正在使用 Solr 的多核心功能,您可以透過 $options 陣列中的 path 參數來存取核心。
例如:
<?php
$options = array(...., 'path' => 'solr/core0', ...);
?>
從 solr 4.0 開始,waitFlush 參數已被移除。
如果您使用的是 solr 4.0 或更高版本(而且您必須使用),當您執行此操作時
<?php $client->commit(); ?>
你會遇到像這樣的 Solr 錯誤
「未知的 commit 參數 'waitFlush'」
如果你堅持使用這個 PHP Solr 擴充套件和 Solr 4.0 或更高版本,你可以編輯擴充套件的原始碼 (版本 1.0.2) php_solr_client.c。
針對 SolrClient 的 optimize 方法
在第 1490 行
zend_bool waitFlush = 1, waitSearcher = 1;
編輯後
zend_bool waitSearcher = 1;
在第 1493 行
char *waitFlushValue, *waitSearcherValue;
編輯後
zend_bool waitSearcher = 1;
在第 1502 行
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sbb", &maxSegments, &maxSegmentsLen, &waitFlush, &waitSearcher) == FAILURE) {
編輯後
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sb", &maxSegments, &maxSegmentsLen, &waitSearcher) == FAILURE) {
移除第 1509 和 1515 行。
並對 SolrClient 的 commit 方法在第 1561、1564、1573 行進行相同的編輯,並移除第 1580、1586 行。
最後一步,編譯程式碼並安裝。
祝你好運!
如果有人想將這個 solrClient 與 Solr v.4.0 及更高版本一起使用,我準備了我自己的 commit 函式
class solr {
public function delete($query ) {
$this->_client->deleteByQuery($query);
$this->commit();
}
public function commit() {
$solrConfig= // 含有 Solr 主機、埠號、集合路徑 (/solr/my_collection) 的陣列
$solrAddress = $solrConfig['hostname'] . ':' . $solrConfig['port'] . $solrConfig['path'];
$output = array();
$response = exec('curl ' . $solrAddress . '/update?commit=true', $output);
return $output;
}
}
如果你的 Solr 路徑不是 /solr
你應該將以下內容添加到上面的啟動檔案中
define('SOLR_SERVER_PATH', 'my-solr-url');
然後在你的客戶端 PHP 程式碼的 options 陣列中添加一個對應的項目,例如
'path' => SOLR_SERVER_PATH
我在文件中找不到這個,必須查看原始碼才能找到它。
如果你在新安裝的 Solr 上測試這些範例,你需要在新增文件後執行 commit 陳述式,才能在搜尋時收到結果。
例如,將以下內容新增到
<?php $client->commit(); ?>
範例 3 中,以便能夠在使用範例 5 進行搜尋時獲得任何結果。
範例章節中的文件沒有提到在新增文件後需要 commit。
簡而言之,它應該是這樣的
$client = new SolrClient(array('hostname' => '127.0.0.1', 'port' => 8080));
$doc = new SolrInputDocument();
$doc->addField('id', 12345);
$doc->addField('name', '某人');
$result = $client->addDocument($doc);
/* 你還沒完成,你需要 commit */
$client->commit();
現在,如果你查詢,你應該會看到你的文件 =]