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

通过创建一个项目文件来创建一个新的项目
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);

}

xunsearch开发流程(三)的更多相关文章

  1. C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁

    系列文章 C#开发奇技淫巧一:调试windows系统服务 C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件 C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁 程序目录的整理 ...

  2. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  3. C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  4. git开发流程、常用命令及工具、TortoiseGit使用及常见问题

    根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...

  5. Web开发流程

    知乎上关于Web开发流程豪情给予的回答 web前端开发流程是什么?进行操作会用到哪些便捷的小工具?是先用模板做好,然后在基础上改吗??正常大家说的改框架是不是指的用模板做的网站原文件?前端开发做的文件 ...

  6. iOS开发流程总结

    本文由社区会员umyueyue分享 以下是会员umyueue总结的iOS开发流程以及学习中的资料分享. 流程:注册.开发.真机测试.发布以及上线. iPhone iOS 4从注册到app上线开发流程 ...

  7. asp.net 网站开发流程总结

    由于这学期要做asp.net的网站开发,导师让我们在前期做详细的计划说明,时间安排.由于网站开发流程不知道,以及需要学什么指示都是盲懂,所以计划安排需在了解大致流程之后才能做出来,一下是询问同学和在网 ...

  8. 简易版CMS后台管理系统开发流程

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  9. OAuth的机制原理讲解及开发流程

    本想前段时间就把自己通过QQ OAuth1.0.OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oaut ...

随机推荐

  1. H3C WA2610i-GN FitAP telnet打开

    在ac上面:sys_hidecmd 隐藏模式wlan ap ap1 exec-control enable ##目前为disable状态wlan ap ap1 telnet enable ##目前为e ...

  2. Java开发微信公众号模板消息【同步|异步】

    第一步:申请模板消息功能并添加模板 在微信公众平台找到你需要的模板,并添加上即可: 第二步:添加功能模块后开始开发 功能中使用的类及代码: 发送数据主实体类: Template.java packag ...

  3. SqlServer 转 Oracle 的几点注意

    (转自:http://www.2cto.com/database/201208/146740.html) 1.字符型的字段相加需要用“||”,如果用“+”的话,会报“无效的数字”的错误.   2.类似 ...

  4. C# 设计模式巩固笔记 - 建造者模式

    前言 写给自己-贵在坚持.建造者模式不复杂,但是想个形象的例子好难. 介绍-建造者模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 实现 建造者模式主要是应对复杂 ...

  5. The main points of capacitive screen technology

  6. vue.js 源代码学习笔记 ----- 工具方法 env

    /* @flow */ /* globals MutationObserver */ import { noop } from 'shared/util' // can we use __proto_ ...

  7. GitHub原来也可以用SVN客户端的.

    不知道是不是自己真的太宅了. 一直以为只能用git client 来clone github工程的.  偶然今日发现还可以用 SVN 来下载的. 果断一试. 太好用了. 这回windows 上不用纠结 ...

  8. 一次Mysql连接池卡死导致服务无响应问题分析(.Net Mysql.Data 6.9.9)

    问题: 进程启动后,线程数迅速上升至最小线程数后,缓慢上升(线程池限制)到数千,然后由于线程过多,CPU飙升到90%. 对外表现为Api无响应或连接超时. 背景 有些数据存在于另一个机房,通过内网专线 ...

  9. erl_0017 《硝烟中的erlang》 读书笔记004 “锁和阻塞”

    如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题. 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面.在执行此类阻 ...

  10. HDU1496 Equations 卡时间第二题

    Consider equations having the following form: a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 a, b, c, d are integers ...