您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 10分钟学会XunSearch
  所属分类: Web开发
  开发工具:
  文件大小: 696kb
  下载次数: 0
  上传时间: 2019-03-02
  提 供 者: buzhid******
 详细说明:Xunsearch 采用结构化分层设计,包含后端服务器和前端开发包两大部分。后端是用 C/C++ 基于 Xapian (读 /zap-ian/) 搜 索库、SCWS 中文分词、libevent 等开源库开发,借鉴了 nginx 的多进程多线程混合工作方式,是一个可承载高并发的高 性能服务端。unisearch 安装 服务端 前端的 insearch PHP-SDK与服务端通讯协同工作,要想使用 insearch抟索就必须先安装服务端,目前只支持∪NⅨ类 型的操作系统含 LinUX/BSD/ MaCOs在内以源码方式编译安装,暂不支持 Windows。因此也要求您的服务器上你必须装 有gco丶make等软件包编译安装工具。 1.下载&解压安装包:http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 2.强烈推荐用 SHOME/xunsearch或/sr/ ccal/xunsearch作为安装目录以下简称$prex)。无论您是首次安装 insearch还是升级新版本,均只要直接执行我们提供的安装脚本,输入安装目录然后耐心等待即可 cd xunsearch-full-1.3.3 sh setup. sh 3.安装完毕后,您就可以通过自带的脚本( Prefix/ bin/xs-ct.st启动/关闭 unisearch服务端了。用法举例 Prefix/bin/xs-ctl sh start 默认启动,绑定本地的8383/8384端口 prefix/bin/xs-ct1.sh- o inet start#绑定全部工P,适合SDK/服务端不同服务器的情况 Prefix/bin/xs-ctlsh stap #停止服务器,若启动时指定了- b inet此处也必须指定 4.没错,安装就是这么简单。特别提示,搜索的所有索引数据将被保存到 Prefix/data目录,因此如果您希望数据目录 另行安排,请采用软连接形武确保$ prefix/lata链至真实数据目录。此外,如果服务端启动时使用了-biet参数,那 么请借助 iptables或其它防火墙工具进行保护, insearch本身出于性能考虑不做其它验证处理。 PHP-SDK PHP-SDK的代码默认包含在服务端安装目录中,即$ prefix/sd/ohp。目录结杓如下 -HML格式的文档、AP手册 搜索项目ii文件的默认存储目录 lib/XS. php 搜索库唯一文件,所有搜索相关功能均必须引入此文件 \--util/ 辅助工具目录 Require Check. php -检测您的PHP环境是否符合 insearch运行条件 --搜索测试工具 \- Indexer php -索引管理工具 1.如果您的搜索应用和服务端在同一机器,则无需其它操作,只需在开发时直接引入$ prefix/ sdk/php/ b/Xs. php即可。 2.如您的搜索应用和服务端不在司一机器,则请复制$ prefix./sdk/ho目录到相应的搜索应用服务器,同时出于安全考 虑,建议不要放到WEB可访问的目录。 3.使用SDK中的u工具要求您的phoc)位于可执行文件默认搜索路径中(即用 which php可以检测到),如不在请做 好软链接至/sr/ local/ bin/ohp xunsearch. com unisearch 检测运行环境 Xunsearch要求PHP是52.0及以上版本,强烈推荐使用53×系列的PHP。请在安装完毕后直接执行 Prefix/ sdk/php/util/ Require Check. php看输出即可。如果您的终端编码不是∪TF-8请在调用时加上-cgk参数。 DEMo服务器 某些情况下,部分用户未能自己部署安装服务端,而又想体验 xunsearc。因此,我们从发布133版本起,提供了一台供 用户测试的DEMO服务器。用户无需安装服务端,直接下载 PHP-SDK就可以开发测试。特别提示,DEMO服务器只用于 测试目的,并会不定期重置数据。 单独下载 PHP-SDK 如果您没有安裝服务端,想直接体验DEMO服务器的,您只要从下面地址下载解压SDK压缩包即可。 http://www.xunsearch.com/download/xunsearch-sak-latest.zip 解压后得到 xunsearch-sok目录,相应的搜索库文件为 xunsearch-sak/phpb/s.php 服务器地址 索引服务器: demo, xunsearch co端口9393 搜索服务器:demo.xunsearch.com端口9394 xunsearch. com unisearch 开始 开发流程 为便于讲解说明,假定 PHP-SDK代码目录为$sdk。 分析搜索需求,设计搜索应用必需的字段。 编写项目配置文件,项目配置in文作存放在 Ssdk/app目录 引入$sdκ/b/×sphp进行搜索功能和界面开发,借助$sdkt/php工具进行测试或调试。 认识对象 ·XS--搜索项目总对象:所有相关操作均基于此对象及子方法。 XSDocument-搜索结果或索引文档,包括一组字段及值,相当于SQL表中的一条记录。 XSIndex--索引管理,通过XS对象的ndex属性取得。 ● XSSearch--搜索功能,通过XS对象的 search属性取得。 XSEXception-异常类型,必须捕捉比异常以判断操作是否正确,例: require$sdk/ib/Xs.php';∥引入 insearch sdk tr Sxs= new Xs(dero);∥deno为项目名称,配置文件是:Ssdk/ap/ero,in ∥/…此外为其它 XSIndex/XSsearch的相关功能代码 3 catch (XSEXception Se) cho$e."n".$e- get TraceS String0.“r';∥发生异常,输岀描述 编写配置文件 推荐使用我们的在线工具编写:htto://www.xunsearch.com/tools/iniconfigdemo项目的配置如下 项目设置 ini内容 项目名称:demo 默认字符集:「ut-8 project. ame demo 服务器连接参数? (>) project.default charset= Ltf-8 sccr index- 索引:dem6xunsearch.com9393搜索:demainsearch.cor9394 demo.xunsearch com: 939 server search dermo. xurisedrth cun 9394 项目字段设计 Pidl ( copy type=旧a 字段名称 端型 分词器栽取长度权重精确搜索 [subject pd(主键里国{罕东引一曰 default 0 否同]删除 typc- title 字段混合(e05是图影 Imessacel subject 标題型 messag 〔内容里混合区索引曰 default 301是曰删除 crane type= numeric chrono 数字曰不东引一(h1( xunsearch. com unisearch 创建索引 获取 XSIndex对象 require Ssdk/lib/XS. ph $X= new Xs(demo);∥创建Xs对象,项目名称为:demo $ Index=$xs-> > index;∥获取索引对象 /…在此编写过索引处理代码 3 catch KXSException e)1 增删改 sdc= new XsDocumenti(aray(∥创建 XSDocument pd"=>123,∥主键字段,必须指定 subject=>测试文档标题, message'=>测试文档内容 chrono’=>time Index->add($doc);∥添加文档,不检测便索引库内是否已有冋一主键数据 Index-> update(sdoC);∥更新文档,若有同主键数据則替换之 Sindex->del(123");∥删除主键值为234的文档 Index-> delarrayt‘123,456);∥删除主键值为123及456的文档 清空索引 当搜索字段文件变更或出现严重不同步时,建议清空索引。 Index-> clean0;∥/一执行立即生效 索引同步 出于性能优化没计,上面所看到的索引操作都是异步操作。也就是说您通过PHP调用的AP返回后,索引变动是先保存 在服务端的队列中,由服务端根据负尙延迟一并写入索引库。这个时间差我们控制在合理范围内,通常是几秒钟时间。但 如果您在批量更新后希望立即同步,可以这样 Sindex->flushIndex0:; xunsearch. com unisearch 使用搜索 获取 XSSearch对象 requireSsdk/lib/XS. ph tr $X= new Xs(demo);∥创建Xs对象,项目名称为:demo Index=$xs-> search;∥获取搜索对象 ∥/…在此编写过搜索处理代码 3 catch KXSException e)1 搜索语法 查询语句和流行的搜索引擎相似,通过空格把搜索词、句连接起来即可,字段检索使用feld:∝X的格式。 允许使用 ANDOR/NOT/XOR等显式地布尔关系组合,可以使用小括号0包围表达优先级。 支持使用双引号对较长搜索词进行精确匹配,要求字段设计时勾选“精确”项。 Ssearch-> search(杭州西湖)∥搜索同时包含这2个词的结果 search-> search(杭州OR西湖);∥搜索包含其中一个词的结果 search-> search( subject杭州西湖);∥包括西湖并且标题包含杭州的结果 获取结果 ●设置数量及偏移 Ssearch-> delimit(5,15);∥/设置最多返回5条,并跳过前15条,即返回第16-20条结果 ●获取搜索结果 Sdocs=$ search-> setQuery测试)-> search;∥搜索‘测试 foreach(Sdocs as Sdoc)( $ subject=$ Ssearch-> highlight($oo->hjec;∥/高亮处理标题 echo$doc->rank0..‘. Ssubject.‘[".Sdoc-> percent0.%-‘. date(Y-m-d").“n echo Sdoc->message. "n\n ·获取搜索结果数量(估算值 Scount= Ssearch-> get astCount0;∥获取最后一次$ search-> search0的匹配数量 count=$ search-> count(测试);∥直接检索包含测试的数量 xunsearch. com unisearch 搜索日志 关于日志 系统内部会自动记录并分析搜索关键词日志,通过日志衍生出相关的扩展功能。日志同样是异步更新的并且延迟较大,如 需要强制刷新请调用以下指令或索引APl。 php Ssdk/utl/ indexer:php- p demo- flush-og#通过辅助工具刷新日志 Index> flushlogging0;∥通过索引AP更新 热门搜索 通过 XSSearch;: getHotQuery方法获取热门搜索词,返回的数组以关键词为键名,抟索指数为值s Swords=$ search> getHotQuery0;∥/取前6个总热门搜索词 Swords= Ssearch-> getHotQuery6, aston;∥获取前10个上周热门词 相关搜索 通过 XSSearch;: getRelatedQuery方法获取热门搜索词,返回相关搜索词组成的数组。 Sword=$ search> getRelatedQuery0;∥获取前6个和最近一次 setQuery0相关的搜索词 words=$ search-> getRelatedQuery测试’,10);∥获取10个和测试’相关的搜索词 搜索纠错 由于输入过快或拼音输入中文很容易出现错误, XSSearch: getCorrectedQuery方法返回纠正后的关键词组成的数组。 doCs=$ search-> setQuery(侧试)-> search0;∥/正常进行搜索误打的侧试 Corrected= Ssearch> getCorrectedQuery0;∥尝试修正 f( count( corrected>O){有修正词则列出 echo“您是不是要找:Ⅵn”; foreach(Scorredted as Sword)echo word. "n 搜索建议 类似常见搜索引擎那样,当用户在输入框键入少量字、拼音、声母时进行智能补全,可以节省用户的输入时间。 So0=800ag0y0aray测试) Word=$arcn> getExpandedQuery测):∥返回aray(测试) $ words=$ search-> get ExpandedQuery(cs");∥/返回aray(测试) xunsearch. com unisearch 使用工具 为了便于用户开发调试,我们在Ssk目录提供了一套辅助工具。输出结果默认为UIF8编码,如果发生乱码请测试在 所有命令后加上-Cgbk以修正编码。 util. Indexer 支持批量导入索引、清空索引、刷新提交、同义词管理等,详细请参见 php util/ Indexer. php-help php util/ ndexer. php demo- clean#清空demo项目的索引数据 php util/Indexer. php demo-ush#刷新未写入的索引队列 #导入M⑤QL的 dbname. tbl post表到oemo项目并采用平滑重建方式 php util/ Indexer php demo --rebuild--source="mysql: //root: passlocalhost/dhname--Sq="SELECT* FROM tbl_post util. Quest 功能齐仝的综合搜索测试工具,详细请参见 ohp util/Quest;php-helo php util/ Quest. php demo测试-imnt3#搜索dero项目中包含“测试"的数据,并最多只返回3条 php util/Quest. php- suggest demo Cs#列出以"cs”开头的搜索建议 php util/ Quest. php- correct demo侧试#列出“侧试”的修正词 util. Logger 搜索日志管理,支持删狳、修改、刷新、清空等功能,详细请参见 php util/ agger.php-hel php util/ Logger: php dermo-fush#刷新deo项目搜索日志 php util/ Logger. php demo#查看cemo项目的热门搜索词 php util/ Logger. php demo测试#查看demo项目和“测试”相关的搜索词 php util./ Logger. php dermo- clean#清空dero项目搜索日志 php uti/oger; php demo-del-"word1,woro2”#删除搜索日志中的word和word php util/ Logger. php demo-put=Word#添加wor到demo项目搜索目志中 util, Searchskel 该工具读取并分析项日配置文件( NAME, ini,然后生成一个通用适合WEB访问的搜索代码骨架。您可以在此基础上补充和 修改代码即可,能大幅提升开发效率。详细请参见 php util/ SearchSkel. php-hep。 php uti/ Search Skel. php demo/ ath/to/web #生成cem项目的搜索骨架,生成结果在 oath/to/web/demo 搜索骨架代码 earch. phi 搜索入口页面,可放入Weo直接访问用于测试 H--search. tpl 搜索结果输出模板文件 \--suggest php 提取搜索建议,通过 jQuery AutoComplete插件调用 xunsearch. com unisearch 使用S○S swS分词已经被内置包含到Ⅺ insearch服务端,因此用户也可以直接通过SDK代码使用scws分词功能,中文分词是计 算机中文语言处理的重要环节。 分词设置 在SDK中必须选创建XS对象再创建 XS Tokenizer scws对象,在此基础上使用scWs分词。 ss= new Xs'demo");∥创建初始XS项目,否则无法定位服务端会抛出异常 Tokenizer= new Xs Tokenizer Scws;∥创建分词对象实例 Tokenizer> setlgnore(true);∥让返回的分词结果忽略标点符号 Tokenizer> setDualityt(rue);∥对分词结果中的连续单字做二元组合 Tokenizer-> setMulti(3):∥设置复合分词方案:0×01-长词切为短词,0x02单字二元,0x04-重要单字,0x08-全部单字 获取分词结果 返回的结果数组每个元素包含:该词在文本中的位置(of),词性att,词内容Moro)o stxt=“迅搜( insearch是优秀的开源仝文检索解决方案"; $ words=$ okenizer-> getResult($text;返回分词结果 print _r( Swords);∥打印分词结果 提取重要词 根据指定的词性,从给定文本中根据词语的重要性、出现塞提取重要词列表,返回词中的tmes表示出现次数。 text=“进搜( unisearch是优秀的开源全文检索解决方案”; Stops= Tokenizer-> getTops($text,5,n,vwn;∥提取前5个重要词,要求词性必须是n或v或v print_r( Stops);∥/打印重要词列表 xunsearch. com
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 10分钟学会XunSearch
 输入关键字,在本站1000多万海量源码库中尽情搜索: