| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- <meta name="language" content="zh-cn" />
- <link rel="stylesheet" type="text/css" href="css/style.css" />
- <link rel="stylesheet" type="text/css" href="css/api.css" />
- <script type="text/javascript" src="js/jquery.js"></script>
- <title>XSSearch</title>
- </head>
- <body>
- <div id="apiPage">
- <div id="apiHeader">
- <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
- </div><!-- end of header -->
- <div id="content" class="api-index">
- <h1>XSSearch</h1>
- <div id="nav">
- <a href="index.html">All Packages</a>
- | <a href="#properties">属性</a>
- | <a href="#methods">方法(函数)</a>
- </div>
- <table class="summaryTable docClass">
- <colgroup>
- <col class="col-name" />
- <col class="col-value" />
- </colgroup>
- <tr>
- <th>包</th>
- <td><a href="index.html#XS">XS</a></td>
- </tr>
- <tr>
- <th>继承关系</th>
- <td>class XSSearch »
- <a href="XSServer.html">XSServer</a> »
- <a href="XSComponent.html">XSComponent</a></td>
- </tr>
- <tr>
- <th>版本</th>
- <td>1.0.0</td>
- </tr>
- <tr>
- <th>源代码</th>
- <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php">sdk/php/lib/XSSearch.class.php</a></td>
- </tr>
- </table>
- <div id="classDescription">
- XS 搜索类, 执行搜索功能
- 有部分方法支持串接操作
- <pre>
- $xs->search->setQuery($str)->setLimit(10, 10)->search();
- $xs->close();
- </pre></div>
- <a name="properties"></a>
- <div class="summary docProperty">
- <h2>Public 属性</h2>
- <p><a href="#" class="toggle">隐去继承来的属性</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-property" />
- <col class="col-type" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
- </tr>
- <tr id="allSynonyms">
- <td><a href="XSSearch.html#allSynonyms-detail">allSynonyms</a></td>
- <td>array</td>
- <td>获取当前库内的全部同义词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="correctedQuery">
- <td><a href="XSSearch.html#correctedQuery-detail">correctedQuery</a></td>
- <td>array</td>
- <td>获取修正后的搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="dbTotal">
- <td><a href="XSSearch.html#dbTotal-detail">dbTotal</a></td>
- <td>int</td>
- <td>获取搜索数据库内的数据总量</td>
- <td>XSSearch</td>
- </tr>
- <tr id="facets">
- <td><a href="XSSearch.html#facets-detail">facets</a></td>
- <td>array</td>
- <td>读取最近一次分面搜索记数</td>
- <td>XSSearch</td>
- </tr>
- <tr id="hotQuery">
- <td><a href="XSSearch.html#hotQuery-detail">hotQuery</a></td>
- <td>array</td>
- <td>获取热门搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="lastCount">
- <td><a href="XSSearch.html#lastCount-detail">lastCount</a></td>
- <td>int</td>
- <td>获取最近那次搜索的匹配总数估值</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="project">
- <td><a href="XSServer.html#project-detail">project</a></td>
- <td>string</td>
- <td>获取当前项目名称</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="query">
- <td><a href="XSSearch.html#query-detail">query</a></td>
- <td>string</td>
- <td>获取解析后的搜索语句</td>
- <td>XSSearch</td>
- </tr>
- <tr id="relatedQuery">
- <td><a href="XSSearch.html#relatedQuery-detail">relatedQuery</a></td>
- <td>array</td>
- <td>获取相关搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="respond">
- <td><a href="XSServer.html#respond-detail">respond</a></td>
- <td><a href="XSCommand.html">XSCommand</a></td>
- <td>从服务器读取响应指令</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="socket">
- <td><a href="XSServer.html#socket-detail">socket</a></td>
- <td>mixed</td>
- <td>获取连接资源描述符</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="xs">
- <td><a href="XSServer.html#xs-detail">xs</a></td>
- <td><a href="XS.html">XS</a></td>
- <td>服务端关联的 XS 对象</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- </table>
- </div>
- <a name="methods"></a>
- <div class="summary docMethod">
- <h2>Public 方法</h2>
- <p><a href="#" class="toggle">隐去继承来的方法</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-method" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>描述</th><th>定义于</th>
- </tr>
- <tr class="inherited" id="__construct">
- <td><a href="XSServer.html#__construct-detail">__construct()</a></td>
- <td>构造函数, 打开连接</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="__destruct">
- <td><a href="XSServer.html#__destruct-detail">__destruct()</a></td>
- <td>析构函数, 关闭连接</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="__get">
- <td><a href="XSComponent.html#__get-detail">__get()</a></td>
- <td>魔术方法 __get</td>
- <td><a href="XSComponent.html">XSComponent</a></td>
- </tr>
- <tr class="inherited" id="__isset">
- <td><a href="XSComponent.html#__isset-detail">__isset()</a></td>
- <td>魔术方法 __isset</td>
- <td><a href="XSComponent.html">XSComponent</a></td>
- </tr>
- <tr class="inherited" id="__set">
- <td><a href="XSComponent.html#__set-detail">__set()</a></td>
- <td>魔术方法 __set</td>
- <td><a href="XSComponent.html">XSComponent</a></td>
- </tr>
- <tr class="inherited" id="__unset">
- <td><a href="XSComponent.html#__unset-detail">__unset()</a></td>
- <td>魔术方法 __unset</td>
- <td><a href="XSComponent.html">XSComponent</a></td>
- </tr>
- <tr id="addDb">
- <td><a href="XSSearch.html#addDb-detail">addDb()</a></td>
- <td>添加搜索的数据库名, 支持多库同时搜索</td>
- <td>XSSearch</td>
- </tr>
- <tr id="addQueryTerm">
- <td><a href="XSSearch.html#addQueryTerm-detail">addQueryTerm()</a></td>
- <td>增加默认搜索词汇</td>
- <td>XSSearch</td>
- </tr>
- <tr id="addRange">
- <td><a href="XSSearch.html#addRange-detail">addRange()</a></td>
- <td>添加搜索过滤区间或范围</td>
- <td>XSSearch</td>
- </tr>
- <tr id="addSearchLog">
- <td><a href="XSSearch.html#addSearchLog-detail">addSearchLog()</a></td>
- <td>添加搜索日志关键词到缓冲区里</td>
- <td>XSSearch</td>
- </tr>
- <tr id="addWeight">
- <td><a href="XSSearch.html#addWeight-detail">addWeight()</a></td>
- <td>添加权重索引词</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="close">
- <td><a href="XSServer.html#close-detail">close()</a></td>
- <td>关闭连接</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="count">
- <td><a href="XSSearch.html#count-detail">count()</a></td>
- <td>估算搜索语句的匹配数据量</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="execCommand">
- <td><a href="XSServer.html#execCommand-detail">execCommand()</a></td>
- <td>执行服务端指令并获取返回值</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="getAllSynonyms">
- <td><a href="XSSearch.html#getAllSynonyms-detail">getAllSynonyms()</a></td>
- <td>获取当前库内的全部同义词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getCorrectedQuery">
- <td><a href="XSSearch.html#getCorrectedQuery-detail">getCorrectedQuery()</a></td>
- <td>获取修正后的搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getDbTotal">
- <td><a href="XSSearch.html#getDbTotal-detail">getDbTotal()</a></td>
- <td>获取搜索数据库内的数据总量</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getExpandedQuery">
- <td><a href="XSSearch.html#getExpandedQuery-detail">getExpandedQuery()</a></td>
- <td>获取展开的搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getFacets">
- <td><a href="XSSearch.html#getFacets-detail">getFacets()</a></td>
- <td>读取最近一次分面搜索记数</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getHotQuery">
- <td><a href="XSSearch.html#getHotQuery-detail">getHotQuery()</a></td>
- <td>获取热门搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getLastCount">
- <td><a href="XSSearch.html#getLastCount-detail">getLastCount()</a></td>
- <td>获取最近那次搜索的匹配总数估值</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="getProject">
- <td><a href="XSServer.html#getProject-detail">getProject()</a></td>
- <td>获取当前项目名称</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="getQuery">
- <td><a href="XSSearch.html#getQuery-detail">getQuery()</a></td>
- <td>获取解析后的搜索语句</td>
- <td>XSSearch</td>
- </tr>
- <tr id="getRelatedQuery">
- <td><a href="XSSearch.html#getRelatedQuery-detail">getRelatedQuery()</a></td>
- <td>获取相关搜索词列表</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="getRespond">
- <td><a href="XSServer.html#getRespond-detail">getRespond()</a></td>
- <td>从服务器读取响应指令</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="getSocket">
- <td><a href="XSServer.html#getSocket-detail">getSocket()</a></td>
- <td>获取连接资源描述符</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr class="inherited" id="hasRespond">
- <td><a href="XSServer.html#hasRespond-detail">hasRespond()</a></td>
- <td>判断服务端是否有可读数据</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="highlight">
- <td><a href="XSSearch.html#highlight-detail">highlight()</a></td>
- <td>搜索结果字符串高亮处理</td>
- <td>XSSearch</td>
- </tr>
- <tr id="markResetScheme">
- <td><a href="XSSearch.html#markResetScheme-detail">markResetScheme()</a></td>
- <td>标记字段方案重置</td>
- <td>XSSearch</td>
- </tr>
- <tr id="open">
- <td><a href="XSSearch.html#open-detail">open()</a></td>
- <td>连接搜索服务端并初始化</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="reopen">
- <td><a href="XSServer.html#reopen-detail">reopen()</a></td>
- <td>重新打开连接</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="search">
- <td><a href="XSSearch.html#search-detail">search()</a></td>
- <td>获取匹配的搜索结果文档</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="sendCommand">
- <td><a href="XSServer.html#sendCommand-detail">sendCommand()</a></td>
- <td>往服务器直接发送指令 (无缓存)</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="setAutoSynonyms">
- <td><a href="XSSearch.html#setAutoSynonyms-detail">setAutoSynonyms()</a></td>
- <td>开启自动同义词搜索功能</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setCharset">
- <td><a href="XSSearch.html#setCharset-detail">setCharset()</a></td>
- <td>设置字符集</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setCollapse">
- <td><a href="XSSearch.html#setCollapse-detail">setCollapse()</a></td>
- <td>设置折叠搜索结果</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setDb">
- <td><a href="XSSearch.html#setDb-detail">setDb()</a></td>
- <td>设置要搜索的数据库名</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setFacets">
- <td><a href="XSSearch.html#setFacets-detail">setFacets()</a></td>
- <td>设置分面搜索记数</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setFuzzy">
- <td><a href="XSSearch.html#setFuzzy-detail">setFuzzy()</a></td>
- <td>开启模糊搜索</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setLimit">
- <td><a href="XSSearch.html#setLimit-detail">setLimit()</a></td>
- <td>设置搜索结果的数量和偏移</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setMultiSort">
- <td><a href="XSSearch.html#setMultiSort-detail">setMultiSort()</a></td>
- <td>设置多字段组合排序方式</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="setProject">
- <td><a href="XSServer.html#setProject-detail">setProject()</a></td>
- <td>设置当前项目</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="setQuery">
- <td><a href="XSSearch.html#setQuery-detail">setQuery()</a></td>
- <td>设置默认搜索语句</td>
- <td>XSSearch</td>
- </tr>
- <tr id="setSort">
- <td><a href="XSSearch.html#setSort-detail">setSort()</a></td>
- <td>设置搜索结果的排序方式</td>
- <td>XSSearch</td>
- </tr>
- <tr class="inherited" id="setTimeout">
- <td><a href="XSServer.html#setTimeout-detail">setTimeout()</a></td>
- <td>设置服务端超时秒数</td>
- <td><a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr id="terms">
- <td><a href="XSSearch.html#terms-detail">terms()</a></td>
- <td>获取搜索语句中的高亮词条列表</td>
- <td>XSSearch</td>
- </tr>
- </table>
- </div>
- <a name="events"></a>
- <h2>属性明细</h2>
- <div class="detailHeader" id="allSynonyms-detail">
- allSynonyms<span class="detailHeaderTag">
- 属性
- <em>只读</em> (自版本 v1.3.0 起可用)
- </span>
- </div>
- <div class="signature">
- public array <a href="XSSearch.html#getAllSynonyms"><b>getAllSynonyms</b></a>(int $limit=0, int $offset=0, bool $stemmed=false)</div>
- <p>获取当前库内的全部同义词列表</p>
- <div class="detailHeader" id="correctedQuery-detail">
- correctedQuery<span class="detailHeaderTag">
- 属性
- <em>只读</em> </span>
- </div>
- <div class="signature">
- public array <a href="XSSearch.html#getCorrectedQuery"><b>getCorrectedQuery</b></a>(string $query=NULL)</div>
- <p>获取修正后的搜索词列表
- 通常当某次检索结果数量偏少时, 可以用该函数设计 "你是不是要找: ..." 功能</p>
- <div class="detailHeader" id="dbTotal-detail">
- dbTotal<span class="detailHeaderTag">
- 属性
- <em>只读</em> </span>
- </div>
- <div class="signature">
- public int <a href="XSSearch.html#getDbTotal"><b>getDbTotal</b></a>()</div>
- <p>获取搜索数据库内的数据总量</p>
- <div class="detailHeader" id="facets-detail">
- facets<span class="detailHeaderTag">
- 属性
- (自版本 v1.1.0 起可用)
- </span>
- </div>
- <div class="signature">
- public array <a href="XSSearch.html#getFacets"><b>getFacets</b></a>(string $field=NULL)<br/>public XSSearch <a href="XSSearch.html#setFacets"><b>setFacets</b></a>(mixed $field, bool $exact=false)</div>
- <p>读取最近一次分面搜索记数
- 必须在某一次 <a href="XSSearch.html#search">search</a> 之后调用本函数才有意义</p>
- <div class="detailHeader" id="hotQuery-detail">
- hotQuery<span class="detailHeaderTag">
- 属性
- <em>只读</em> </span>
- </div>
- <div class="signature">
- public array <a href="XSSearch.html#getHotQuery"><b>getHotQuery</b></a>(int $limit=6, string $type='total')</div>
- <p>获取热门搜索词列表</p>
- <div class="detailHeader" id="lastCount-detail">
- lastCount<span class="detailHeaderTag">
- 属性
- <em>只读</em> </span>
- </div>
- <div class="signature">
- public int <a href="XSSearch.html#getLastCount"><b>getLastCount</b></a>()</div>
- <p>获取最近那次搜索的匹配总数估值</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSSearch.html#search">search</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="query-detail">
- query<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public string <a href="XSSearch.html#getQuery"><b>getQuery</b></a>(string $query=NULL)<br/>public XSSearch <a href="XSSearch.html#setQuery"><b>setQuery</b></a>(string $query)</div>
- <p>获取解析后的搜索语句</p>
- <div class="detailHeader" id="relatedQuery-detail">
- relatedQuery<span class="detailHeaderTag">
- 属性
- <em>只读</em> </span>
- </div>
- <div class="signature">
- public array <a href="XSSearch.html#getRelatedQuery"><b>getRelatedQuery</b></a>(string $query=NULL, int $limit=6)</div>
- <p>获取相关搜索词列表</p>
- <h2>方法明细</h2>
- <div class="detailHeader" id="addDb-detail">
- addDb()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>addDb</b>(string $name)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol"></td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L364">sdk/php/lib/XSSearch.class.php#L364</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">addDb</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_SEARCH_ADD_DB</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$name</span><span style="color: #007700">));<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDbs</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>添加搜索的数据库名, 支持多库同时搜索</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSSearch.html#setDb">setDb</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="addQueryTerm-detail">
- addQueryTerm()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>addQueryTerm</b>(string $field, string $term, int $addOp=0, float $scale=1)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">索引词所属的字段, 若为混合区词汇可设为 null 或 body 型的字段名</td>
- </tr>
- <tr>
- <td class="paramNameCol">$term</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">索引词 (强制转为小写)</td>
- </tr>
- <tr>
- <td class="paramNameCol">$addOp</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">与旧语句的结合操作符, 如果无旧语句或为空则这此无意义, 支持的操作符有:</td>
- </tr>
- <tr>
- <td class="paramNameCol">$scale</td>
- <td class="paramTypeCol">float</td>
- <td class="paramDescCol">权重计算缩放比例, 默认为 1表示不缩放, 其它值范围 0.xx ~ 655.35</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L842">sdk/php/lib/XSSearch.class.php#L842</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">addQueryTerm</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$term</span><span style="color: #007700">, </span><span style="color: #0000BB">$addOp </span><span style="color: #007700">= </span><span style="color: #0000BB">CMD_QUERY_OP_AND</span><span style="color: #007700">, </span><span style="color: #0000BB">$scale </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$term </span><span style="color: #007700">= </span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$term </span><span style="color: #007700">= </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$bscale </span><span style="color: #007700">= (</span><span style="color: #0000BB">$scale </span><span style="color: #007700">> </span><span style="color: #0000BB">0 </span><span style="color: #007700">&& </span><span style="color: #0000BB">$scale </span><span style="color: #007700">!= </span><span style="color: #0000BB">1</span><span style="color: #007700">) ? </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">'n'</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$scale </span><span style="color: #007700">* </span><span style="color: #0000BB">100</span><span style="color: #007700">)) : </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$field </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_TERM</span><span style="color: #007700">, </span><span style="color: #0000BB">$addOp</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">, </span><span style="color: #0000BB">$term</span><span style="color: #007700">, </span><span style="color: #0000BB">$bscale</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>增加默认搜索词汇</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSSearch.html#addQueryString">addQueryString</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="addRange-detail">
- addRange()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>addRange</b>(string $field, mixed $from, mixed $to)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol"></td>
- </tr>
- <tr>
- <td class="paramNameCol">$from</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">起始值(不包含), 若设为 null 则相当于匹配 <= to (字典顺序)</td>
- </tr>
- <tr>
- <td class="paramNameCol">$to</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">结束值(包含), 若设为 null 则相当于匹配 >= from (字典顺序)</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L249">sdk/php/lib/XSSearch.class.php#L249</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">addRange</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$from</span><span style="color: #007700">, </span><span style="color: #0000BB">$to</span><span style="color: #007700">)<br />{<br /> if (</span><span style="color: #0000BB">$from </span><span style="color: #007700">!== </span><span style="color: #0000BB">null </span><span style="color: #007700">|| </span><span style="color: #0000BB">$to </span><span style="color: #007700">!== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$from</span><span style="color: #007700">) > </span><span style="color: #0000BB">255 </span><span style="color: #007700">|| </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$to</span><span style="color: #007700">) > </span><span style="color: #0000BB">255</span><span style="color: #007700">)<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Value of range is too long'</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$from </span><span style="color: #007700">= </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$from</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$to </span><span style="color: #007700">= </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$to</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$from </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_VALCMP</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_QUERY_OP_FILTER</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">, </span><span style="color: #0000BB">$to</span><span style="color: #007700">, </span><span style="color: #0000BB">chr</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_VALCMP_LE</span><span style="color: #007700">));<br /> else if (</span><span style="color: #0000BB">$to </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_VALCMP</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_QUERY_OP_FILTER</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">, </span><span style="color: #0000BB">$from</span><span style="color: #007700">, </span><span style="color: #0000BB">chr</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_VALCMP_GE</span><span style="color: #007700">));<br /> else<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_RANGE</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_QUERY_OP_FILTER</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">, </span><span style="color: #0000BB">$from</span><span style="color: #007700">, </span><span style="color: #0000BB">$to</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> }<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>添加搜索过滤区间或范围</p>
- <div class="detailHeader" id="addSearchLog-detail">
- addSearchLog()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.1.1 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>addSearchLog</b>(string $query, int $wdf=1)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">需要记录的数据</td>
- </tr>
- <tr>
- <td class="paramNameCol">$wdf</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">需要记录的次数, 默认为 1</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L713">sdk/php/lib/XSSearch.class.php#L713</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">addSearchLog</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #0000BB">$wdf </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_SEARCH_ADD_LOG</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$wdf </span><span style="color: #007700">> </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$cmd</span><span style="color: #007700">[</span><span style="color: #DD0000">'buf1'</span><span style="color: #007700">] = </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">'i'</span><span style="color: #007700">, </span><span style="color: #0000BB">$wdf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_LOGGED</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>添加搜索日志关键词到缓冲区里
- 需要调用 <a href="XSIndex.html#flushLogging">XSIndex::flushLogging</a> 才能确保立即刷新, 否则要隔一段时间</p>
- <div class="detailHeader" id="addWeight-detail">
- addWeight()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>addWeight</b>(string $field, string $term, float $weight=1)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">索引词所属的字段</td>
- </tr>
- <tr>
- <td class="paramNameCol">$term</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">索引词</td>
- </tr>
- <tr>
- <td class="paramNameCol">$weight</td>
- <td class="paramTypeCol">float</td>
- <td class="paramDescCol">权重计算缩放比例</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L279">sdk/php/lib/XSSearch.class.php#L279</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">addWeight</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$term</span><span style="color: #007700">, </span><span style="color: #0000BB">$weight </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">addQueryTerm</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$term</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_QUERY_OP_AND_MAYBE</span><span style="color: #007700">, </span><span style="color: #0000BB">$weight</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>添加权重索引词
- 无论是否包含这种词都不影响搜索匹配, 但会参与计算结果权重, 使结果的相关度更高</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSSearch.html#addQueryTerm">addQueryTerm</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="count-detail">
- count()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public int <b>count</b>(string $query=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 若传入 null 使用默认语句, 调用后会还原默认排序方式
- 如果搜索语句和最近一次 <a href="XSSearch.html#search">search</a> 的语句一样, 请改用 <a href="XSSearch.html#getLastCount">getLastCount</a> 以提升效率
- 最大长度为 80 字节</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">匹配的搜索结果数量, 估算数值</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L419">sdk/php/lib/XSSearch.class.php#L419</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #DD0000">'' </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">preQueryString</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #DD0000">'' </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count </span><span style="color: #007700">!== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_GET_TOTAL</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_SEARCH_TOTAL</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= </span><span style="color: #0000BB">unpack</span><span style="color: #007700">(</span><span style="color: #DD0000">'Icount'</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">);<br /><br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #DD0000">''</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count </span><span style="color: #007700">= </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[</span><span style="color: #DD0000">'count'</span><span style="color: #007700">];<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[</span><span style="color: #DD0000">'count'</span><span style="color: #007700">];<br />}</span>
- </span>
- </code></div>
- </div>
- <p>估算搜索语句的匹配数据量</p>
- <div class="detailHeader" id="getAllSynonyms-detail">
- getAllSynonyms()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.3.0 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getAllSynonyms</b>(int $limit=0, int $offset=0, bool $stemmed=false)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$limit</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">数量上限, 若设为 0 则启用默认值 100 个</td>
- </tr>
- <tr>
- <td class="paramNameCol">$offset</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">偏移量, 即跳过的结果数量, 默认为 0</td>
- </tr>
- <tr>
- <td class="paramNameCol">$stemmed</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是否包含处理过的词根同义词, 默认为 false 表示否</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">同义词记录数组, 每个词条为键, 同义词条组成的数组为值</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L113">sdk/php/lib/XSSearch.class.php#L113</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getAllSynonyms</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$offset </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$stemmed </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$page </span><span style="color: #007700">= </span><span style="color: #0000BB">$limit </span><span style="color: #007700">> </span><span style="color: #0000BB">0 </span><span style="color: #007700">? </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">'II'</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$offset</span><span style="color: #007700">), </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">)) : </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_SEARCH_GET_SYNONYMS</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf1' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$page</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$cmd</span><span style="color: #007700">[</span><span style="color: #DD0000">'arg1'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$stemmed </span><span style="color: #007700">== </span><span style="color: #0000BB">true </span><span style="color: #007700">? </span><span style="color: #0000BB">1 </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_RESULT_SYNONYMS</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /> if (!empty(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">))<br /> {<br /> foreach (</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">) as </span><span style="color: #0000BB">$line</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"\t"</span><span style="color: #007700">, </span><span style="color: #0000BB">$line</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$key </span><span style="color: #007700">= </span><span style="color: #0000BB">array_shift</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[</span><span style="color: #0000BB">$key</span><span style="color: #007700">] = </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br /> }<br /> }<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取当前库内的全部同义词列表</p>
- <div class="detailHeader" id="getCorrectedQuery-detail">
- getCorrectedQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getCorrectedQuery</b>(string $query=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">需要展开的前缀, 可为拼音、英文、中文</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">返回搜索词组成的数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L677">sdk/php/lib/XSSearch.class.php#L677</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getCorrectedQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /><br /> try<br /> {<br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count </span><span style="color: #007700">> </span><span style="color: #0000BB">0 </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count </span><span style="color: #007700">> </span><span style="color: #0000BB">ceil</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getDbTotal</span><span style="color: #007700">() * </span><span style="color: #0000BB">0.001</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cleanFieldQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_query</span><span style="color: #007700">);<br /> }<br /> if (empty(</span><span style="color: #0000BB">$query</span><span style="color: #007700">) || </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #DD0000">':'</span><span style="color: #007700">) !== </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">= </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_QUERY_GET_CORRECTED</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$buf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_QUERY_CORRECTED</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf </span><span style="color: #007700">!== </span><span style="color: #DD0000">''</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">));<br /> }<br /> catch (</span><span style="color: #0000BB">XSException $e</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">() != </span><span style="color: #0000BB">CMD_ERR_XAPIAN</span><span style="color: #007700">)<br /> throw </span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br /> }<br /><br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取修正后的搜索词列表
- 通常当某次检索结果数量偏少时, 可以用该函数设计 "你是不是要找: ..." 功能</p>
- <div class="detailHeader" id="getDbTotal-detail">
- getDbTotal()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public int <b>getDbTotal</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">数据总量</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L532">sdk/php/lib/XSSearch.class.php#L532</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getDbTotal</span><span style="color: #007700">()<br />{<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_DB_TOTAL</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_DB_TOTAL</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$tmp </span><span style="color: #007700">= </span><span style="color: #0000BB">unpack</span><span style="color: #007700">(</span><span style="color: #DD0000">'Itotal'</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'total'</span><span style="color: #007700">];<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取搜索数据库内的数据总量</p>
- <div class="detailHeader" id="getExpandedQuery-detail">
- getExpandedQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getExpandedQuery</b>(string $query, int $limit=10)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">需要展开的前缀, 可为拼音、英文、中文</td>
- </tr>
- <tr>
- <td class="paramNameCol">$limit</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">需要返回的搜索词数量上限, 默认为 10, 最大值为 20</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">返回搜索词组成的数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L629">sdk/php/lib/XSSearch.class.php#L629</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getExpandedQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">10</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /> </span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">max</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">20</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">)));<br /><br /> try<br /> {<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">= </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_QUERY_GET_EXPANDED</span><span style="color: #007700">, </span><span style="color: #DD0000">'arg1' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$limit</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$buf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_RESULT_BEGIN</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// echo "Raw Query: " . $res->buf . "\n"; <br /> // get result documents <br /> </span><span style="color: #007700">while (</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getRespond</span><span style="color: #007700">();<br /> if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_SEARCH_RESULT_FIELD</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[] = </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">);<br /> }<br /> else if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_OK </span><span style="color: #007700">&& </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_OK_RESULT_END</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #FF8000">// got the end<br /> // echo "Parsed Query: " . $res->buf . "\n"; <br /> </span><span style="color: #007700">break;<br /> }<br /> else<br /> {<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">= </span><span style="color: #DD0000">'Unexpected respond in search {CMD:' </span><span style="color: #007700">. </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">. </span><span style="color: #DD0000">', ARG:' </span><span style="color: #007700">. </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg </span><span style="color: #007700">. </span><span style="color: #DD0000">'}'</span><span style="color: #007700">;<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br /> }<br /> }<br /> }<br /> catch (</span><span style="color: #0000BB">XSException $e</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">() != </span><span style="color: #0000BB">CMD_ERR_XAPIAN</span><span style="color: #007700">)<br /> throw </span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br /> }<br /><br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取展开的搜索词列表</p>
- <div class="detailHeader" id="getFacets-detail">
- getFacets()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.1.0 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getFacets</b>(string $field=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">读取分面记数的字段, 若为 null 则返回全部分面搜索记录</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">返回由值和计数组成的关联数组, 若不存在或未曾登记过则返回空数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L319">sdk/php/lib/XSSearch.class.php#L319</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getFacets</span><span style="color: #007700">(</span><span style="color: #0000BB">$field </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> if (</span><span style="color: #0000BB">$field </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">;<br /> return isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]) ? </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">] : array();<br />}</span>
- </span>
- </code></div>
- </div>
- <p>读取最近一次分面搜索记数
- 必须在某一次 <a href="XSSearch.html#search">search</a> 之后调用本函数才有意义</p>
- <div class="detailHeader" id="getHotQuery-detail">
- getHotQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getHotQuery</b>(int $limit=6, string $type='total')</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$limit</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">需要返回的热门搜索数量上限, 默认为 6, 最大值为 50</td>
- </tr>
- <tr>
- <td class="paramNameCol">$type</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">排序类型, 默认为 total(搜索总量), 可选值还有 lastnum(上周), currnum(本周)</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">返回以搜索词为键, 搜索指数为值的关联数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L546">sdk/php/lib/XSSearch.class.php#L546</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getHotQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">6</span><span style="color: #007700">, </span><span style="color: #0000BB">$type </span><span style="color: #007700">= </span><span style="color: #DD0000">'total'</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /> </span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">max</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">50</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">)));<br /><br /> </span><span style="color: #FF8000">// query from log_db<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">setScheme</span><span style="color: #007700">(</span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">logger</span><span style="color: #007700">());<br /> try<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">setDb</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">LOG_DB</span><span style="color: #007700">)-></span><span style="color: #0000BB">setLimit</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$type </span><span style="color: #007700">!== </span><span style="color: #DD0000">'lastnum' </span><span style="color: #007700">&& </span><span style="color: #0000BB">$type </span><span style="color: #007700">!== </span><span style="color: #DD0000">'currnum'</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$type </span><span style="color: #007700">= </span><span style="color: #DD0000">'total'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">search</span><span style="color: #007700">(</span><span style="color: #0000BB">$type </span><span style="color: #007700">. </span><span style="color: #DD0000">':1'</span><span style="color: #007700">);<br /> foreach (</span><span style="color: #0000BB">$result </span><span style="color: #007700">as </span><span style="color: #0000BB">$doc</span><span style="color: #007700">) </span><span style="color: #FF8000">/* @var $doc XSDocument */<br /> </span><span style="color: #007700">{<br /> </span><span style="color: #0000BB">$body </span><span style="color: #007700">= </span><span style="color: #0000BB">$doc</span><span style="color: #007700">-></span><span style="color: #0000BB">body</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[</span><span style="color: #0000BB">$body</span><span style="color: #007700">] = </span><span style="color: #0000BB">$doc</span><span style="color: #007700">-></span><span style="color: #0000BB">f</span><span style="color: #007700">(</span><span style="color: #0000BB">$type</span><span style="color: #007700">);<br /> }<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">restoreDb</span><span style="color: #007700">();<br /> }<br /> catch (</span><span style="color: #0000BB">XSException $e</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">() != </span><span style="color: #0000BB">CMD_ERR_XAPIAN</span><span style="color: #007700">)<br /> throw </span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br /> }<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">restoreScheme</span><span style="color: #007700">();<br /><br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取热门搜索词列表</p>
- <div class="detailHeader" id="getLastCount-detail">
- getLastCount()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public int <b>getLastCount</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">匹配数据量, 如从未搜索则返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L523">sdk/php/lib/XSSearch.class.php#L523</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getLastCount</span><span style="color: #007700">()<br />{<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastCount</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取最近那次搜索的匹配总数估值</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSSearch.html#search">search</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="getQuery-detail">
- getQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public string <b>getQuery</b>(string $query=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 若传入 null 使用默认语句</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">返回解析后的搜索语句</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L137">sdk/php/lib/XSSearch.class.php#L137</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #DD0000">'' </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">preQueryString</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_GET_STRING</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_QUERY_STRING</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取解析后的搜索语句</p>
- <div class="detailHeader" id="getRelatedQuery-detail">
- getRelatedQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>getRelatedQuery</b>(string $query=NULL, int $limit=6)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 若传入 null 使用默认语句</td>
- </tr>
- <tr>
- <td class="paramNameCol">$limit</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">需要返回的相关搜索数量上限, 默认为 6, 最大值为 20</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">返回搜索词组成的数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L582">sdk/php/lib/XSSearch.class.php#L582</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getRelatedQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">, </span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">6</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /> </span><span style="color: #0000BB">$limit </span><span style="color: #007700">= </span><span style="color: #0000BB">max</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">20</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">)));<br /><br /> </span><span style="color: #FF8000">// Simple to disable query with field filter <br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cleanFieldQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_query</span><span style="color: #007700">);<br /><br /> if (empty(</span><span style="color: #0000BB">$query</span><span style="color: #007700">) || </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #DD0000">':'</span><span style="color: #007700">) !== </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br /><br /> </span><span style="color: #FF8000">// Search the log database<br /> </span><span style="color: #0000BB">$op </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">setScheme</span><span style="color: #007700">(</span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">logger</span><span style="color: #007700">());<br /> try<br /> {<br /> </span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">setDb</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">LOG_DB</span><span style="color: #007700">)-></span><span style="color: #0000BB">setFuzzy</span><span style="color: #007700">()-></span><span style="color: #0000BB">setLimit</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">)-></span><span style="color: #0000BB">search</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> foreach (</span><span style="color: #0000BB">$result </span><span style="color: #007700">as </span><span style="color: #0000BB">$doc</span><span style="color: #007700">) </span><span style="color: #FF8000">/* @var $doc XSDocument */<br /> </span><span style="color: #007700">{<br /> </span><span style="color: #0000BB">$doc</span><span style="color: #007700">-></span><span style="color: #0000BB">setCharset</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$body </span><span style="color: #007700">= </span><span style="color: #0000BB">$doc</span><span style="color: #007700">-></span><span style="color: #0000BB">body</span><span style="color: #007700">;<br /> if (!</span><span style="color: #0000BB">strcasecmp</span><span style="color: #007700">(</span><span style="color: #0000BB">$body</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">))<br /> continue;<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$body</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$ret</span><span style="color: #007700">) == </span><span style="color: #0000BB">$limit</span><span style="color: #007700">)<br /> break;<br /> }<br /> }<br /> catch (</span><span style="color: #0000BB">XSException $e</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">() != </span><span style="color: #0000BB">CMD_ERR_XAPIAN</span><span style="color: #007700">)<br /> throw </span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br /> }<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">restoreDb</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">restoreScheme</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp </span><span style="color: #007700">= </span><span style="color: #0000BB">$op</span><span style="color: #007700">;<br /><br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取相关搜索词列表</p>
- <div class="detailHeader" id="highlight-detail">
- highlight()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public string <b>highlight</b>(string $value)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$value</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">需要处理的数据</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">高亮后的数据</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L727">sdk/php/lib/XSSearch.class.php#L727</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">highlight</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #FF8000">// return empty value directly<br /> </span><span style="color: #007700">if (empty(</span><span style="color: #0000BB">$value</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br /><br /> </span><span style="color: #FF8000">// initlize the highlight replacements<br /> </span><span style="color: #007700">if (!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">initHighlight</span><span style="color: #007700">();<br /><br /> </span><span style="color: #FF8000">// process replace<br /> </span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'pattern'</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'pattern'</span><span style="color: #007700">], </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'replace'</span><span style="color: #007700">], </span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /> if (isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'pairs'</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">array_keys</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'pairs'</span><span style="color: #007700">]), </span><span style="color: #0000BB">array_values</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight</span><span style="color: #007700">[</span><span style="color: #DD0000">'pairs'</span><span style="color: #007700">]), </span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>搜索结果字符串高亮处理
- 对搜索结果文档的字段进行高亮、飘红处理, 高亮部分加上 em 标记</p>
- <div class="detailHeader" id="markResetScheme-detail">
- markResetScheme()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>markResetScheme</b>()</div>
- </td></tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L376">sdk/php/lib/XSSearch.class.php#L376</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">markResetScheme</span><span style="color: #007700">()<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_resetScheme </span><span style="color: #007700">= </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>标记字段方案重置</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XS.html#setScheme">XS::setScheme</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="open-detail">
- open()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>open</b>(string $conn)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$conn</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol"></td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L55">sdk/php/lib/XSSearch.class.php#L55</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">open</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">open</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_prefix </span><span style="color: #007700">= array();<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_fieldSet </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastCount </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>连接搜索服务端并初始化
- 每次重新连接后所有的搜索语句相关设置均被还原</p>
- <div class="SeeAlso">
- <h4>参见</h4>
- <ul>
- <li><a href="XSServer.html#open">XSServer::open</a></li>
- </ul>
- </div>
- <div class="detailHeader" id="search-detail">
- search()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSDocument[] <b>search</b>(string $query=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 若传入 null 使用默认语句, 最大长度为 80 字节</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSDocument[]</td>
- <td class="paramDescCol">匹配的搜索结果文档列表</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L441">sdk/php/lib/XSSearch.class.php#L441</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">search</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDb </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">LOG_DB</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_highlight </span><span style="color: #007700">= </span><span style="color: #0000BB">$query</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #DD0000">'' </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">preQueryString</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$page </span><span style="color: #007700">= </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">'II'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_offset</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_limit </span><span style="color: #007700">> </span><span style="color: #0000BB">0 </span><span style="color: #007700">? </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_limit </span><span style="color: #007700">: </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">PAGE_SIZE</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// get result header<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_GET_RESULT</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">, </span><span style="color: #0000BB">$page</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_RESULT_BEGIN</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$tmp </span><span style="color: #007700">= </span><span style="color: #0000BB">unpack</span><span style="color: #007700">(</span><span style="color: #DD0000">'Icount'</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastCount </span><span style="color: #007700">= </span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'count'</span><span style="color: #007700">];<br /><br /> </span><span style="color: #FF8000">// load vno map to name of fields<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets </span><span style="color: #007700">= array();<br /> </span><span style="color: #0000BB">$vnoes </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getScheme</span><span style="color: #007700">()-></span><span style="color: #0000BB">getVnoMap</span><span style="color: #007700">();<br /><br /> </span><span style="color: #FF8000">// get result documents <br /> </span><span style="color: #007700">while (</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getRespond</span><span style="color: #007700">();<br /> if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_SEARCH_RESULT_FACETS</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$off </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /> while ((</span><span style="color: #0000BB">$off </span><span style="color: #007700">+ </span><span style="color: #0000BB">6</span><span style="color: #007700">) < </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$tmp </span><span style="color: #007700">= </span><span style="color: #0000BB">unpack</span><span style="color: #007700">(</span><span style="color: #DD0000">'Cvno/Cvlen/Inum'</span><span style="color: #007700">, </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$off</span><span style="color: #007700">, </span><span style="color: #0000BB">6</span><span style="color: #007700">));<br /> if (isset(</span><span style="color: #0000BB">$vnoes</span><span style="color: #007700">[</span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'vno'</span><span style="color: #007700">]]))<br /> {<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #0000BB">$vnoes</span><span style="color: #007700">[</span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'vno'</span><span style="color: #007700">]];<br /> </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$off </span><span style="color: #007700">+ </span><span style="color: #0000BB">6</span><span style="color: #007700">, </span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'vlen'</span><span style="color: #007700">]);<br /> if (!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">] = array();<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_facets</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">][</span><span style="color: #0000BB">$value</span><span style="color: #007700">] = </span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'num'</span><span style="color: #007700">];<br /> }<br /> </span><span style="color: #0000BB">$off </span><span style="color: #007700">+= </span><span style="color: #0000BB">$tmp</span><span style="color: #007700">[</span><span style="color: #DD0000">'vlen'</span><span style="color: #007700">] + </span><span style="color: #0000BB">6</span><span style="color: #007700">;<br /> }<br /> }<br /> else if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_SEARCH_RESULT_DOC</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #FF8000">// got new doc<br /> </span><span style="color: #0000BB">$doc </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSDocument</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$doc</span><span style="color: #007700">;<br /> }<br /> else if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_SEARCH_RESULT_FIELD</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #FF8000">// fields of doc<br /> </span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$doc</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= isset(</span><span style="color: #0000BB">$vnoes</span><span style="color: #007700">[</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg</span><span style="color: #007700">]) ? </span><span style="color: #0000BB">$vnoes</span><span style="color: #007700">[</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg</span><span style="color: #007700">] : </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$doc</span><span style="color: #007700">-></span><span style="color: #0000BB">setField</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">);<br /> }<br /> }<br /> else if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_OK </span><span style="color: #007700">&& </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg </span><span style="color: #007700">== </span><span style="color: #0000BB">CMD_OK_RESULT_END</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #FF8000">// got the end<br /> </span><span style="color: #007700">break;<br /> }<br /> else<br /> {<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">= </span><span style="color: #DD0000">'Unexpected respond in search {CMD:' </span><span style="color: #007700">. </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">cmd </span><span style="color: #007700">. </span><span style="color: #DD0000">', ARG:' </span><span style="color: #007700">. </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">arg </span><span style="color: #007700">. </span><span style="color: #DD0000">'}'</span><span style="color: #007700">;<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br /> }<br /> }<br /><br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #DD0000">''</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_count </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastCount</span><span style="color: #007700">;<br /> </span><span style="color: #FF8000">// trigger to logQuery<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">logQuery</span><span style="color: #007700">();<br /> </span><span style="color: #FF8000">// trigger to initHighlight<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">initHighlight</span><span style="color: #007700">();<br /> }<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_offset </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取匹配的搜索结果文档
- 默认提取最匹配的前 self::PAGE_SIZE 个结果
- 如需分页请参见 <a href="XSSearch.html#setLimit">setLimit</a> 设置, 每次调用本函数后都会还原 setLimit 的设置</p>
- <div class="detailHeader" id="setAutoSynonyms-detail">
- setAutoSynonyms()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.3.0 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setAutoSynonyms</b>(bool $value=true)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$value</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">设为 true 表示开启同义词功能, 设为 false 关闭同义词功能</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L95">sdk/php/lib/XSSearch.class.php#L95</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setAutoSynonyms</span><span style="color: #007700">(</span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$flag </span><span style="color: #007700">= </span><span style="color: #0000BB">CMD_PARSE_FLAG_BOOLEAN </span><span style="color: #007700">| </span><span style="color: #0000BB">CMD_PARSE_FLAG_PHRASE </span><span style="color: #007700">| </span><span style="color: #0000BB">CMD_PARSE_FLAG_LOVEHATE</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">$value </span><span style="color: #007700">=== </span><span style="color: #0000BB">true</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$flag </span><span style="color: #007700">|= </span><span style="color: #0000BB">CMD_PARSE_FLAG_AUTO_MULTIWORD_SYNONYMS</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_QUERY_PARSEFLAG</span><span style="color: #007700">, </span><span style="color: #DD0000">'arg' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$flag</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>开启自动同义词搜索功能</p>
- <div class="detailHeader" id="setCharset-detail">
- setCharset()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setCharset</b>(string $charset)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$charset</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol"></td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L69">sdk/php/lib/XSSearch.class.php#L69</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setCharset</span><span style="color: #007700">(</span><span style="color: #0000BB">$charset</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset </span><span style="color: #007700">= </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$charset</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset </span><span style="color: #007700">== </span><span style="color: #DD0000">'UTF8'</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset </span><span style="color: #007700">= </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置字符集
- 默认字符集是 UTF-8, 如果您提交的搜索语句和预期得到的搜索结果为其它字符集, 请先设置</p>
- <div class="detailHeader" id="setCollapse-detail">
- setCollapse()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setCollapse</b>(string $field, int $num=1)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">依据该字段的值折叠搜索结果, 设为 null 则取消折叠</td>
- </tr>
- <tr>
- <td class="paramNameCol">$num</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">折叠后只是返最匹配的数据数量, 默认为 1, 最大值 255</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L232">sdk/php/lib/XSSearch.class.php#L232</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setCollapse</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$num </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$field </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$max </span><span style="color: #007700">= </span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">255</span><span style="color: #007700">, </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$num</span><span style="color: #007700">));<br /><br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_SET_COLLAPSE</span><span style="color: #007700">, </span><span style="color: #0000BB">$max</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置折叠搜索结果
- 注意, 每当调用 <a href="XSSearch.html#setDb">setDb</a> 或 <a href="XSSearch.html#addDb">addDb</a> 修改当前数据库时会重置此项设置</p>
- <div class="detailHeader" id="setDb-detail">
- setDb()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setDb</b>(string $name)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol"></td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L347">sdk/php/lib/XSSearch.class.php#L347</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setDb</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_SEARCH_SET_DB</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)));<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastDb </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDb</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_lastDbs </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDbs</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDb </span><span style="color: #007700">= </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_curDbs </span><span style="color: #007700">= array();<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置要搜索的数据库名
- 若未设置, 使用默认数据库, 数据库必须位于服务端用户目录下
- 对于远程数据库, 请使用 stub 文件来支持</p>
- <div class="detailHeader" id="setFacets-detail">
- setFacets()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.1.0 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setFacets</b>(mixed $field, bool $exact=false)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">要进行分组统计的字段或字段组成的数组, 最多同时支持 8 个</td>
- </tr>
- <tr>
- <td class="paramNameCol">$exact</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是否要求绝对精确搜索, 这会造成较大的系统开销</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L294">sdk/php/lib/XSSearch.class.php#L294</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setFacets</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$exact </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">= </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /> if (!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$field </span><span style="color: #007700">= array(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br /> foreach (</span><span style="color: #0000BB">$field </span><span style="color: #007700">as </span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$ff </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$ff</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">XSFieldMeta</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_STRING</span><span style="color: #007700">)<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">"Field `</span><span style="color: #0000BB">$name</span><span style="color: #DD0000">' cann't be used for facets search, can only be string type"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">.= </span><span style="color: #0000BB">chr</span><span style="color: #007700">(</span><span style="color: #0000BB">$ff</span><span style="color: #007700">-></span><span style="color: #0000BB">vno</span><span style="color: #007700">);<br /> }<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'cmd' </span><span style="color: #007700">=> </span><span style="color: #0000BB">CMD_SEARCH_SET_FACETS</span><span style="color: #007700">, </span><span style="color: #DD0000">'buf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$buf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$cmd</span><span style="color: #007700">[</span><span style="color: #DD0000">'arg1'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$exact </span><span style="color: #007700">=== </span><span style="color: #0000BB">true </span><span style="color: #007700">? </span><span style="color: #0000BB">1 </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置分面搜索记数
- 用于记录匹配搜索结果中按字段值分组的数量统计, 每次调用 <a href="XSSearch.html#search">search</a> 后会还原设置
- 对于多次调用 $exact 参数以最后一次为准, 只支持字段值不超过 255 字节的情况</p>
- <div class="detailHeader" id="setFuzzy-detail">
- setFuzzy()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setFuzzy</b>(bool $value=true)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$value</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">设为 true 表示开启模糊搜索, 设为 false 关闭模糊搜索</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L83">sdk/php/lib/XSSearch.class.php#L83</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setFuzzy</span><span style="color: #007700">(</span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp </span><span style="color: #007700">= </span><span style="color: #0000BB">$value </span><span style="color: #007700">=== </span><span style="color: #0000BB">true </span><span style="color: #007700">? </span><span style="color: #0000BB">CMD_QUERY_OP_OR </span><span style="color: #007700">: </span><span style="color: #0000BB">CMD_QUERY_OP_AND</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>开启模糊搜索
- 默认情况只返回包含所有搜索词的记录, 通过本方法可以获得更多搜索结果</p>
- <div class="detailHeader" id="setLimit-detail">
- setLimit()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setLimit</b>(int $limit, int $offset=0)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$limit</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">数量上限, 若设为 0 则启用默认值 self::PAGE_SIZE</td>
- </tr>
- <tr>
- <td class="paramNameCol">$offset</td>
- <td class="paramTypeCol">int</td>
- <td class="paramDescCol">偏移量, 即跳过的结果数量, 默认为 0</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L333">sdk/php/lib/XSSearch.class.php#L333</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setLimit</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">, </span><span style="color: #0000BB">$offset </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$limit</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_offset </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置搜索结果的数量和偏移
- 用于搜索结果分页, 每次调用 <a href="XSSearch.html#search">search</a> 后会还原这2个变量到初始值</p>
- <div class="detailHeader" id="setMultiSort-detail">
- setMultiSort()
- <span class="detailHeaderTag">
- 方法
- (自版本 v1.1.0 起可用)
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setMultiSort</b>(array $fields)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$fields</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">排序依据的字段数组, 以字段名称为键, true/false 为值表示正序或逆序</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L170">sdk/php/lib/XSSearch.class.php#L170</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setMultiSort</span><span style="color: #007700">(</span><span style="color: #0000BB">$fields</span><span style="color: #007700">)<br />{<br /> if (!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$fields</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">setSort</span><span style="color: #007700">(</span><span style="color: #0000BB">$fields</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// [vno][0/1] (0:reverse,1:asc)<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">= </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /> foreach (</span><span style="color: #0000BB">$fields </span><span style="color: #007700">as </span><span style="color: #0000BB">$key </span><span style="color: #007700">=> </span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">is_bool</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$key</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$asc </span><span style="color: #007700">= </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br /> }<br /> else<br /> {<br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$asc </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br /> }<br /> if (</span><span style="color: #0000BB">$vno </span><span style="color: #007700">!= </span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$buf </span><span style="color: #007700">.= </span><span style="color: #0000BB">chr</span><span style="color: #007700">(</span><span style="color: #0000BB">$vno</span><span style="color: #007700">) . </span><span style="color: #0000BB">chr</span><span style="color: #007700">(</span><span style="color: #0000BB">$asc </span><span style="color: #007700">? </span><span style="color: #0000BB">1 </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /> }<br /> if (</span><span style="color: #0000BB">$buf </span><span style="color: #007700">!== </span><span style="color: #DD0000">''</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_SET_SORT</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_SORT_TYPE_MULTI</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$buf</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> }<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置多字段组合排序方式
- 当您需要根据多个字段的值按不同的方式综合排序时, 请使用这项</p>
- <div class="detailHeader" id="setQuery-detail">
- setQuery()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setQuery</b>(string $query)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 设为 null 则清空搜索语句, 最大长度为 80 字节</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L152">sdk/php/lib/XSSearch.class.php#L152</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setQuery</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">clearQuery</span><span style="color: #007700">();<br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">!== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_query </span><span style="color: #007700">= </span><span style="color: #0000BB">$query</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">addQueryString</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> }<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置默认搜索语句
- 用于不带参数的 <a href="XSSearch.html#count">count</a> 或 <a href="XSSearch.html#search">search</a> 以及 <a href="XSSearch.html#terms">terms</a> 调用
- 可与 <a href="XSSearch.html#addWeight">addWeight</a> 组合运用</p>
- <div class="detailHeader" id="setSort-detail">
- setSort()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public XSSearch <b>setSort</b>(string $field, bool $asc=false)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$field</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">依据指定字段的值排序, 设为 null 则用默认顺序</td>
- </tr>
- <tr>
- <td class="paramNameCol">$asc</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是否为正序排列, 即从小到大, 从少到多, 默认为反序</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">XSSearch</td>
- <td class="paramDescCol">返回对象本身以支持串接操作</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L208">sdk/php/lib/XSSearch.class.php#L208</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">setSort</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">$asc </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br /> if (</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">setMultiSort</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$field </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_SET_SORT</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_SORT_TYPE_RELEVANCE</span><span style="color: #007700">);<br /> else<br /> {<br /> </span><span style="color: #0000BB">$type </span><span style="color: #007700">= </span><span style="color: #0000BB">CMD_SORT_TYPE_VALUE </span><span style="color: #007700">| (</span><span style="color: #0000BB">$asc </span><span style="color: #007700">? </span><span style="color: #0000BB">CMD_SORT_FLAG_ASCENDING </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$vno </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">xs</span><span style="color: #007700">-></span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)-></span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_SEARCH_SET_SORT</span><span style="color: #007700">, </span><span style="color: #0000BB">$type</span><span style="color: #007700">, </span><span style="color: #0000BB">$vno</span><span style="color: #007700">);<br /> }<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>设置搜索结果的排序方式
- 注意, 每当调用 <a href="XSSearch.html#setDb">setDb</a> 或 <a href="XSSearch.html#addDb">addDb</a> 修改当前数据库时会重置排序设定
- 此函数第一参数的用法与 <a href="XSSearch.html#setMultiSort">setMultiSort</a> 兼容, 即也可以用该方法实现多字段排序</p>
- <div class="detailHeader" id="terms-detail">
- terms()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public array <b>terms</b>(string $query=NULL, bool $convert=true)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$query</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">搜索语句, 若传入 null 使用默认语句, 最大长度为 80 字节</td>
- </tr>
- <tr>
- <td class="paramNameCol">$convert</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是否进行编码转换, 默认为 true</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">可用于高亮显示的词条列表</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L387">sdk/php/lib/XSSearch.class.php#L387</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">terms</span><span style="color: #007700">(</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">, </span><span style="color: #0000BB">$convert </span><span style="color: #007700">= </span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #DD0000">'' </span><span style="color: #007700">: </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">preQueryString</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /><br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #DD0000">'' </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_terms </span><span style="color: #007700">!== </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_terms</span><span style="color: #007700">;<br /> else<br /> {<br /> </span><span style="color: #0000BB">$cmd </span><span style="color: #007700">= new </span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_QUERY_GET_TERMS</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_defaultOp</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">, </span><span style="color: #0000BB">CMD_OK_QUERY_TERMS</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$ret </span><span style="color: #007700">= array();<br /><br /> </span><span style="color: #0000BB">$tmps </span><span style="color: #007700">= </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">' '</span><span style="color: #007700">, </span><span style="color: #0000BB">$res</span><span style="color: #007700">-></span><span style="color: #0000BB">buf</span><span style="color: #007700">);<br /> for (</span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$i </span><span style="color: #007700">< </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$tmps</span><span style="color: #007700">); </span><span style="color: #0000BB">$i</span><span style="color: #007700">++)<br /> {<br /> if (</span><span style="color: #0000BB">$tmps</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">] === </span><span style="color: #DD0000">'' </span><span style="color: #007700">|| </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$tmps</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">], </span><span style="color: #DD0000">':'</span><span style="color: #007700">) !== </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br /> continue;<br /> </span><span style="color: #0000BB">$ret</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$tmps</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">];<br /> }<br /> if (</span><span style="color: #0000BB">$query </span><span style="color: #007700">=== </span><span style="color: #DD0000">''</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_terms </span><span style="color: #007700">= </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br /> }<br /> return </span><span style="color: #0000BB">$convert </span><span style="color: #007700">? </span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$ret</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">_charset</span><span style="color: #007700">, </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">) : </span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取搜索语句中的高亮词条列表</p>
- </div><!-- end of content -->
- <div id="apiFooter">
- Copyright © 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
- All Rights Reserved.<br/>
- </div><!-- end of footer -->
- <script type="text/javascript">
- /*<![CDATA[*/
- $("a.toggle").toggle(function(){
- $(this).text($(this).text().replace(/Hide/,'Show'));
- $(this).parents(".summary").find(".inherited").hide();
- },function(){
- $(this).text($(this).text().replace(/Show/,'Hide'));
- $(this).parents(".summary").find(".inherited").show();
- });
- $(".sourceCode a.show").toggle(function(){
- $(this).text($(this).text().replace(/show/,'hide'));
- $(this).parents(".sourceCode").find("div.code").show();
- },function(){
- $(this).text($(this).text().replace(/hide/,'show'));
- $(this).parents(".sourceCode").find("div.code").hide();
- });
- $("a.sourceLink").click(function(){
- $(this).attr('target','_blank');
- });
- /*]]>*/
- </script>
- </div><!-- end of page -->
- </body>
- </html>
|