使用 PHP 和 Apache Solr 实现企业搜索

时间:2023-03-09 03:37:23
使用 PHP 和 Apache Solr 实现企业搜索

原文链接:http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/

       http://blog.****.net/hzcyclone/article/details/7006354

1、安装solr(下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/6.0.0)

2、安装php的solr扩展(下载地址:http://pecl.php.net/package/solr)

3、下载phpsolrclient代码(最健壮的实现是 Donovan Jimenez 的 PHP Solr Client,下载地址:http://code.google.com/p/solr-php-client/downloads/list)

4、使用代码示例:

<?php
include("Apache/Solr/Service.php");

//连接Solr服务器
$solr = new Apache_Solr_service('localhost' , '8983' ,'/solr');
if( !$solr->ping() ) {
    echo'Solr server not responding';
   exit;
}

$data = array(
array(
'id' => 'EN80922032',
'name' => '男士打磨直筒休闲牛仔裤',
'brand' => 'ENERGIE',
'cat' => '牛仔裤',
'price' => '1870.00'
),
array(
'id' => 'EN70906025',
'name' => '品牌LOGO翻领拉链外套',
'brand' => 'ENERGIE',
'cat' => '外套',
'price' => '1680.00'
),
);

//添加索引数据
$documents = array();
foreach($data as $key => $value) {
    $part =new Apache_Solr_Document();
   foreach($value as $key2 =>$value2) {
       $part->$key2 =$value2;
    }

   $documents[] = $part;
}

$solr->addDocuments( $documents );
$solr->commit();
$solr->optimize();

//查询索引 $solr->search(字段:关键字 , 开始 ,每页显示,排序)
$offset = 0;
$limit = 10;
$sort = 'price asc';

$rs = $solr->search("brand:ENERGIE" , $offset ,$limit,array('sort' => $sort));
if($rs->response->numFound> 0) {
   foreach($rs->response->docs as $doc) {
       echo $doc->id.'|'.$doc->name.'|'.$doc->brand.'|'.$doc->price.'<br>';
    }
}

?>