xunsearch开发流程(三)

 

(一)、编写项目配置文件

通过创建一个项目文件来创建一个新的项目
cd /data/local/xunsearch/sdk/php/app
touch njw.ini
文件内容如下

project.name = njw

project.default_charset = utf-8

server.index = 8383

server.search = 8384

[id]

type = id

[title]

type = title

[norms]

index = self

[picture]
文件中我们定义项目的名称为njw,编码为utf-8,数据中我们有如下几个字段,id,title,norms,picture

 

(二)、linux下项目的一些操作

清空njw项目的索引数据

/data/local/xunsearch/sdk/php/util/Indexer.php --clean njw

 

在对应的目录下生成搜索骨架

/data/local/xunsearch/sdk/php/util/SearchSkel.php njw /data/wwwroot/workplace/

 

导入mysql数据库生成索引数据

/data/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:123456@127.0.0.1/njw88_dev --sql="select g.id id,g.title title,g.norms norms,i.picture picture from b2b_goods g INNER JOIN b2b_goods_images i ON g.id=i.goods_id" --project=njw

 

(三)、索引同步
xunsearch可以通过调用XSindex的相关API来更新索引

 

(四)、引入php-sdk的入口文件/data/local/xunsearch/sdk/php/lib/XS.php进行搜索功能和界面开发

事列如下:

 

header('Content-Type:text/html;charset=utf-8;');

引入XS.php文件

require_once '../../../local/xunsearch/sdk/php/lib/XS.php';

try{

    实例化对应的项目

    $xs = new XS('njw');

    获取请求过来的搜索关键字

    $keywords = trim($_GET['keywords']);

    if(empty($keywords)){

        exit;

    }

    获取分页数

    $p = $_GET['p'];

    if(isset($p)){

        $p = max(1, intval($p));

    }else{

        $p = 1;

    }

    //搜索文档

    $search = $xs->search;

    执行搜索关键字

    $search->setQuery($keywords);

    

    //set offset,limit

    $p = max(1, intval($p));

    $n = XSSearch::PAGE_SIZE; 

    设置分页

    $search->setLimit($n,($p-1)*$n);

    执行查询

    $docs = $search->search();

    获取的是一个对应循环是输出之前配置文件建立的对应字段即可

    foreach ($docs as $doc){

        echo $doc->rank() . ". " . $doc->title . " [" . $doc->percent() . "%]\n,规格为:".$doc->norms . "\n";

        echo  "<img src='http://".$doc->picture."' style='width:100px;height:100px;'  /><br/>";

    }

    //echo $xs->search->count('测试'); 

 

}catch(XSException $e){

    $error = strval($e);

}

 

posted @ 2016-05-19 10:24  李思琼  阅读(348)  评论(0编辑  收藏  举报