XSDocument.html 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917
  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>XSDocument</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>XSDocument</h1>
  18. <div id="nav">
  19. <a href="index.html">All Packages</a>
  20. | <a href="#methods">方法(函数)</a>
  21. </div>
  22. <table class="summaryTable docClass">
  23. <colgroup>
  24. <col class="col-name" />
  25. <col class="col-value" />
  26. </colgroup>
  27. <tr>
  28. <th>包</th>
  29. <td><a href="index.html#XS">XS</a></td>
  30. </tr>
  31. <tr>
  32. <th>继承关系</th>
  33. <td>class XSDocument</td>
  34. </tr>
  35. <tr>
  36. <th>实现接口</th>
  37. <td>ArrayAccess, IteratorAggregate, Traversable</td>
  38. </tr>
  39. <tr>
  40. <th>版本</th>
  41. <td>1.0.0</td>
  42. </tr>
  43. <tr>
  44. <th>源代码</th>
  45. <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php">sdk/php/lib/XSDocument.class.php</a></td>
  46. </tr>
  47. </table>
  48. <div id="classDescription">
  49. 文档用于描述检索/索引的基础对象, 包含一组字段及其值, 相当于常规SQL数据表中的一行记录.
  50. 通过魔术方法, 每个字段名都是文档的虚拟属性, 可直接赋值或取值, 也支持数组方式访问文档字段.
  51. <pre>
  52. $doc = new XSDocument;
  53. $doc-&gt;name = 'value'; // 用对象属性方式进行赋值、取值
  54. $doc['name'] = 'value'; // 用数组下标方式进行赋值、取值
  55. $value = $doc-&gt;f('name'); // 用函数方式进行取值
  56. $doc-&gt;setField('name', 'value'); // 用函数方式进行赋值
  57. $doc-&gt;setFields(array('name' =&gt; 'value', 'name2' =&gt; 'value2')); // 用数组进行批量赋值
  58. // 迭代方式取所有字段值
  59. foreach($doc as $name =&gt; $value)
  60. {
  61. echo &quot;$name: $value\n&quot;;
  62. }
  63. </pre>
  64. 如果有特殊需求, 可以自行扩展本类, 重写 beforeSubmit() 及 afterSubmit() 方法以定义在索引
  65. 提交前后的行为</div>
  66. <a name="properties"></a>
  67. <a name="methods"></a>
  68. <div class="summary docMethod">
  69. <h2>Public 方法</h2>
  70. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  71. <table class="summaryTable">
  72. <colgroup>
  73. <col class="col-method" />
  74. <col class="col-description" />
  75. <col class="col-defined" />
  76. </colgroup>
  77. <tr>
  78. <th>名称</th><th>描述</th><th>定义于</th>
  79. </tr>
  80. <tr id="__call">
  81. <td><a href="XSDocument.html#__call-detail">__call()</a></td>
  82. <td>魔术方法 __call</td>
  83. <td>XSDocument</td>
  84. </tr>
  85. <tr id="__construct">
  86. <td><a href="XSDocument.html#__construct-detail">__construct()</a></td>
  87. <td>构造函数</td>
  88. <td>XSDocument</td>
  89. </tr>
  90. <tr id="__get">
  91. <td><a href="XSDocument.html#__get-detail">__get()</a></td>
  92. <td>魔术方法 __get</td>
  93. <td>XSDocument</td>
  94. </tr>
  95. <tr id="__set">
  96. <td><a href="XSDocument.html#__set-detail">__set()</a></td>
  97. <td>魔术方法 __set</td>
  98. <td>XSDocument</td>
  99. </tr>
  100. <tr id="addIndex">
  101. <td><a href="XSDocument.html#addIndex-detail">addIndex()</a></td>
  102. <td>给字段增加索引文本 (仅限索引文档)</td>
  103. <td>XSDocument</td>
  104. </tr>
  105. <tr id="addTerm">
  106. <td><a href="XSDocument.html#addTerm-detail">addTerm()</a></td>
  107. <td>给字段增加索引词 (仅限索引文档)</td>
  108. <td>XSDocument</td>
  109. </tr>
  110. <tr id="afterSubmit">
  111. <td><a href="XSDocument.html#afterSubmit-detail">afterSubmit()</a></td>
  112. <td>重写接口, 在文档成功提交到索引服务器后调用</td>
  113. <td>XSDocument</td>
  114. </tr>
  115. <tr id="beforeSubmit">
  116. <td><a href="XSDocument.html#beforeSubmit-detail">beforeSubmit()</a></td>
  117. <td>重写接口, 在文档提交到索引服务器前调用</td>
  118. <td>XSDocument</td>
  119. </tr>
  120. <tr id="f">
  121. <td><a href="XSDocument.html#f-detail">f()</a></td>
  122. <td>获取文档字段的值</td>
  123. <td>XSDocument</td>
  124. </tr>
  125. <tr id="getAddIndex">
  126. <td><a href="XSDocument.html#getAddIndex-detail">getAddIndex()</a></td>
  127. <td>获取字段的附加索引文本 (仅限索引文档)</td>
  128. <td>XSDocument</td>
  129. </tr>
  130. <tr id="getAddTerms">
  131. <td><a href="XSDocument.html#getAddTerms-detail">getAddTerms()</a></td>
  132. <td>获取字段的附加索引词列表 (仅限索引文档)</td>
  133. <td>XSDocument</td>
  134. </tr>
  135. <tr id="getCharset">
  136. <td><a href="XSDocument.html#getCharset-detail">getCharset()</a></td>
  137. <td>获取文档字符集</td>
  138. <td>XSDocument</td>
  139. </tr>
  140. <tr id="getIterator">
  141. <td><a href="XSDocument.html#getIterator-detail">getIterator()</a></td>
  142. <td>IteratorAggregate 接口, 以支持 foreach 遍历访问字段列表</td>
  143. <td>XSDocument</td>
  144. </tr>
  145. <tr id="offsetExists">
  146. <td><a href="XSDocument.html#offsetExists-detail">offsetExists()</a></td>
  147. <td>ArrayAccess 接口, 判断字段是否存在, 勿直接调用</td>
  148. <td>XSDocument</td>
  149. </tr>
  150. <tr id="offsetGet">
  151. <td><a href="XSDocument.html#offsetGet-detail">offsetGet()</a></td>
  152. <td>ArrayAccess 接口, 取得字段值, 勿直接调用</td>
  153. <td>XSDocument</td>
  154. </tr>
  155. <tr id="offsetSet">
  156. <td><a href="XSDocument.html#offsetSet-detail">offsetSet()</a></td>
  157. <td>ArrayAccess 接口, 设置字段值, 勿直接调用</td>
  158. <td>XSDocument</td>
  159. </tr>
  160. <tr id="offsetUnset">
  161. <td><a href="XSDocument.html#offsetUnset-detail">offsetUnset()</a></td>
  162. <td>ArrayAccess 接口, 删除字段值, 勿直接调用</td>
  163. <td>XSDocument</td>
  164. </tr>
  165. <tr id="setCharset">
  166. <td><a href="XSDocument.html#setCharset-detail">setCharset()</a></td>
  167. <td>设置文档字符集</td>
  168. <td>XSDocument</td>
  169. </tr>
  170. <tr id="setField">
  171. <td><a href="XSDocument.html#setField-detail">setField()</a></td>
  172. <td>设置某个字段的值</td>
  173. <td>XSDocument</td>
  174. </tr>
  175. <tr id="setFields">
  176. <td><a href="XSDocument.html#setFields-detail">setFields()</a></td>
  177. <td>批量设置字段值</td>
  178. <td>XSDocument</td>
  179. </tr>
  180. </table>
  181. </div>
  182. <a name="events"></a>
  183. <h2>方法明细</h2>
  184. <div class="detailHeader" id="__call-detail">
  185. __call()
  186. <span class="detailHeaderTag">
  187. 方法
  188. </span>
  189. </div>
  190. <table class="summaryTable">
  191. <tr><td colspan="3">
  192. <div class="signature2">
  193. public void <b>__call</b>(string $name, array $args)</div>
  194. </td></tr>
  195. <tr>
  196. <td class="paramNameCol">$name</td>
  197. <td class="paramTypeCol">string</td>
  198. <td class="paramDescCol">方法名称</td>
  199. </tr>
  200. <tr>
  201. <td class="paramNameCol">$args</td>
  202. <td class="paramTypeCol">array</td>
  203. <td class="paramDescCol">调用时的参数列表 (此处无用)</td>
  204. </tr>
  205. </table>
  206. <div class="sourceCode">
  207. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L106">sdk/php/lib/XSDocument.class.php#L106</a> (<b><a href="#" class="show">显示</a></b>)
  208. <div class="code"><code><span style="color: #000000">
  209. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__call</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$args</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">_meta&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$name&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_meta</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</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">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_meta</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Call&nbsp;to&nbsp;undefined&nbsp;method&nbsp;`'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'::'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'()\''</span><span style="color: #007700">);<br />}</span>
  210. </span>
  211. </code></div>
  212. </div>
  213. <p>魔术方法 __call
  214. 实现以函数调用访问搜索结果元数据, 支持: docid, rank, percent, weight, ccount</p>
  215. <div class="detailHeader" id="__construct-detail">
  216. __construct()
  217. <span class="detailHeaderTag">
  218. 方法
  219. </span>
  220. </div>
  221. <table class="summaryTable">
  222. <tr><td colspan="3">
  223. <div class="signature2">
  224. public void <b>__construct</b>(mixed $p=NULL, string $d=NULL)</div>
  225. </td></tr>
  226. <tr>
  227. <td class="paramNameCol">$p</td>
  228. <td class="paramTypeCol">mixed</td>
  229. <td class="paramDescCol">字符串表示索引文档的编码或搜索结果文档的 meta 数据, 数组则表示或索引文档的初始字段数据</td>
  230. </tr>
  231. <tr>
  232. <td class="paramNameCol">$d</td>
  233. <td class="paramTypeCol">string</td>
  234. <td class="paramDescCol">可选参数, 当 $p 不为编码时, 本参数表示数据编码</td>
  235. </tr>
  236. </table>
  237. <div class="sourceCode">
  238. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L55">sdk/php/lib/XSDocument.class.php#L55</a> (<b><a href="#" class="show">显示</a></b>)
  239. <div class="code"><code><span style="color: #000000">
  240. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$p&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$d&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">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</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">_data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</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">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</span><span style="color: #007700">)&nbsp;!==&nbsp;</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$_resSize</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">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setCharset</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&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">_meta&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">unpack</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$_resFormat</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$d&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$d</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">setCharset</span><span style="color: #007700">(</span><span style="color: #0000BB">$d</span><span style="color: #007700">);<br />}</span>
  241. </span>
  242. </code></div>
  243. </div>
  244. <p>构造函数</p>
  245. <div class="detailHeader" id="__get-detail">
  246. __get()
  247. <span class="detailHeaderTag">
  248. 方法
  249. </span>
  250. </div>
  251. <table class="summaryTable">
  252. <tr><td colspan="3">
  253. <div class="signature2">
  254. public mixed <b>__get</b>(string $name)</div>
  255. </td></tr>
  256. <tr>
  257. <td class="paramNameCol">$name</td>
  258. <td class="paramTypeCol">string</td>
  259. <td class="paramDescCol">字段名称</td>
  260. </tr>
  261. <tr>
  262. <td class="paramNameCol">{return}</td>
  263. <td class="paramTypeCol">mixed</td>
  264. <td class="paramDescCol">字段值, 若不存在返回 null</td>
  265. </tr>
  266. </table>
  267. <div class="sourceCode">
  268. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L79">sdk/php/lib/XSDocument.class.php#L79</a> (<b><a href="#" class="show">显示</a></b>)
  269. <div class="code"><code><span style="color: #000000">
  270. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">autoConvert</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]);<br />}</span>
  271. </span>
  272. </code></div>
  273. </div>
  274. <p>魔术方法 __get
  275. 实现以对象属性方式获取文档字段值</p>
  276. <div class="detailHeader" id="__set-detail">
  277. __set()
  278. <span class="detailHeaderTag">
  279. 方法
  280. </span>
  281. </div>
  282. <table class="summaryTable">
  283. <tr><td colspan="3">
  284. <div class="signature2">
  285. public void <b>__set</b>(string $name, mixed $value)</div>
  286. </td></tr>
  287. <tr>
  288. <td class="paramNameCol">$name</td>
  289. <td class="paramTypeCol">string</td>
  290. <td class="paramDescCol">字段名称</td>
  291. </tr>
  292. <tr>
  293. <td class="paramNameCol">$value</td>
  294. <td class="paramTypeCol">mixed</td>
  295. <td class="paramDescCol">字段值</td>
  296. </tr>
  297. </table>
  298. <div class="sourceCode">
  299. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L92">sdk/php/lib/XSDocument.class.php#L92</a> (<b><a href="#" class="show">显示</a></b>)
  300. <div class="code"><code><span style="color: #000000">
  301. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</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">_meta&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null</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">'Magick&nbsp;property&nbsp;of&nbsp;result&nbsp;document&nbsp;is&nbsp;read-only'</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">setField</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />}</span>
  302. </span>
  303. </code></div>
  304. </div>
  305. <p>魔术方法 __set
  306. 实现以对象属性方式设置文档字段值</p>
  307. <div class="detailHeader" id="addIndex-detail">
  308. addIndex()
  309. <span class="detailHeaderTag">
  310. 方法
  311. </span>
  312. </div>
  313. <table class="summaryTable">
  314. <tr><td colspan="3">
  315. <div class="signature2">
  316. public void <b>addIndex</b>(string $field, string $text)</div>
  317. </td></tr>
  318. <tr>
  319. <td class="paramNameCol">$field</td>
  320. <td class="paramTypeCol">string</td>
  321. <td class="paramDescCol">文本所属的字段名称</td>
  322. </tr>
  323. <tr>
  324. <td class="paramNameCol">$text</td>
  325. <td class="paramTypeCol">string</td>
  326. <td class="paramDescCol">文本内容</td>
  327. </tr>
  328. </table>
  329. <div class="sourceCode">
  330. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L229">sdk/php/lib/XSDocument.class.php#L229</a> (<b><a href="#" class="show">显示</a></b>)
  331. <div class="code"><code><span style="color: #000000">
  332. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">addIndex</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$text</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_texts</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">_texts&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_texts</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</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">_texts</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<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">_texts</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]&nbsp;.=&nbsp;</span><span style="color: #DD0000">"\n"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />}</span>
  333. </span>
  334. </code></div>
  335. </div>
  336. <p>给字段增加索引文本 (仅限索引文档)</p>
  337. <div class="detailHeader" id="addTerm-detail">
  338. addTerm()
  339. <span class="detailHeaderTag">
  340. 方法
  341. </span>
  342. </div>
  343. <table class="summaryTable">
  344. <tr><td colspan="3">
  345. <div class="signature2">
  346. public void <b>addTerm</b>(string $field, string $term, int $weight=1)</div>
  347. </td></tr>
  348. <tr>
  349. <td class="paramNameCol">$field</td>
  350. <td class="paramTypeCol">string</td>
  351. <td class="paramDescCol">词条所属字段名称</td>
  352. </tr>
  353. <tr>
  354. <td class="paramNameCol">$term</td>
  355. <td class="paramTypeCol">string</td>
  356. <td class="paramDescCol">词条内容, 不超过 255字节</td>
  357. </tr>
  358. <tr>
  359. <td class="paramNameCol">$weight</td>
  360. <td class="paramTypeCol">int</td>
  361. <td class="paramDescCol">词重, 默认为 1</td>
  362. </tr>
  363. </table>
  364. <div class="sourceCode">
  365. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L211">sdk/php/lib/XSDocument.class.php#L211</a> (<b><a href="#" class="show">显示</a></b>)
  366. <div class="code"><code><span style="color: #000000">
  367. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">addTerm</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$term</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$weight&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms</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">_terms&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</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">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]&nbsp;=&nbsp;array(</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$weight</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">][</span><span style="color: #0000BB">$term</span><span style="color: #007700">]))<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">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">][</span><span style="color: #0000BB">$term</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">$weight</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<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">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">][</span><span style="color: #0000BB">$term</span><span style="color: #007700">]&nbsp;+=&nbsp;</span><span style="color: #0000BB">$weight</span><span style="color: #007700">;<br />}</span>
  368. </span>
  369. </code></div>
  370. </div>
  371. <p>给字段增加索引词 (仅限索引文档)</p>
  372. <div class="detailHeader" id="afterSubmit-detail">
  373. afterSubmit()
  374. <span class="detailHeaderTag">
  375. 方法
  376. </span>
  377. </div>
  378. <table class="summaryTable">
  379. <tr><td colspan="3">
  380. <div class="signature2">
  381. public void <b>afterSubmit</b>(<a href="XSIndex.html">XSIndex</a> $index)</div>
  382. </td></tr>
  383. <tr>
  384. <td class="paramNameCol">$index</td>
  385. <td class="paramTypeCol"><a href="XSIndex.html">XSIndex</a></td>
  386. <td class="paramDescCol">索引操作对象</td>
  387. </tr>
  388. </table>
  389. <div class="sourceCode">
  390. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L314">sdk/php/lib/XSDocument.class.php#L314</a> (<b><a href="#" class="show">显示</a></b>)
  391. <div class="code"><code><span style="color: #000000">
  392. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">afterSubmit</span><span style="color: #007700">(</span><span style="color: #0000BB">$index</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}</span>
  393. </span>
  394. </code></div>
  395. </div>
  396. <p>重写接口, 在文档成功提交到索引服务器后调用
  397. 继承此类进行重写该方法时, 强烈建议要调用 parent::afterSave($index) 以确保完整.</p>
  398. <div class="detailHeader" id="beforeSubmit-detail">
  399. beforeSubmit()
  400. <span class="detailHeaderTag">
  401. 方法
  402. </span>
  403. </div>
  404. <table class="summaryTable">
  405. <tr><td colspan="3">
  406. <div class="signature2">
  407. public bool <b>beforeSubmit</b>(<a href="XSIndex.html">XSIndex</a> $index)</div>
  408. </td></tr>
  409. <tr>
  410. <td class="paramNameCol">$index</td>
  411. <td class="paramTypeCol"><a href="XSIndex.html">XSIndex</a></td>
  412. <td class="paramDescCol">索引操作对象</td>
  413. </tr>
  414. <tr>
  415. <td class="paramNameCol">{return}</td>
  416. <td class="paramTypeCol">bool</td>
  417. <td class="paramDescCol">默认返回 true, 若返回 false 将阻止该文档提交到索引服务器</td>
  418. </tr>
  419. </table>
  420. <div class="sourceCode">
  421. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L302">sdk/php/lib/XSDocument.class.php#L302</a> (<b><a href="#" class="show">显示</a></b>)
  422. <div class="code"><code><span style="color: #000000">
  423. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">beforeSubmit</span><span style="color: #007700">(</span><span style="color: #0000BB">XSIndex&nbsp;$index</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">_charset&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null</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">_charset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$index</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;return&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}</span>
  424. </span>
  425. </code></div>
  426. </div>
  427. <p>重写接口, 在文档提交到索引服务器前调用
  428. 继承此类进行重写该方法时, 必须调用 parent::beforeSave($index) 以确保正确</p>
  429. <div class="detailHeader" id="f-detail">
  430. f()
  431. <span class="detailHeaderTag">
  432. 方法
  433. </span>
  434. </div>
  435. <table class="summaryTable">
  436. <tr><td colspan="3">
  437. <div class="signature2">
  438. public mixed <b>f</b>(string $name)</div>
  439. </td></tr>
  440. <tr>
  441. <td class="paramNameCol">$name</td>
  442. <td class="paramTypeCol">string</td>
  443. <td class="paramDescCol">字段名称</td>
  444. </tr>
  445. <tr>
  446. <td class="paramNameCol">{return}</td>
  447. <td class="paramTypeCol">mixed</td>
  448. <td class="paramDescCol">字段值, 若不存在则返回 null</td>
  449. </tr>
  450. </table>
  451. <div class="sourceCode">
  452. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L168">sdk/php/lib/XSDocument.class.php#L168</a> (<b><a href="#" class="show">显示</a></b>)
  453. <div class="code"><code><span style="color: #000000">
  454. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</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">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">));<br />}</span>
  455. </span>
  456. </code></div>
  457. </div>
  458. <p>获取文档字段的值</p>
  459. <div class="detailHeader" id="getAddIndex-detail">
  460. getAddIndex()
  461. <span class="detailHeaderTag">
  462. 方法
  463. </span>
  464. </div>
  465. <table class="summaryTable">
  466. <tr><td colspan="3">
  467. <div class="signature2">
  468. public string <b>getAddIndex</b>(string $field)</div>
  469. </td></tr>
  470. <tr>
  471. <td class="paramNameCol">$field</td>
  472. <td class="paramTypeCol">string</td>
  473. <td class="paramDescCol">字段名称</td>
  474. </tr>
  475. <tr>
  476. <td class="paramNameCol">{return}</td>
  477. <td class="paramTypeCol">string</td>
  478. <td class="paramDescCol">文本内容, 若无则返回 null</td>
  479. </tr>
  480. </table>
  481. <div class="sourceCode">
  482. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L197">sdk/php/lib/XSDocument.class.php#L197</a> (<b><a href="#" class="show">显示</a></b>)
  483. <div class="code"><code><span style="color: #000000">
  484. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">getAddIndex</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: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_texts&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">||&nbsp;!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_texts</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">autoConvert</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_texts</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]);<br />}</span>
  485. </span>
  486. </code></div>
  487. </div>
  488. <p>获取字段的附加索引文本 (仅限索引文档)</p>
  489. <div class="detailHeader" id="getAddTerms-detail">
  490. getAddTerms()
  491. <span class="detailHeaderTag">
  492. 方法
  493. </span>
  494. </div>
  495. <table class="summaryTable">
  496. <tr><td colspan="3">
  497. <div class="signature2">
  498. public array <b>getAddTerms</b>(string $field)</div>
  499. </td></tr>
  500. <tr>
  501. <td class="paramNameCol">$field</td>
  502. <td class="paramTypeCol">string</td>
  503. <td class="paramDescCol">字段名称</td>
  504. </tr>
  505. <tr>
  506. <td class="paramNameCol">{return}</td>
  507. <td class="paramTypeCol">array</td>
  508. <td class="paramDescCol">索引词列表(词为键, 词重为值), 若无则返回 null</td>
  509. </tr>
  510. </table>
  511. <div class="sourceCode">
  512. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L178">sdk/php/lib/XSDocument.class.php#L178</a> (<b><a href="#" class="show">显示</a></b>)
  513. <div class="code"><code><span style="color: #000000">
  514. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">getAddTerms</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: #0000BB">$field&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$field</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">||&nbsp;!isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$terms&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$field</span><span style="color: #007700">]&nbsp;as&nbsp;</span><span style="color: #0000BB">$term&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$weight</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&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">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">autoConvert</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;</span><span style="color: #0000BB">$terms</span><span style="color: #007700">[</span><span style="color: #0000BB">$term</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">$weight</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$terms</span><span style="color: #007700">;<br />}</span>
  515. </span>
  516. </code></div>
  517. </div>
  518. <p>获取字段的附加索引词列表 (仅限索引文档)</p>
  519. <div class="detailHeader" id="getCharset-detail">
  520. getCharset()
  521. <span class="detailHeaderTag">
  522. 方法
  523. </span>
  524. </div>
  525. <table class="summaryTable">
  526. <tr><td colspan="3">
  527. <div class="signature2">
  528. public string <b>getCharset</b>()</div>
  529. </td></tr>
  530. <tr>
  531. <td class="paramNameCol">{return}</td>
  532. <td class="paramTypeCol">string</td>
  533. <td class="paramDescCol">当前设定的字符集(已大写), 若未曾设置则返回 null</td>
  534. </tr>
  535. </table>
  536. <div class="sourceCode">
  537. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L121">sdk/php/lib/XSDocument.class.php#L121</a> (<b><a href="#" class="show">显示</a></b>)
  538. <div class="code"><code><span style="color: #000000">
  539. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">getCharset</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">_charset</span><span style="color: #007700">;<br />}</span>
  540. </span>
  541. </code></div>
  542. </div>
  543. <p>获取文档字符集</p>
  544. <div class="detailHeader" id="getIterator-detail">
  545. getIterator()
  546. <span class="detailHeaderTag">
  547. 方法
  548. </span>
  549. </div>
  550. <table class="summaryTable">
  551. <tr><td colspan="3">
  552. <div class="signature2">
  553. public void <b>getIterator</b>()</div>
  554. </td></tr>
  555. </table>
  556. <div class="sourceCode">
  557. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L243">sdk/php/lib/XSDocument.class.php#L243</a> (<b><a href="#" class="show">显示</a></b>)
  558. <div class="code"><code><span style="color: #000000">
  559. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">getIterator</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">_charset&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_charset&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$from&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_meta&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">_charset&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$to&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_meta&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">'UTF-8'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_charset</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;</span><span style="color: #0000BB">ArrayIterator</span><span style="color: #007700">(</span><span style="color: #0000BB">XS</span><span style="color: #007700">::</span><span style="color: #0000BB">convert</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$to</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$from</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;</span><span style="color: #0000BB">ArrayIterator</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">);<br />}</span>
  560. </span>
  561. </code></div>
  562. </div>
  563. <p>IteratorAggregate 接口, 以支持 foreach 遍历访问字段列表</p>
  564. <div class="detailHeader" id="offsetExists-detail">
  565. offsetExists()
  566. <span class="detailHeaderTag">
  567. 方法
  568. </span>
  569. </div>
  570. <table class="summaryTable">
  571. <tr><td colspan="3">
  572. <div class="signature2">
  573. public bool <b>offsetExists</b>(string $name)</div>
  574. </td></tr>
  575. <tr>
  576. <td class="paramNameCol">$name</td>
  577. <td class="paramTypeCol">string</td>
  578. <td class="paramDescCol">字段名称</td>
  579. </tr>
  580. <tr>
  581. <td class="paramNameCol">{return}</td>
  582. <td class="paramTypeCol">bool</td>
  583. <td class="paramDescCol">存在返回 true, 若不存在返回 false</td>
  584. </tr>
  585. </table>
  586. <div class="sourceCode">
  587. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L259">sdk/php/lib/XSDocument.class.php#L259</a> (<b><a href="#" class="show">显示</a></b>)
  588. <div class="code"><code><span style="color: #000000">
  589. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">offsetExists</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]);<br />}</span>
  590. </span>
  591. </code></div>
  592. </div>
  593. <p>ArrayAccess 接口, 判断字段是否存在, 勿直接调用</p>
  594. <div class="detailHeader" id="offsetGet-detail">
  595. offsetGet()
  596. <span class="detailHeaderTag">
  597. 方法
  598. </span>
  599. </div>
  600. <table class="summaryTable">
  601. <tr><td colspan="3">
  602. <div class="signature2">
  603. public mixed <b>offsetGet</b>(string $name)</div>
  604. </td></tr>
  605. <tr>
  606. <td class="paramNameCol">$name</td>
  607. <td class="paramTypeCol">string</td>
  608. <td class="paramDescCol">字段名称</td>
  609. </tr>
  610. <tr>
  611. <td class="paramNameCol">{return}</td>
  612. <td class="paramTypeCol">mixed</td>
  613. <td class="paramDescCol">字段值, 若不存在返回 null</td>
  614. </tr>
  615. </table>
  616. <div class="sourceCode">
  617. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L270">sdk/php/lib/XSDocument.class.php#L270</a> (<b><a href="#" class="show">显示</a></b>)
  618. <div class="code"><code><span style="color: #000000">
  619. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">offsetGet</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</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">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br />}</span>
  620. </span>
  621. </code></div>
  622. </div>
  623. <p>ArrayAccess 接口, 取得字段值, 勿直接调用</p>
  624. <div class="SeeAlso">
  625. <h4>参见</h4>
  626. <ul>
  627. <li><a href="XSDocument.html#__get">__get</a></li>
  628. </ul>
  629. </div>
  630. <div class="detailHeader" id="offsetSet-detail">
  631. offsetSet()
  632. <span class="detailHeaderTag">
  633. 方法
  634. </span>
  635. </div>
  636. <table class="summaryTable">
  637. <tr><td colspan="3">
  638. <div class="signature2">
  639. public void <b>offsetSet</b>(string $name, mixed $value)</div>
  640. </td></tr>
  641. <tr>
  642. <td class="paramNameCol">$name</td>
  643. <td class="paramTypeCol">string</td>
  644. <td class="paramDescCol">字段名称</td>
  645. </tr>
  646. <tr>
  647. <td class="paramNameCol">$value</td>
  648. <td class="paramTypeCol">mixed</td>
  649. <td class="paramDescCol">字段值</td>
  650. </tr>
  651. </table>
  652. <div class="sourceCode">
  653. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L281">sdk/php/lib/XSDocument.class.php#L281</a> (<b><a href="#" class="show">显示</a></b>)
  654. <div class="code"><code><span style="color: #000000">
  655. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">offsetSet</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">is_null</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</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">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />}</span>
  656. </span>
  657. </code></div>
  658. </div>
  659. <p>ArrayAccess 接口, 设置字段值, 勿直接调用</p>
  660. <div class="SeeAlso">
  661. <h4>参见</h4>
  662. <ul>
  663. <li><a href="XSDocument.html#__set">__set</a></li>
  664. </ul>
  665. </div>
  666. <div class="detailHeader" id="offsetUnset-detail">
  667. offsetUnset()
  668. <span class="detailHeaderTag">
  669. 方法
  670. </span>
  671. </div>
  672. <table class="summaryTable">
  673. <tr><td colspan="3">
  674. <div class="signature2">
  675. public void <b>offsetUnset</b>(string $name)</div>
  676. </td></tr>
  677. <tr>
  678. <td class="paramNameCol">$name</td>
  679. <td class="paramTypeCol">string</td>
  680. <td class="paramDescCol">字段名称</td>
  681. </tr>
  682. </table>
  683. <div class="sourceCode">
  684. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L291">sdk/php/lib/XSDocument.class.php#L291</a> (<b><a href="#" class="show">显示</a></b>)
  685. <div class="code"><code><span style="color: #000000">
  686. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">offsetUnset</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]);<br />}</span>
  687. </span>
  688. </code></div>
  689. </div>
  690. <p>ArrayAccess 接口, 删除字段值, 勿直接调用</p>
  691. <div class="detailHeader" id="setCharset-detail">
  692. setCharset()
  693. <span class="detailHeaderTag">
  694. 方法
  695. </span>
  696. </div>
  697. <table class="summaryTable">
  698. <tr><td colspan="3">
  699. <div class="signature2">
  700. public void <b>setCharset</b>(string $charset)</div>
  701. </td></tr>
  702. <tr>
  703. <td class="paramNameCol">$charset</td>
  704. <td class="paramTypeCol">string</td>
  705. <td class="paramDescCol">设置文档字符集</td>
  706. </tr>
  707. </table>
  708. <div class="sourceCode">
  709. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L130">sdk/php/lib/XSDocument.class.php#L130</a> (<b><a href="#" class="show">显示</a></b>)
  710. <div class="code"><code><span style="color: #000000">
  711. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">setCharset</span><span style="color: #007700">(</span><span style="color: #0000BB">$charset</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">_charset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$charset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_charset&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'UTF8'</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">_charset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">;<br />}</span>
  712. </span>
  713. </code></div>
  714. </div>
  715. <p>设置文档字符集</p>
  716. <div class="detailHeader" id="setField-detail">
  717. setField()
  718. <span class="detailHeaderTag">
  719. 方法
  720. </span>
  721. </div>
  722. <table class="summaryTable">
  723. <tr><td colspan="3">
  724. <div class="signature2">
  725. public void <b>setField</b>(string $name, mixed $value)</div>
  726. </td></tr>
  727. <tr>
  728. <td class="paramNameCol">$name</td>
  729. <td class="paramTypeCol">string</td>
  730. <td class="paramDescCol">字段名称</td>
  731. </tr>
  732. <tr>
  733. <td class="paramNameCol">$value</td>
  734. <td class="paramTypeCol">mixed</td>
  735. <td class="paramDescCol">字段值</td>
  736. </tr>
  737. </table>
  738. <div class="sourceCode">
  739. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L155">sdk/php/lib/XSDocument.class.php#L155</a> (<b><a href="#" class="show">显示</a></b>)
  740. <div class="code"><code><span style="color: #000000">
  741. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">setField</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$value&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<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">_data</span><span style="color: #007700">[</span><span style="color: #0000BB">$name</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br />}</span>
  742. </span>
  743. </code></div>
  744. </div>
  745. <p>设置某个字段的值</p>
  746. <div class="detailHeader" id="setFields-detail">
  747. setFields()
  748. <span class="detailHeaderTag">
  749. 方法
  750. </span>
  751. </div>
  752. <table class="summaryTable">
  753. <tr><td colspan="3">
  754. <div class="signature2">
  755. public void <b>setFields</b>(array $data)</div>
  756. </td></tr>
  757. <tr>
  758. <td class="paramNameCol">$data</td>
  759. <td class="paramTypeCol">array</td>
  760. <td class="paramDescCol">字段名及其值组成的数组</td>
  761. </tr>
  762. </table>
  763. <div class="sourceCode">
  764. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSDocument.class.php#L142">sdk/php/lib/XSDocument.class.php#L142</a> (<b><a href="#" class="show">显示</a></b>)
  765. <div class="code"><code><span style="color: #000000">
  766. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">setFields</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">null</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">_data&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;else<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">_data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">array_merge</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">_data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br />}</span>
  767. </span>
  768. </code></div>
  769. </div>
  770. <p>批量设置字段值
  771. 这里是以合并方式赋值, 即不会清空已赋值并且不在参数中的字段.</p>
  772. </div><!-- end of content -->
  773. <div id="apiFooter">
  774. Copyright &copy; 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
  775. All Rights Reserved.<br/>
  776. </div><!-- end of footer -->
  777. <script type="text/javascript">
  778. /*<![CDATA[*/
  779. $("a.toggle").toggle(function(){
  780. $(this).text($(this).text().replace(/Hide/,'Show'));
  781. $(this).parents(".summary").find(".inherited").hide();
  782. },function(){
  783. $(this).text($(this).text().replace(/Show/,'Hide'));
  784. $(this).parents(".summary").find(".inherited").show();
  785. });
  786. $(".sourceCode a.show").toggle(function(){
  787. $(this).text($(this).text().replace(/show/,'hide'));
  788. $(this).parents(".sourceCode").find("div.code").show();
  789. },function(){
  790. $(this).text($(this).text().replace(/hide/,'show'));
  791. $(this).parents(".sourceCode").find("div.code").hide();
  792. });
  793. $("a.sourceLink").click(function(){
  794. $(this).attr('target','_blank');
  795. });
  796. /*]]>*/
  797. </script>
  798. </div><!-- end of page -->
  799. </body>
  800. </html>