XSIndex.html 91 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  5. <meta name="language" content="zh-cn" />
  6. <link rel="stylesheet" type="text/css" href="css/style.css" />
  7. <link rel="stylesheet" type="text/css" href="css/api.css" />
  8. <script type="text/javascript" src="js/jquery.js"></script>
  9. <title>XSIndex</title>
  10. </head>
  11. <body>
  12. <div id="apiPage">
  13. <div id="apiHeader">
  14. <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
  15. </div><!-- end of header -->
  16. <div id="content" class="api-index">
  17. <h1>XSIndex</h1>
  18. <div id="nav">
  19. <a href="index.html">All Packages</a>
  20. | <a href="#properties">属性</a>
  21. | <a href="#methods">方法(函数)</a>
  22. </div>
  23. <table class="summaryTable docClass">
  24. <colgroup>
  25. <col class="col-name" />
  26. <col class="col-value" />
  27. </colgroup>
  28. <tr>
  29. <th>包</th>
  30. <td><a href="index.html#XS">XS</a></td>
  31. </tr>
  32. <tr>
  33. <th>继承关系</th>
  34. <td>class XSIndex &raquo;
  35. <a href="XSServer.html">XSServer</a> &raquo;
  36. <a href="XSComponent.html">XSComponent</a></td>
  37. </tr>
  38. <tr>
  39. <th>版本</th>
  40. <td>1.0.0</td>
  41. </tr>
  42. <tr>
  43. <th>源代码</th>
  44. <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php">sdk/php/lib/XSIndex.class.php</a></td>
  45. </tr>
  46. </table>
  47. <div id="classDescription">
  48. XS 索引管理
  49. 添加/删除/修改索引数据</div>
  50. <a name="properties"></a>
  51. <div class="summary docProperty">
  52. <h2>Public 属性</h2>
  53. <p><a href="#" class="toggle">隐去继承来的属性</a></p>
  54. <table class="summaryTable">
  55. <colgroup>
  56. <col class="col-property" />
  57. <col class="col-type" />
  58. <col class="col-description" />
  59. <col class="col-defined" />
  60. </colgroup>
  61. <tr>
  62. <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
  63. </tr>
  64. <tr class="inherited" id="project">
  65. <td><a href="XSServer.html#project-detail">project</a></td>
  66. <td>string</td>
  67. <td>获取当前项目名称</td>
  68. <td><a href="XSServer.html">XSServer</a></td>
  69. </tr>
  70. <tr class="inherited" id="respond">
  71. <td><a href="XSServer.html#respond-detail">respond</a></td>
  72. <td><a href="XSCommand.html">XSCommand</a></td>
  73. <td>从服务器读取响应指令</td>
  74. <td><a href="XSServer.html">XSServer</a></td>
  75. </tr>
  76. <tr class="inherited" id="socket">
  77. <td><a href="XSServer.html#socket-detail">socket</a></td>
  78. <td>mixed</td>
  79. <td>获取连接资源描述符</td>
  80. <td><a href="XSServer.html">XSServer</a></td>
  81. </tr>
  82. <tr class="inherited" id="xs">
  83. <td><a href="XSServer.html#xs-detail">xs</a></td>
  84. <td><a href="XS.html">XS</a></td>
  85. <td>服务端关联的 XS 对象</td>
  86. <td><a href="XSServer.html">XSServer</a></td>
  87. </tr>
  88. </table>
  89. </div>
  90. <a name="methods"></a>
  91. <div class="summary docMethod">
  92. <h2>Public 方法</h2>
  93. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  94. <table class="summaryTable">
  95. <colgroup>
  96. <col class="col-method" />
  97. <col class="col-description" />
  98. <col class="col-defined" />
  99. </colgroup>
  100. <tr>
  101. <th>名称</th><th>描述</th><th>定义于</th>
  102. </tr>
  103. <tr class="inherited" id="__construct">
  104. <td><a href="XSServer.html#__construct-detail">__construct()</a></td>
  105. <td>构造函数, 打开连接</td>
  106. <td><a href="XSServer.html">XSServer</a></td>
  107. </tr>
  108. <tr id="__destruct">
  109. <td><a href="XSIndex.html#__destruct-detail">__destruct()</a></td>
  110. <td>析构函数</td>
  111. <td>XSIndex</td>
  112. </tr>
  113. <tr class="inherited" id="__get">
  114. <td><a href="XSComponent.html#__get-detail">__get()</a></td>
  115. <td>魔术方法 __get</td>
  116. <td><a href="XSComponent.html">XSComponent</a></td>
  117. </tr>
  118. <tr class="inherited" id="__isset">
  119. <td><a href="XSComponent.html#__isset-detail">__isset()</a></td>
  120. <td>魔术方法 __isset</td>
  121. <td><a href="XSComponent.html">XSComponent</a></td>
  122. </tr>
  123. <tr class="inherited" id="__set">
  124. <td><a href="XSComponent.html#__set-detail">__set()</a></td>
  125. <td>魔术方法 __set</td>
  126. <td><a href="XSComponent.html">XSComponent</a></td>
  127. </tr>
  128. <tr class="inherited" id="__unset">
  129. <td><a href="XSComponent.html#__unset-detail">__unset()</a></td>
  130. <td>魔术方法 __unset</td>
  131. <td><a href="XSComponent.html">XSComponent</a></td>
  132. </tr>
  133. <tr id="add">
  134. <td><a href="XSIndex.html#add-detail">add()</a></td>
  135. <td>添加文档到索引中</td>
  136. <td>XSIndex</td>
  137. </tr>
  138. <tr id="addExdata">
  139. <td><a href="XSIndex.html#addExdata-detail">addExdata()</a></td>
  140. <td>批量提交索引命令封包数据</td>
  141. <td>XSIndex</td>
  142. </tr>
  143. <tr id="addSynonym">
  144. <td><a href="XSIndex.html#addSynonym-detail">addSynonym()</a></td>
  145. <td>添加同义词</td>
  146. <td>XSIndex</td>
  147. </tr>
  148. <tr id="beginRebuild">
  149. <td><a href="XSIndex.html#beginRebuild-detail">beginRebuild()</a></td>
  150. <td>开始重建索引</td>
  151. <td>XSIndex</td>
  152. </tr>
  153. <tr id="clean">
  154. <td><a href="XSIndex.html#clean-detail">clean()</a></td>
  155. <td>完全清空索引数据</td>
  156. <td>XSIndex</td>
  157. </tr>
  158. <tr id="close">
  159. <td><a href="XSIndex.html#close-detail">close()</a></td>
  160. <td>关闭索引服务端连接</td>
  161. <td>XSIndex</td>
  162. </tr>
  163. <tr id="closeBuffer">
  164. <td><a href="XSIndex.html#closeBuffer-detail">closeBuffer()</a></td>
  165. <td>提交所有指令并关闭缓冲区</td>
  166. <td>XSIndex</td>
  167. </tr>
  168. <tr id="del">
  169. <td><a href="XSIndex.html#del-detail">del()</a></td>
  170. <td>删除索引中的数据</td>
  171. <td>XSIndex</td>
  172. </tr>
  173. <tr id="delSynonym">
  174. <td><a href="XSIndex.html#delSynonym-detail">delSynonym()</a></td>
  175. <td>删除某个同义词</td>
  176. <td>XSIndex</td>
  177. </tr>
  178. <tr id="endRebuild">
  179. <td><a href="XSIndex.html#endRebuild-detail">endRebuild()</a></td>
  180. <td>完成并关闭重建索引</td>
  181. <td>XSIndex</td>
  182. </tr>
  183. <tr class="inherited" id="execCommand">
  184. <td><a href="XSServer.html#execCommand-detail">execCommand()</a></td>
  185. <td>执行服务端指令并获取返回值</td>
  186. <td><a href="XSServer.html">XSServer</a></td>
  187. </tr>
  188. <tr id="flushIndex">
  189. <td><a href="XSIndex.html#flushIndex-detail">flushIndex()</a></td>
  190. <td>强制刷新服务端的当前库的索引缓存</td>
  191. <td>XSIndex</td>
  192. </tr>
  193. <tr id="flushLogging">
  194. <td><a href="XSIndex.html#flushLogging-detail">flushLogging()</a></td>
  195. <td>强制刷新服务端当前项目的搜索日志</td>
  196. <td>XSIndex</td>
  197. </tr>
  198. <tr class="inherited" id="getProject">
  199. <td><a href="XSServer.html#getProject-detail">getProject()</a></td>
  200. <td>获取当前项目名称</td>
  201. <td><a href="XSServer.html">XSServer</a></td>
  202. </tr>
  203. <tr class="inherited" id="getRespond">
  204. <td><a href="XSServer.html#getRespond-detail">getRespond()</a></td>
  205. <td>从服务器读取响应指令</td>
  206. <td><a href="XSServer.html">XSServer</a></td>
  207. </tr>
  208. <tr class="inherited" id="getSocket">
  209. <td><a href="XSServer.html#getSocket-detail">getSocket()</a></td>
  210. <td>获取连接资源描述符</td>
  211. <td><a href="XSServer.html">XSServer</a></td>
  212. </tr>
  213. <tr class="inherited" id="hasRespond">
  214. <td><a href="XSServer.html#hasRespond-detail">hasRespond()</a></td>
  215. <td>判断服务端是否有可读数据</td>
  216. <td><a href="XSServer.html">XSServer</a></td>
  217. </tr>
  218. <tr class="inherited" id="open">
  219. <td><a href="XSServer.html#open-detail">open()</a></td>
  220. <td>打开服务端连接</td>
  221. <td><a href="XSServer.html">XSServer</a></td>
  222. </tr>
  223. <tr id="openBuffer">
  224. <td><a href="XSIndex.html#openBuffer-detail">openBuffer()</a></td>
  225. <td>开启索引命令提交缓冲区</td>
  226. <td>XSIndex</td>
  227. </tr>
  228. <tr class="inherited" id="reopen">
  229. <td><a href="XSServer.html#reopen-detail">reopen()</a></td>
  230. <td>重新打开连接</td>
  231. <td><a href="XSServer.html">XSServer</a></td>
  232. </tr>
  233. <tr class="inherited" id="sendCommand">
  234. <td><a href="XSServer.html#sendCommand-detail">sendCommand()</a></td>
  235. <td>往服务器直接发送指令 (无缓存)</td>
  236. <td><a href="XSServer.html">XSServer</a></td>
  237. </tr>
  238. <tr id="setDb">
  239. <td><a href="XSIndex.html#setDb-detail">setDb()</a></td>
  240. <td>更改存放索引数据的目录</td>
  241. <td>XSIndex</td>
  242. </tr>
  243. <tr class="inherited" id="setProject">
  244. <td><a href="XSServer.html#setProject-detail">setProject()</a></td>
  245. <td>设置当前项目</td>
  246. <td><a href="XSServer.html">XSServer</a></td>
  247. </tr>
  248. <tr class="inherited" id="setTimeout">
  249. <td><a href="XSServer.html#setTimeout-detail">setTimeout()</a></td>
  250. <td>设置服务端超时秒数</td>
  251. <td><a href="XSServer.html">XSServer</a></td>
  252. </tr>
  253. <tr id="update">
  254. <td><a href="XSIndex.html#update-detail">update()</a></td>
  255. <td>更新索引文档</td>
  256. <td>XSIndex</td>
  257. </tr>
  258. </table>
  259. </div>
  260. <a name="events"></a>
  261. <h2>方法明细</h2>
  262. <div class="detailHeader" id="__destruct-detail">
  263. __destruct()
  264. <span class="detailHeaderTag">
  265. 方法
  266. </span>
  267. </div>
  268. <table class="summaryTable">
  269. <tr><td colspan="3">
  270. <div class="signature2">
  271. public void <b>__destruct</b>()</div>
  272. </td></tr>
  273. </table>
  274. <div class="sourceCode">
  275. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L437">sdk/php/lib/XSIndex.class.php#L437</a> (<b><a href="#" class="show">显示</a></b>)
  276. <div class="code"><code><span style="color: #000000">
  277. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_rebuild&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">endRebuild</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(</span><span style="color: #0000BB">Exception&nbsp;$e</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">();<br />}</span>
  278. </span>
  279. </code></div>
  280. </div>
  281. <p>析构函数
  282. 在此自动关闭开启的 rebuild</p>
  283. <div class="detailHeader" id="add-detail">
  284. add()
  285. <span class="detailHeaderTag">
  286. 方法
  287. </span>
  288. </div>
  289. <table class="summaryTable">
  290. <tr><td colspan="3">
  291. <div class="signature2">
  292. public XSIndex <b>add</b>(<a href="XSDocument.html">XSDocument</a> $doc)</div>
  293. </td></tr>
  294. <tr>
  295. <td class="paramNameCol">$doc</td>
  296. <td class="paramTypeCol"><a href="XSDocument.html">XSDocument</a></td>
  297. <td class="paramDescCol"></td>
  298. </tr>
  299. <tr>
  300. <td class="paramNameCol">{return}</td>
  301. <td class="paramTypeCol">XSIndex</td>
  302. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  303. </tr>
  304. </table>
  305. <div class="sourceCode">
  306. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L45">sdk/php/lib/XSIndex.class.php#L45</a> (<b><a href="#" class="show">显示</a></b>)
  307. <div class="code"><code><span style="color: #000000">
  308. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #0000BB">XSDocument&nbsp;$doc</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">$doc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />}</span>
  309. </span>
  310. </code></div>
  311. </div>
  312. <p>添加文档到索引中
  313. 特别要注意的是: 系统不会自动检测主键是否冲突, 即便已存在相同主键也会添加进去</p>
  314. <div class="SeeAlso">
  315. <h4>参见</h4>
  316. <ul>
  317. <li><a href="XSIndex.html#update">update</a></li>
  318. </ul>
  319. </div>
  320. <div class="detailHeader" id="addExdata-detail">
  321. addExdata()
  322. <span class="detailHeaderTag">
  323. 方法
  324. </span>
  325. </div>
  326. <table class="summaryTable">
  327. <tr><td colspan="3">
  328. <div class="signature2">
  329. public XSIndex <b>addExdata</b>(string $data, bool $check_file=true)</div>
  330. </td></tr>
  331. <tr>
  332. <td class="paramNameCol">$data</td>
  333. <td class="paramTypeCol">string</td>
  334. <td class="paramDescCol">要提交的命令封包数据, 或存储命令封包的文件路径, 编码必须已经是 UTF-8</td>
  335. </tr>
  336. <tr>
  337. <td class="paramNameCol">$check_file</td>
  338. <td class="paramTypeCol">bool</td>
  339. <td class="paramDescCol">是否检测参数为文件的情况</td>
  340. </tr>
  341. <tr>
  342. <td class="paramNameCol">{return}</td>
  343. <td class="paramTypeCol">XSIndex</td>
  344. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  345. </tr>
  346. </table>
  347. <div class="sourceCode">
  348. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L233">sdk/php/lib/XSIndex.class.php#L233</a> (<b><a href="#" class="show">显示</a></b>)
  349. <div class="code"><code><span style="color: #000000">
  350. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">addExdata</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$check_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;&lt;&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$check_file&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;(</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">))&nbsp;===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Failed&nbsp;to&nbsp;read&nbsp;exdata&nbsp;from&nbsp;file'</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;try&nbsp;to&nbsp;check&nbsp;allowed&nbsp;(BUG:&nbsp;check&nbsp;the&nbsp;first&nbsp;cmd&nbsp;only):&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CMD_IMPORT_HEADER,&nbsp;CMD_INDEX_REQUEST,&nbsp;CMD_INDEX_REMOVE,&nbsp;CMD_INDEX_EXDATA<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ord</span><span style="color: #007700">(</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">CMD_IMPORT_HEADER&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REQUEST<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">CMD_INDEX_SYNONYMS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REMOVE&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">CMD_INDEX_EXDATA</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Invalid&nbsp;start&nbsp;command&nbsp;of&nbsp;exdata&nbsp;(CMD:'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$first&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">')'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;create&nbsp;cmd&nbsp;&amp;&nbsp;execute&nbsp;it<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'cmd'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">CMD_INDEX_EXDATA</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'buf'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  351. </span>
  352. </code></div>
  353. </div>
  354. <p>批量提交索引命令封包数据
  355. 把多个命令封包内容连续保存为文件或变量, 然后一次性提交以减少网络开销提升性能</p>
  356. <div class="detailHeader" id="addSynonym-detail">
  357. addSynonym()
  358. <span class="detailHeaderTag">
  359. 方法
  360. (自版本 v1.3.0 起可用)
  361. </span>
  362. </div>
  363. <table class="summaryTable">
  364. <tr><td colspan="3">
  365. <div class="signature2">
  366. public XSIndex <b>addSynonym</b>(string $raw, string $synonym)</div>
  367. </td></tr>
  368. <tr>
  369. <td class="paramNameCol">$raw</td>
  370. <td class="paramTypeCol">string</td>
  371. <td class="paramDescCol">需要同义的原词, 英文词汇支持用空格分开多个单词并强制被转换为小写</td>
  372. </tr>
  373. <tr>
  374. <td class="paramNameCol">$synonym</td>
  375. <td class="paramTypeCol">string</td>
  376. <td class="paramDescCol">同义词条, 最小语素, 勿带空格等分隔符</td>
  377. </tr>
  378. <tr>
  379. <td class="paramNameCol">{return}</td>
  380. <td class="paramTypeCol">XSIndex</td>
  381. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  382. </tr>
  383. </table>
  384. <div class="sourceCode">
  385. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L262">sdk/php/lib/XSIndex.class.php#L262</a> (<b><a href="#" class="show">显示</a></b>)
  386. <div class="code"><code><span style="color: #000000">
  387. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">addSynonym</span><span style="color: #007700">(</span><span style="color: #0000BB">$raw</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$synonym</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$raw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$raw</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$synonym&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$synonym</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$raw&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$synonym&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_SYNONYMS</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_INDEX_SYNONYMS_ADD</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$raw</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$synonym</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_bufSize&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">appendBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  388. </span>
  389. </code></div>
  390. </div>
  391. <p>添加同义词</p>
  392. <div class="detailHeader" id="beginRebuild-detail">
  393. beginRebuild()
  394. <span class="detailHeaderTag">
  395. 方法
  396. </span>
  397. </div>
  398. <table class="summaryTable">
  399. <tr><td colspan="3">
  400. <div class="signature2">
  401. public XSIndex <b>beginRebuild</b>()</div>
  402. </td></tr>
  403. <tr>
  404. <td class="paramNameCol">{return}</td>
  405. <td class="paramTypeCol">XSIndex</td>
  406. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  407. </tr>
  408. </table>
  409. <div class="sourceCode">
  410. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L336">sdk/php/lib/XSIndex.class.php#L336</a> (<b><a href="#" class="show">显示</a></b>)
  411. <div class="code"><code><span style="color: #000000">
  412. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">beginRebuild</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'cmd'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REBUILD</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'arg1'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">CMD_OK_DB_REBUILD</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_rebuild&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  413. </span>
  414. </code></div>
  415. </div>
  416. <p>开始重建索引
  417. 此后所有的索引更新指令将写到临时库, 而不是当前搜索库, 重建完成后调用
  418. <a href="XSIndex.html#endRebuild">endRebuild</a> 实现平滑重建索引, 重建过程仍可搜索旧的索引库,
  419. 如直接用 <a href="XSIndex.html#clean">clean</a> 清空数据, 则会导致重建过程搜索到不全的数据</p>
  420. <div class="SeeAlso">
  421. <h4>参见</h4>
  422. <ul>
  423. <li><a href="XSIndex.html#endRebuild">endRebuild</a></li>
  424. </ul>
  425. </div>
  426. <div class="detailHeader" id="clean-detail">
  427. clean()
  428. <span class="detailHeaderTag">
  429. 方法
  430. </span>
  431. </div>
  432. <table class="summaryTable">
  433. <tr><td colspan="3">
  434. <div class="signature2">
  435. public XSIndex <b>clean</b>()</div>
  436. </td></tr>
  437. <tr>
  438. <td class="paramNameCol">{return}</td>
  439. <td class="paramTypeCol">XSIndex</td>
  440. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  441. </tr>
  442. </table>
  443. <div class="sourceCode">
  444. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L32">sdk/php/lib/XSIndex.class.php#L32</a> (<b><a href="#" class="show">显示</a></b>)
  445. <div class="code"><code><span style="color: #000000">
  446. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">clean</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_CLEAN_DB</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_DB_CLEAN</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  447. </span>
  448. </code></div>
  449. </div>
  450. <p>完全清空索引数据
  451. 如果当前数据库处于重建过程中将禁止清空</p>
  452. <div class="SeeAlso">
  453. <h4>参见</h4>
  454. <ul>
  455. <li><a href="XSIndex.html#beginRebuild">beginRebuild</a></li>
  456. </ul>
  457. </div>
  458. <div class="detailHeader" id="close-detail">
  459. close()
  460. <span class="detailHeaderTag">
  461. 方法
  462. </span>
  463. </div>
  464. <table class="summaryTable">
  465. <tr><td colspan="3">
  466. <div class="signature2">
  467. public void <b>close</b>($ioerr=false)</div>
  468. </td></tr>
  469. <tr>
  470. <td class="paramNameCol">$ioerr</td>
  471. <td class="paramTypeCol"></td>
  472. <td class="paramDescCol"></td>
  473. </tr>
  474. </table>
  475. <div class="sourceCode">
  476. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L412">sdk/php/lib/XSIndex.class.php#L412</a> (<b><a href="#" class="show">显示</a></b>)
  477. <div class="code"><code><span style="color: #000000">
  478. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">close</span><span style="color: #007700">(</span><span style="color: #0000BB">$ioerr&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">closeBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">close</span><span style="color: #007700">(</span><span style="color: #0000BB">$ioerr</span><span style="color: #007700">);<br />}</span>
  479. </span>
  480. </code></div>
  481. </div>
  482. <p>关闭索引服务端连接</p>
  483. <div class="detailHeader" id="closeBuffer-detail">
  484. closeBuffer()
  485. <span class="detailHeaderTag">
  486. 方法
  487. </span>
  488. </div>
  489. <table class="summaryTable">
  490. <tr><td colspan="3">
  491. <div class="signature2">
  492. public XSIndex <b>closeBuffer</b>()</div>
  493. </td></tr>
  494. <tr>
  495. <td class="paramNameCol">{return}</td>
  496. <td class="paramTypeCol">XSIndex</td>
  497. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  498. </tr>
  499. </table>
  500. <div class="sourceCode">
  501. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L323">sdk/php/lib/XSIndex.class.php#L323</a> (<b><a href="#" class="show">显示</a></b>)
  502. <div class="code"><code><span style="color: #000000">
  503. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">closeBuffer</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">openBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />}</span>
  504. </span>
  505. </code></div>
  506. </div>
  507. <p>提交所有指令并关闭缓冲区
  508. 若未曾打开缓冲区, 调用本方法是无意义的</p>
  509. <div class="SeeAlso">
  510. <h4>参见</h4>
  511. <ul>
  512. <li><a href="XSIndex.html#openBuffer">openBuffer</a></li>
  513. </ul>
  514. </div>
  515. <div class="detailHeader" id="del-detail">
  516. del()
  517. <span class="detailHeaderTag">
  518. 方法
  519. </span>
  520. </div>
  521. <table class="summaryTable">
  522. <tr><td colspan="3">
  523. <div class="signature2">
  524. public XSIndex <b>del</b>(mixed $term, string $field=NULL)</div>
  525. </td></tr>
  526. <tr>
  527. <td class="paramNameCol">$term</td>
  528. <td class="paramTypeCol">mixed</td>
  529. <td class="paramDescCol">单个主键或指定字段的索引词, 或多个组成的数组, 编码与 <a href="XSIndex.html#xs">xs</a> 默认字符集一致</td>
  530. </tr>
  531. <tr>
  532. <td class="paramNameCol">$field</td>
  533. <td class="paramTypeCol">string</td>
  534. <td class="paramDescCol">索引词所属的字段名称, 默认不指定则为主键字段 (类型为ID)</td>
  535. </tr>
  536. <tr>
  537. <td class="paramNameCol">{return}</td>
  538. <td class="paramTypeCol">XSIndex</td>
  539. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  540. </tr>
  541. </table>
  542. <div class="sourceCode">
  543. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L198">sdk/php/lib/XSIndex.class.php#L198</a> (<b><a href="#" class="show">显示</a></b>)
  544. <div class="code"><code><span style="color: #000000">
  545. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">del</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;get&nbsp;field<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xs</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getFieldId</span><span style="color: #007700">()&nbsp;:&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xs</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getField</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;get&nbsp;commands&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #0000BB">array_unique</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">)&nbsp;:&nbsp;array(</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;</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">$terms</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xs</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getDefaultCharset</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_REMOVE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;combine&nbsp;multi&nbsp;commands&nbsp;into&nbsp;exdata<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_bufSize&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">appendBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">)&nbsp;==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'cmd'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">CMD_INDEX_EXDATA</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'buf'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  546. </span>
  547. </code></div>
  548. </div>
  549. <p>删除索引中的数据
  550. <pre>
  551. $index-&gt;del('123'); // 删除主键为 123 的记录
  552. $index-&gt;del(array('123', '789', '456')); // 删除主键为 123, 789, 456 的记录
  553. $index-&gt;del('abc', 'field'); // 删除字段 field 上带有索引词 abc 的所有记录
  554. $index-&gt;del(array('abc', 'def'), 'field'); // 删除字段 field 上带有索引词 abc 或 def 的所有记录
  555. </pre></p>
  556. <div class="detailHeader" id="delSynonym-detail">
  557. delSynonym()
  558. <span class="detailHeaderTag">
  559. 方法
  560. (自版本 v1.3.0 起可用)
  561. </span>
  562. </div>
  563. <table class="summaryTable">
  564. <tr><td colspan="3">
  565. <div class="signature2">
  566. public XSIndex <b>delSynonym</b>(string $raw, string $synonym=NULL)</div>
  567. </td></tr>
  568. <tr>
  569. <td class="paramNameCol">$raw</td>
  570. <td class="paramTypeCol">string</td>
  571. <td class="paramDescCol">需要同义的原词, 英文词汇支持用空格分开多个单词并强制被转换为小写</td>
  572. </tr>
  573. <tr>
  574. <td class="paramNameCol">$synonym</td>
  575. <td class="paramTypeCol">string</td>
  576. <td class="paramDescCol">要删除的同义词条, 默认 null 表示删除原词下的所有同义词</td>
  577. </tr>
  578. <tr>
  579. <td class="paramNameCol">{return}</td>
  580. <td class="paramTypeCol">XSIndex</td>
  581. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  582. </tr>
  583. </table>
  584. <div class="sourceCode">
  585. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L285">sdk/php/lib/XSIndex.class.php#L285</a> (<b><a href="#" class="show">显示</a></b>)
  586. <div class="code"><code><span style="color: #000000">
  587. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">delSynonym</span><span style="color: #007700">(</span><span style="color: #0000BB">$raw</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$synonym&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$raw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$raw</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$synonym&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$synonym&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$synonym</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$raw&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_SYNONYMS</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_INDEX_SYNONYMS_DEL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$raw</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$synonym</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_bufSize&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">appendBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  588. </span>
  589. </code></div>
  590. </div>
  591. <p>删除某个同义词</p>
  592. <div class="detailHeader" id="endRebuild-detail">
  593. endRebuild()
  594. <span class="detailHeaderTag">
  595. 方法
  596. </span>
  597. </div>
  598. <table class="summaryTable">
  599. <tr><td colspan="3">
  600. <div class="signature2">
  601. public XSIndex <b>endRebuild</b>()</div>
  602. </td></tr>
  603. <tr>
  604. <td class="paramNameCol">{return}</td>
  605. <td class="paramTypeCol">XSIndex</td>
  606. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  607. </tr>
  608. </table>
  609. <div class="sourceCode">
  610. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L349">sdk/php/lib/XSIndex.class.php#L349</a> (<b><a href="#" class="show">显示</a></b>)
  611. <div class="code"><code><span style="color: #000000">
  612. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">endRebuild</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_rebuild&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_rebuild&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'cmd'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REBUILD</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'arg1'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">CMD_OK_DB_REBUILD</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  613. </span>
  614. </code></div>
  615. </div>
  616. <p>完成并关闭重建索引
  617. 重建完成后调用, 用重建好的索引数据代替旧的索引数据</p>
  618. <div class="SeeAlso">
  619. <h4>参见</h4>
  620. <ul>
  621. <li><a href="XSIndex.html#beginRebuild">beginRebuild</a></li>
  622. </ul>
  623. </div>
  624. <div class="detailHeader" id="flushIndex-detail">
  625. flushIndex()
  626. <span class="detailHeaderTag">
  627. 方法
  628. </span>
  629. </div>
  630. <table class="summaryTable">
  631. <tr><td colspan="3">
  632. <div class="signature2">
  633. public bool <b>flushIndex</b>()</div>
  634. </td></tr>
  635. <tr>
  636. <td class="paramNameCol">{return}</td>
  637. <td class="paramTypeCol">bool</td>
  638. <td class="paramDescCol">刷新成功返回 true, 失败则返回 false</td>
  639. </tr>
  640. </table>
  641. <div class="sourceCode">
  642. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L394">sdk/php/lib/XSIndex.class.php#L394</a> (<b><a href="#" class="show">显示</a></b>)
  643. <div class="code"><code><span style="color: #000000">
  644. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">flushIndex</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_COMMIT</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_DB_COMMITED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(</span><span style="color: #0000BB">XSException&nbsp;$e</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCode</span><span style="color: #007700">()&nbsp;===&nbsp;</span><span style="color: #0000BB">CMD_ERR_BUSY&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCode</span><span style="color: #007700">()&nbsp;===&nbsp;</span><span style="color: #0000BB">CMD_ERR_RUNNING</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;</span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}</span>
  645. </span>
  646. </code></div>
  647. </div>
  648. <p>强制刷新服务端的当前库的索引缓存</p>
  649. <div class="detailHeader" id="flushLogging-detail">
  650. flushLogging()
  651. <span class="detailHeaderTag">
  652. 方法
  653. </span>
  654. </div>
  655. <table class="summaryTable">
  656. <tr><td colspan="3">
  657. <div class="signature2">
  658. public bool <b>flushLogging</b>()</div>
  659. </td></tr>
  660. <tr>
  661. <td class="paramNameCol">{return}</td>
  662. <td class="paramTypeCol">bool</td>
  663. <td class="paramDescCol">刷新成功返回 true, 失败则返回 false</td>
  664. </tr>
  665. </table>
  666. <div class="sourceCode">
  667. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L375">sdk/php/lib/XSIndex.class.php#L375</a> (<b><a href="#" class="show">显示</a></b>)
  668. <div class="code"><code><span style="color: #000000">
  669. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">flushLogging</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_FLUSH_LOGGING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_OK_LOG_FLUSHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(</span><span style="color: #0000BB">XSException&nbsp;$e</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCode</span><span style="color: #007700">()&nbsp;===&nbsp;</span><span style="color: #0000BB">CMD_ERR_BUSY</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;</span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}</span>
  670. </span>
  671. </code></div>
  672. </div>
  673. <p>强制刷新服务端当前项目的搜索日志</p>
  674. <div class="detailHeader" id="openBuffer-detail">
  675. openBuffer()
  676. <span class="detailHeaderTag">
  677. 方法
  678. </span>
  679. </div>
  680. <table class="summaryTable">
  681. <tr><td colspan="3">
  682. <div class="signature2">
  683. public XSIndex <b>openBuffer</b>(int $size=4)</div>
  684. </td></tr>
  685. <tr>
  686. <td class="paramNameCol">$size</td>
  687. <td class="paramTypeCol">int</td>
  688. <td class="paramDescCol">缓冲区大小, 单位: MB 默认为 4MB</td>
  689. </tr>
  690. <tr>
  691. <td class="paramNameCol">{return}</td>
  692. <td class="paramTypeCol">XSIndex</td>
  693. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  694. </tr>
  695. </table>
  696. <div class="sourceCode">
  697. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L308">sdk/php/lib/XSIndex.class.php#L308</a> (<b><a href="#" class="show">显示</a></b>)
  698. <div class="code"><code><span style="color: #000000">
  699. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">openBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">$size&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_buf&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addExdata</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_buf</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_bufSize&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$size</span><span style="color: #007700">)&nbsp;&lt;&lt;&nbsp;</span><span style="color: #0000BB">20</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  700. </span>
  701. </code></div>
  702. </div>
  703. <p>开启索引命令提交缓冲区
  704. 为优化网络性能, 有必要先将本地提交的 add/update/del 等索引变动指令缓存下来,
  705. 当总大小达到参数指定的 size 时或调用 <a href="XSIndex.html#closeBuffer">closeBuffer</a> 时再真正提交到服务器
  706. 注意: 此举常用于需要大批量更新索引时, 此外重复调用本函数是无必要的</p>
  707. <div class="detailHeader" id="setDb-detail">
  708. setDb()
  709. <span class="detailHeaderTag">
  710. 方法
  711. </span>
  712. </div>
  713. <table class="summaryTable">
  714. <tr><td colspan="3">
  715. <div class="signature2">
  716. public XSIndex <b>setDb</b>(string $name)</div>
  717. </td></tr>
  718. <tr>
  719. <td class="paramNameCol">$name</td>
  720. <td class="paramTypeCol">string</td>
  721. <td class="paramDescCol">数据库名称</td>
  722. </tr>
  723. <tr>
  724. <td class="paramNameCol">{return}</td>
  725. <td class="paramTypeCol">XSIndex</td>
  726. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  727. </tr>
  728. </table>
  729. <div class="sourceCode">
  730. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L365">sdk/php/lib/XSIndex.class.php#L365</a> (<b><a href="#" class="show">显示</a></b>)
  731. <div class="code"><code><span style="color: #000000">
  732. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">setDb</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'cmd'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">CMD_INDEX_SET_DB</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'buf'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">CMD_OK_DB_CHANGED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  733. </span>
  734. </code></div>
  735. </div>
  736. <p>更改存放索引数据的目录
  737. 默认索引数据保存到服务器上的 db 目录, 通过此方法修改数据目录名</p>
  738. <div class="detailHeader" id="update-detail">
  739. update()
  740. <span class="detailHeaderTag">
  741. 方法
  742. </span>
  743. </div>
  744. <table class="summaryTable">
  745. <tr><td colspan="3">
  746. <div class="signature2">
  747. public XSIndex <b>update</b>(<a href="XSDocument.html">XSDocument</a> $doc, bool $add=false)</div>
  748. </td></tr>
  749. <tr>
  750. <td class="paramNameCol">$doc</td>
  751. <td class="paramTypeCol"><a href="XSDocument.html">XSDocument</a></td>
  752. <td class="paramDescCol"></td>
  753. </tr>
  754. <tr>
  755. <td class="paramNameCol">$add</td>
  756. <td class="paramTypeCol">bool</td>
  757. <td class="paramDescCol">是否为新增文档, 已有数据中不存在同一主键的其它数据</td>
  758. </tr>
  759. <tr>
  760. <td class="paramNameCol">{return}</td>
  761. <td class="paramTypeCol">XSIndex</td>
  762. <td class="paramDescCol">返回自身对象以支持串接操作</td>
  763. </tr>
  764. </table>
  765. <div class="sourceCode">
  766. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSIndex.class.php#L58">sdk/php/lib/XSIndex.class.php#L58</a> (<b><a href="#" class="show">显示</a></b>)
  767. <div class="code"><code><span style="color: #000000">
  768. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">XSDocument&nbsp;$doc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$add&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;before&nbsp;submit<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">beforeSubmit</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;check&nbsp;primary&nbsp;key&nbsp;of&nbsp;document<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fid&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xs</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getFieldId</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$key&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">f</span><span style="color: #007700">(</span><span style="color: #0000BB">$fid</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$key&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$key&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Missing&nbsp;value&nbsp;of&nbsp;primarky&nbsp;key&nbsp;(FIELD:'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$fid&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">')'</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;request&nbsp;cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_REQUEST</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REQUEST_ADD</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$add&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">arg1&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CMD_INDEX_REQUEST_UPDATE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">arg2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$fid</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$key</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;document&nbsp;cmds<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xs</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getAllFields</span><span style="color: #007700">()&nbsp;as&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">)&nbsp;</span><span style="color: #FF8000">/*&nbsp;@var&nbsp;$field&nbsp;XSFieldMeta&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;value<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;((</span><span style="color: #0000BB">$value&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">f</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">))&nbsp;!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$varg&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isNumeric</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">CMD_VALUE_FLAG_NUMERIC&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$value&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">val</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasCustomTokenizer</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;internal&nbsp;tokenizer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">weight&nbsp;</span><span style="color: #007700">|&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">withPos</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">CMD_INDEX_FLAG_WITHPOS&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndexMixed</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_INDEX</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndexSelf</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf&nbsp;</span><span style="color: #007700">|=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isNumeric</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">CMD_INDEX_FLAG_SAVEVALUE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_INDEX</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;add&nbsp;value<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndexSelf</span><span style="color: #007700">()&nbsp;||&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isNumeric</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_VALUE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$varg</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;add&nbsp;index<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndex</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCustomTokenizer</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getTokens</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;self:&nbsp;[bool&nbsp;term,&nbsp;NOT&nbsp;weight,&nbsp;NOT&nbsp;stem,&nbsp;NOT&nbsp;pos]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndexSelf</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_TERM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;mixed:&nbsp;[use&nbsp;default&nbsp;tokenizer]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasIndexMixed</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$mtext&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">'&nbsp;'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$terms</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_INDEX</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">weight</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$mtext</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;add&nbsp;value<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_VALUE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$varg</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;process&nbsp;add&nbsp;terms<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;((</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getAddTerms</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">))&nbsp;!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;ignore&nbsp;weight&nbsp;for&nbsp;bool&nbsp;index<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf1&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isBoolIndex</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">CMD_INDEX_FLAG_CHECKSTEM</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$wdf</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isBoolIndex</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">$wdf&nbsp;</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">weight</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$wdf2&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">XSFieldMeta</span><span style="color: #007700">::</span><span style="color: #0000BB">MAX_WDF</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_TERM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf1&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">XSFieldMeta</span><span style="color: #007700">::</span><span style="color: #0000BB">MAX_WDF</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf2&nbsp;</span><span style="color: #007700">-=&nbsp;</span><span style="color: #0000BB">XSFieldMeta</span><span style="color: #007700">::</span><span style="color: #0000BB">MAX_WDF</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_TERM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf1&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">$wdf2</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;process&nbsp;add&nbsp;text<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;((</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getAddIndex</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">))&nbsp;!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">hasCustomTokenizer</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">weight&nbsp;</span><span style="color: #007700">|&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">withPos</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">CMD_INDEX_FLAG_WITHPOS&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_INDEX</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;NOT&nbsp;pos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$wdf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isBoolIndex</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">:&nbsp;(</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">weight&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">CMD_INDEX_FLAG_CHECKSTEM</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCustomTokenizer</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getTokens</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_DOC_TERM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$wdf</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">vno</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;submit&nbsp;cmd<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">XSCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">CMD_INDEX_SUBMIT</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;execute&nbsp;cmd<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_bufSize&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">appendBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">)&nbsp;-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$i</span><span style="color: #007700">++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmds</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">CMD_OK_RQST_FINISHED</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;after&nbsp;submit<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$doc</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">afterSubmit</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">;<br />}</span>
  769. </span>
  770. </code></div>
  771. </div>
  772. <p>更新索引文档
  773. 该方法相当于先根据主键删除已存在的旧文档, 然后添加该文档
  774. 如果你能明确认定是新文档, 则建议使用 <a href="XSIndex.html#add">add</a></p>
  775. </div><!-- end of content -->
  776. <div id="apiFooter">
  777. Copyright &copy; 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
  778. All Rights Reserved.<br/>
  779. </div><!-- end of footer -->
  780. <script type="text/javascript">
  781. /*<![CDATA[*/
  782. $("a.toggle").toggle(function(){
  783. $(this).text($(this).text().replace(/Hide/,'Show'));
  784. $(this).parents(".summary").find(".inherited").hide();
  785. },function(){
  786. $(this).text($(this).text().replace(/Show/,'Hide'));
  787. $(this).parents(".summary").find(".inherited").show();
  788. });
  789. $(".sourceCode a.show").toggle(function(){
  790. $(this).text($(this).text().replace(/show/,'hide'));
  791. $(this).parents(".sourceCode").find("div.code").show();
  792. },function(){
  793. $(this).text($(this).text().replace(/hide/,'show'));
  794. $(this).parents(".sourceCode").find("div.code").hide();
  795. });
  796. $("a.sourceLink").click(function(){
  797. $(this).attr('target','_blank');
  798. });
  799. /*]]>*/
  800. </script>
  801. </div><!-- end of page -->
  802. </body>
  803. </html>