设为首页 收藏本站
查看: 404|回复: 0

[经验分享] php solr client demo

[复制链接]

尚未签到

发表于 2016-12-15 07:59:10 | 显示全部楼层 |阅读模式
<?php  // make sure browsers see this page as utf-8 encoded HTML
header('Content-Type: text/html; charset=utf-8');  
$limit = 10;
$query = isset($_REQUEST['q']) ? $_REQUEST['q'] : false;
$results = false;
if ($query) {
// The Apache Solr Client library should be on the include path
// which is usually most easily accomplished by placing in the
// same directory as this script ( . or current directory is a default
// php include path entry in the php.ini)   
require_once('Apache/Solr/Service.php');   
// create a new solr service instance - host, port, and webapp   
// path (all defaults in this example)   
$solr = new Apache_Solr_Service('localhost', 8983, '/solr/');
if ( ! $solr->ping() ) {   
echo 'Solr service not responding.';     
exit;   
}
// if magic quotes is enabled then stripslashes will be needed   
if (get_magic_quotes_gpc() == 1)   {     
$query = stripslashes($query);   
}   
// in production code you'll always want to use a try /catch for any   
// possible exceptions emitted  by searching (i.e. connection   
// problems or a query parsing error)   
try   {     
$results = $solr->search($query, 0, $limit);
}   catch (Exception $e)
{
// in production you'd probably log or email this error to an admin         
// and then show a special message to the user but for this example
// we're going to show the full exception
die("<html><head><title>SEARCH EXCEPTION</title><body><pre>{$e->__toString()}</pre></body></html>");
}
}  
?>
<html>   
<head>     
<title>PHP Solr Client Example</title>   
</head>   
<body>     
<form  accept-charset="utf-8" method="get">      
<label for="q">Search:</label>      
<input id="q" name="q" type="text" value="<?php echo htmlspecialchars($query, ENT_QUOTES, 'utf-8'); ?>"/>      
<input type="submit"/>     
</form>
<?php  
// display results
if ($results) {   
$total = (int) $results->response->numFound;   
$start = min(1, $total);   
$end = min($limit, $total);
?>     
<div>Results <?php echo $start; ?> - <?php echo $end;?> of <?php echo $total; ?>:
</div>     
<ol>
<?php   
// iterate result documents   
foreach ($results->response->docs as $doc)   {
?>      
<li>         
<table style="border: 1px solid black; text-align: left">
<?php     
// iterate document fields / values     
foreach ($doc as $field => $value)     
{
?>           
<tr>            
<th>
<?php echo htmlspecialchars($field, ENT_NOQUOTES, 'utf-8'); ?>
</th>            
<td>
<?php if(is_array($value)){
foreach ($value as $v){
echo htmlspecialchars($v, ENT_NOQUOTES, 'utf-8'). "<br>";
}
}
else{
echo htmlspecialchars($value, ENT_NOQUOTES, 'utf-8');
}
?>
</td>           
</tr>
<?php     } ?>         
</table>       </li>
<?php   } ?>     
</ol> <?php } ?>  
</body> </html>

<?php
require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
if ( ! $solr->ping() ) {
echo 'Solr service not responding.';
exit;
}
$docs = array(
"num1" => array(
"id" =>"Chester009",
"name" => "cheser add a name",
"manu" => "ViewSonic Corp.",
"cat" => "elec1",
"features" => "features1",
"weight" => 1457,
"price" => 44,
"popularity" => 8,
),
"num2" => array(
"id" =>"Chester010",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num3" => array(
"id" =>"Chester011",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num6" => array(
"id" =>"Chester012",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num7" => array(
"id" =>"Chester014",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num8" => array(
"id" =>"Chester019",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
);
$documents = array();
foreach ( $docs as $item => $fields ) {
$part = new Apache_Solr_Document();
foreach ( $fields as $key => $value ) {
if ( is_array($value) ) {
foreach ( $value as $data ) {
$part->setMultiValue($key,$data);   
}
}
else{
$part->$key = $value;
}
}
$documents[] = $part;
}
try{
$a = $solr->addDocuments( $documents );
$b = $solr->commit();
$c = $solr->optimize();
var_dump($a);
print "<br><br><br><br><br><br>" ;
var_dump($b);
print "<br><br><br><br><br><br>" ;
var_dump($c);
}
catch (Exception $e){
echo $e->getMessage();
}
?>

<?php
require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
if ( ! $solr->ping() ) {
echo 'Solr service not responding.';
exit;
}
$offset = 0;
$limit = 10;     
$queries = array(     
'id: Chester005 OR id: Chester001',     
'name: name',
'features: feature'
);
foreach ( $queries as $query ){
$response = $solr->search( $query, $offset, $limit );
if ( $response->getHttpStatus() == 200 ) {
// print_r( $response->getRawResponse() );            
if ( $response->response->numFound > 0 ) {
echo "$query <br />";
foreach ( $response->response->docs as $doc ) {
echo "id= $doc->id <br> name = $doc->name <br /> manu= $doc->manu <br>";
}
echo '<br />';
}
}
else {
echo $response->getHttpStatusMessage();
}
}
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314385-1-1.html 上篇帖子: 关于solr不能搜索中文 下篇帖子: 服务器暂时无法响应您的请求 500 Internal Server Error
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表