• 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() . "%] ,规格为:".$doc->norms . " ";

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

        }

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

    }catch(XSException $e){

        $error = strval($e);

    }

  • 相关阅读:
    jQuery学习笔记(一):入门
    jQuery学习笔记(二):this相关问题及选择器
    数据库基础
    有关程序员转行的想法
    在团队中如何带领新手——阅读有感
    C#中的集合类——ArrayList
    .NET基础——ASSCII码表
    C#中的文件操作2
    C#中的文件操作1
    C#中的StringBuilder
  • 原文地址:https://www.cnblogs.com/lisqiong/p/5507795.html
Copyright © 2020-2023  润新知