| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- <meta name="language" content="zh-cn" />
- <link rel="stylesheet" type="text/css" href="css/style.css" />
- <link rel="stylesheet" type="text/css" href="css/api.css" />
- <script type="text/javascript" src="js/jquery.js"></script>
- <title>XSFieldMeta</title>
- </head>
- <body>
- <div id="apiPage">
- <div id="apiHeader">
- <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
- </div><!-- end of header -->
- <div id="content" class="api-index">
- <h1>XSFieldMeta</h1>
- <div id="nav">
- <a href="index.html">All Packages</a>
- | <a href="#properties">属性</a>
- | <a href="#methods">方法(函数)</a>
- </div>
- <table class="summaryTable docClass">
- <colgroup>
- <col class="col-name" />
- <col class="col-value" />
- </colgroup>
- <tr>
- <th>包</th>
- <td><a href="index.html#XS">XS</a></td>
- </tr>
- <tr>
- <th>继承关系</th>
- <td>class XSFieldMeta</td>
- </tr>
- <tr>
- <th>版本</th>
- <td>1.0.0</td>
- </tr>
- <tr>
- <th>源代码</th>
- <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php">sdk/php/lib/XSFieldScheme.class.php</a></td>
- </tr>
- </table>
- <div id="classDescription">
- 数据字段结构元数据
- 每个搜索项目包含若干个字段, 字段元数据保存在项目的 ini 配置文件中</div>
- <a name="properties"></a>
- <div class="summary docProperty">
- <h2>Public 属性</h2>
- <p><a href="#" class="toggle">隐去继承来的属性</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-property" />
- <col class="col-type" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
- </tr>
- <tr id="cutlen">
- <td><a href="XSFieldMeta.html#cutlen-detail">cutlen</a></td>
- <td>int</td>
- <td>剪取长度 (单位:字节)
- 用于在返回搜索结果自动剪取较长内容的字段, 默认为 0表示不截取, body 型字段默认为 300 字节</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="name">
- <td><a href="XSFieldMeta.html#name-detail">name</a></td>
- <td>string</td>
- <td>字段名称
- 理论上支持各种可视字符, 推荐字符范围:[0-9A-Za-z-_], 长度控制在 1~32 字节为宜</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="type">
- <td><a href="XSFieldMeta.html#type-detail">type</a></td>
- <td>int</td>
- <td>字段类型</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="vno">
- <td><a href="XSFieldMeta.html#vno-detail">vno</a></td>
- <td>int</td>
- <td>字段序号
- 取值为 0~255, 同一字段方案内不能重复, 由 <a href="XSFieldScheme.html#addField">XSFieldScheme::addField</a> 进行确定</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="weight">
- <td><a href="XSFieldMeta.html#weight-detail">weight</a></td>
- <td>int</td>
- <td>混合区检索时的相对权重
- 取值范围: 1~63, title 类型的字段默认为 5, 其它字段默认为 1</td>
- <td>XSFieldMeta</td>
- </tr>
- </table>
- </div>
- <a name="methods"></a>
- <div class="summary docMethod">
- <h2>Public 方法</h2>
- <p><a href="#" class="toggle">隐去继承来的方法</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-method" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>描述</th><th>定义于</th>
- </tr>
- <tr id="__construct">
- <td><a href="XSFieldMeta.html#__construct-detail">__construct()</a></td>
- <td>构造函数</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="__toString">
- <td><a href="XSFieldMeta.html#__toString-detail">__toString()</a></td>
- <td>将对象转换为字符串</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="fromConfig">
- <td><a href="XSFieldMeta.html#fromConfig-detail">fromConfig()</a></td>
- <td>解析字段对象属性</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="getCustomTokenizer">
- <td><a href="XSFieldMeta.html#getCustomTokenizer-detail">getCustomTokenizer()</a></td>
- <td>获取自定义词法分析器</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="hasCustomTokenizer">
- <td><a href="XSFieldMeta.html#hasCustomTokenizer-detail">hasCustomTokenizer()</a></td>
- <td>判断当前字段是否采用自定义分词器</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="hasIndex">
- <td><a href="XSFieldMeta.html#hasIndex-detail">hasIndex()</a></td>
- <td>判断当前字段是否需要索引</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="hasIndexMixed">
- <td><a href="XSFieldMeta.html#hasIndexMixed-detail">hasIndexMixed()</a></td>
- <td>判断当前字段是否需要在混合区索引</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="hasIndexSelf">
- <td><a href="XSFieldMeta.html#hasIndexSelf-detail">hasIndexSelf()</a></td>
- <td>判断当前字段是否需要在字段区索引</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="isBoolIndex">
- <td><a href="XSFieldMeta.html#isBoolIndex-detail">isBoolIndex()</a></td>
- <td>判断当前字段的索引是否为布尔型</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="isNumeric">
- <td><a href="XSFieldMeta.html#isNumeric-detail">isNumeric()</a></td>
- <td>判断当前字段是否为数字型</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="isSpeical">
- <td><a href="XSFieldMeta.html#isSpeical-detail">isSpeical()</a></td>
- <td>判断当前字段是否为特殊类型</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="toConfig">
- <td><a href="XSFieldMeta.html#toConfig-detail">toConfig()</a></td>
- <td>将对象转换为配置文件字符串</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="val">
- <td><a href="XSFieldMeta.html#val-detail">val()</a></td>
- <td>把给定的值转换为符合这个字段的数据格式</td>
- <td>XSFieldMeta</td>
- </tr>
- <tr id="withPos">
- <td><a href="XSFieldMeta.html#withPos-detail">withPos()</a></td>
- <td>判断当前字段索引是否支持短语搜索</td>
- <td>XSFieldMeta</td>
- </tr>
- </table>
- </div>
- <a name="events"></a>
- <h2>属性明细</h2>
- <div class="detailHeader" id="cutlen-detail">
- cutlen<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public int <b>$cutlen</b>;</div>
- <p>剪取长度 (单位:字节)
- 用于在返回搜索结果自动剪取较长内容的字段, 默认为 0表示不截取, body 型字段默认为 300 字节</p>
- <div class="detailHeader" id="name-detail">
- name<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public string <b>$name</b>;</div>
- <p>字段名称
- 理论上支持各种可视字符, 推荐字符范围:[0-9A-Za-z-_], 长度控制在 1~32 字节为宜</p>
- <div class="detailHeader" id="type-detail">
- type<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public int <b>$type</b>;</div>
- <p>字段类型</p>
- <div class="detailHeader" id="vno-detail">
- vno<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public int <b>$vno</b>;</div>
- <p>字段序号
- 取值为 0~255, 同一字段方案内不能重复, 由 <a href="XSFieldScheme.html#addField">XSFieldScheme::addField</a> 进行确定</p>
- <div class="detailHeader" id="weight-detail">
- weight<span class="detailHeaderTag">
- 属性
- </span>
- </div>
- <div class="signature">
- public int <b>$weight</b>;</div>
- <p>混合区检索时的相对权重
- 取值范围: 1~63, title 类型的字段默认为 5, 其它字段默认为 1</p>
- <h2>方法明细</h2>
- <div class="detailHeader" id="__construct-detail">
- __construct()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>__construct</b>(string $name, array $config=NULL)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">字段名称</td>
- </tr>
- <tr>
- <td class="paramNameCol">$config</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">可选参数, 初始化字段各项配置</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L290">sdk/php/lib/XSFieldScheme.class.php#L290</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$config </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">name </span><span style="color: #007700">= </span><span style="color: #0000BB">strval</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">fromConfig</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>构造函数</p>
- <div class="detailHeader" id="__toString-detail">
- __toString()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public string <b>__toString</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">字段名称</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L301">sdk/php/lib/XSFieldScheme.class.php#L301</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__toString</span><span style="color: #007700">()<br />{<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">name</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>将对象转换为字符串</p>
- <div class="detailHeader" id="fromConfig-detail">
- fromConfig()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>fromConfig</b>(array $config)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$config</td>
- <td class="paramTypeCol">array</td>
- <td class="paramDescCol">原始配置属性数组</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L492">sdk/php/lib/XSFieldScheme.class.php#L492</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">fromConfig</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #FF8000">// type & default setting<br /> </span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'type'</span><span style="color: #007700">]))<br /> {<br /> </span><span style="color: #0000BB">$predef </span><span style="color: #007700">= </span><span style="color: #DD0000">'self::TYPE_' </span><span style="color: #007700">. </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'type'</span><span style="color: #007700">]);<br /> if (</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #0000BB">$predef</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">= </span><span style="color: #0000BB">constant</span><span style="color: #007700">(</span><span style="color: #0000BB">$predef</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_SELF</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">= </span><span style="color: #DD0000">'full'</span><span style="color: #007700">;<br /> }<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_BOTH </span><span style="color: #007700">| </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">weight </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br /> }<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">vno </span><span style="color: #007700">= </span><span style="color: #0000BB">XSFieldScheme</span><span style="color: #007700">::</span><span style="color: #0000BB">MIXED_VNO</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_SELF </span><span style="color: #007700">| </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cutlen </span><span style="color: #007700">= </span><span style="color: #0000BB">300</span><span style="color: #007700">;<br /> }<br /> }<br /> }<br /> </span><span style="color: #FF8000">// index flag<br /> </span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'index'</span><span style="color: #007700">]) && </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$predef </span><span style="color: #007700">= </span><span style="color: #DD0000">'self::FLAG_INDEX_' </span><span style="color: #007700">. </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'index'</span><span style="color: #007700">]);<br /> if (</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #0000BB">$predef</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">&= ~ </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_BOTH</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">|= </span><span style="color: #0000BB">constant</span><span style="color: #007700">(</span><span style="color: #0000BB">$predef</span><span style="color: #007700">);<br /> }<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">|= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_SELF</span><span style="color: #007700">;<br /> }<br /> </span><span style="color: #FF8000">// others<br /> </span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'cutlen'</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cutlen </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'cutlen'</span><span style="color: #007700">]);<br /> if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'weight'</span><span style="color: #007700">]) && </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">weight </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'weight'</span><span style="color: #007700">]) & </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MAX_WDF</span><span style="color: #007700">;<br /> if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'phrase'</span><span style="color: #007700">]))<br /> {<br /> if (!</span><span style="color: #0000BB">strcasecmp</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'phrase'</span><span style="color: #007700">], </span><span style="color: #DD0000">'yes'</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">|= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">;<br /> else if (!</span><span style="color: #0000BB">strcasecmp</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'phrase'</span><span style="color: #007700">], </span><span style="color: #DD0000">'no'</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">&= ~ </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">;<br /> }<br /> if (isset(</span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'tokenizer'</span><span style="color: #007700">]) && </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID<br /> </span><span style="color: #007700">&& </span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'tokenizer'</span><span style="color: #007700">] != </span><span style="color: #DD0000">'default'</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">= </span><span style="color: #0000BB">$config</span><span style="color: #007700">[</span><span style="color: #DD0000">'tokenizer'</span><span style="color: #007700">];<br /> }<br />}</span>
- </span>
- </code></div>
- </div>
- <p>解析字段对象属性</p>
- <div class="detailHeader" id="getCustomTokenizer-detail">
- getCustomTokenizer()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public <a href="XSTokenizer.html">XSTokenizer</a> <b>getCustomTokenizer</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol"><a href="XSTokenizer.html">XSTokenizer</a></td>
- <td class="paramDescCol">获取当前字段的自定义词法分析器</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L401">sdk/php/lib/XSFieldScheme.class.php#L401</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getCustomTokenizer</span><span style="color: #007700">()<br />{<br /> if (isset(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$_tokenizers</span><span style="color: #007700">[</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">]))<br /> return </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$_tokenizers</span><span style="color: #007700">[</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">];<br /> else<br /> {<br /> if ((</span><span style="color: #0000BB">$pos1 </span><span style="color: #007700">= </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">, </span><span style="color: #DD0000">'('</span><span style="color: #007700">)) !== </span><span style="color: #0000BB">false<br /> </span><span style="color: #007700">&& (</span><span style="color: #0000BB">$pos2 </span><span style="color: #007700">= </span><span style="color: #0000BB">strrpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">, </span><span style="color: #DD0000">')'</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">)))<br /> {<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #DD0000">'XSTokenizer' </span><span style="color: #007700">. </span><span style="color: #0000BB">ucfirst</span><span style="color: #007700">(</span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos1</span><span style="color: #007700">)));<br /> </span><span style="color: #0000BB">$arg </span><span style="color: #007700">= </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos2 </span><span style="color: #007700">- </span><span style="color: #0000BB">$pos1 </span><span style="color: #007700">- </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /> }<br /> else<br /> {<br /> </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #DD0000">'XSTokenizer' </span><span style="color: #007700">. </span><span style="color: #0000BB">ucfirst</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$arg </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /> }<br /> if (!</span><span style="color: #0000BB">class_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">))<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Undefined custom tokenizer `' </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">. </span><span style="color: #DD0000">'\' for field `' </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">name </span><span style="color: #007700">. </span><span style="color: #DD0000">'\''</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$obj </span><span style="color: #007700">= </span><span style="color: #0000BB">$arg </span><span style="color: #007700">=== </span><span style="color: #0000BB">null </span><span style="color: #007700">? new </span><span style="color: #0000BB">$name </span><span style="color: #007700">: new </span><span style="color: #0000BB">$name</span><span style="color: #007700">(</span><span style="color: #0000BB">$arg</span><span style="color: #007700">);<br /> if (!</span><span style="color: #0000BB">$obj </span><span style="color: #007700">instanceof </span><span style="color: #0000BB">XSTokenizer</span><span style="color: #007700">)<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$name </span><span style="color: #007700">. </span><span style="color: #DD0000">' for field `' </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">name </span><span style="color: #007700">. </span><span style="color: #DD0000">'\' dose not implement the interface: XSTokenizer'</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$_tokenizers</span><span style="color: #007700">[</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer</span><span style="color: #007700">] = </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br /> }<br />}</span>
- </span>
- </code></div>
- </div>
- <p>获取自定义词法分析器</p>
- <div class="detailHeader" id="hasCustomTokenizer-detail">
- hasCustomTokenizer()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>hasCustomTokenizer</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是返回 true, 不是返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L391">sdk/php/lib/XSFieldScheme.class.php#L391</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">hasCustomTokenizer</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">!== </span><span style="color: #0000BB">XSTokenizer</span><span style="color: #007700">::</span><span style="color: #0000BB">DFL</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否采用自定义分词器</p>
- <div class="detailHeader" id="hasIndex-detail">
- hasIndex()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>hasIndex</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">若需要返回 true, 不需要则返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L364">sdk/php/lib/XSFieldScheme.class.php#L364</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">hasIndex</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_BOTH</span><span style="color: #007700">) ? </span><span style="color: #0000BB">true </span><span style="color: #007700">: </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否需要索引</p>
- <div class="detailHeader" id="hasIndexMixed-detail">
- hasIndexMixed()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>hasIndexMixed</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">若需要返回 true, 不需要则返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L373">sdk/php/lib/XSFieldScheme.class.php#L373</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">hasIndexMixed</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_MIXED</span><span style="color: #007700">) ? </span><span style="color: #0000BB">true </span><span style="color: #007700">: </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否需要在混合区索引</p>
- <div class="detailHeader" id="hasIndexSelf-detail">
- hasIndexSelf()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>hasIndexSelf</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">若需要返回 true, 不需要则返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L382">sdk/php/lib/XSFieldScheme.class.php#L382</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">hasIndexSelf</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_SELF</span><span style="color: #007700">) ? </span><span style="color: #0000BB">true </span><span style="color: #007700">: </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否需要在字段区索引</p>
- <div class="detailHeader" id="isBoolIndex-detail">
- isBoolIndex()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>isBoolIndex</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是返回 true, 不是返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L336">sdk/php/lib/XSFieldScheme.class.php#L336</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">isBoolIndex</span><span style="color: #007700">()<br />{<br /> return (!</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">hasIndex</span><span style="color: #007700">() || </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">!== </span><span style="color: #0000BB">XSTokenizer</span><span style="color: #007700">::</span><span style="color: #0000BB">DFL</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段的索引是否为布尔型
- 目前只有内置分词器支持语法型索引, 自 1.0.1 版本起把非索引字段也视为布尔便于判断</p>
- <div class="detailHeader" id="isNumeric-detail">
- isNumeric()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>isNumeric</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是返回 true, 不是返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L345">sdk/php/lib/XSFieldScheme.class.php#L345</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">isNumeric</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_NUMERIC</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否为数字型</p>
- <div class="detailHeader" id="isSpeical-detail">
- isSpeical()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>isSpeical</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是返回 true, 不是返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L355">sdk/php/lib/XSFieldScheme.class.php#L355</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">isSpeical</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID </span><span style="color: #007700">|| </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE </span><span style="color: #007700">|| </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段是否为特殊类型
- 特殊类型的字段是指 id, title, body, 每个项目至多只能有一个这种类型的字段</p>
- <div class="detailHeader" id="toConfig-detail">
- toConfig()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public string <b>toConfig</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">转换后的配置文件字符串</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L433">sdk/php/lib/XSFieldScheme.class.php#L433</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">toConfig</span><span style="color: #007700">()<br />{<br /> </span><span style="color: #FF8000">// type<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">= </span><span style="color: #DD0000">"[" </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">name </span><span style="color: #007700">. </span><span style="color: #DD0000">"]\n"</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_NUMERIC</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"type = numeric\n"</span><span style="color: #007700">;<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_DATE</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"type = date\n"</span><span style="color: #007700">;<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"type = id\n"</span><span style="color: #007700">;<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"type = title\n"</span><span style="color: #007700">;<br /> else if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"type = body\n"</span><span style="color: #007700">;<br /> </span><span style="color: #FF8000">// index<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY </span><span style="color: #007700">&& (</span><span style="color: #0000BB">$index </span><span style="color: #007700">= (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_BOTH</span><span style="color: #007700">)))<br /> {<br /> if (</span><span style="color: #0000BB">$index </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_BOTH</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"index = both\n"</span><span style="color: #007700">;<br /> }<br /> else if (</span><span style="color: #0000BB">$index </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_INDEX_MIXED</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"index = mixed\n"</span><span style="color: #007700">;<br /> }<br /> else<br /> {<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"index = self\n"</span><span style="color: #007700">;<br /> }<br /> }<br /> </span><span style="color: #FF8000">// tokenizer<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_ID </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">!== </span><span style="color: #0000BB">XSTokenizer</span><span style="color: #007700">::</span><span style="color: #0000BB">DFL</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"tokenizer = " </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">tokenizer </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> </span><span style="color: #FF8000">// cutlen<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cutlen </span><span style="color: #007700">> </span><span style="color: #0000BB">0 </span><span style="color: #007700">&& !(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cutlen </span><span style="color: #007700">=== </span><span style="color: #0000BB">300 </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"cutlen = " </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">cutlen </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> </span><span style="color: #FF8000">// weight<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">weight </span><span style="color: #007700">!== </span><span style="color: #0000BB">1 </span><span style="color: #007700">&& !(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">weight </span><span style="color: #007700">=== </span><span style="color: #0000BB">5 </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">))<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"weight = " </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">weight </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> </span><span style="color: #FF8000">// phrase<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">)<br /> {<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY </span><span style="color: #007700">&& </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">!== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"phrase = yes\n"</span><span style="color: #007700">;<br /> }<br /> else<br /> {<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_BODY </span><span style="color: #007700">|| </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">=== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_TITLE</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">.= </span><span style="color: #DD0000">"phrase = no\n"</span><span style="color: #007700">;<br /> }<br /> return </span><span style="color: #0000BB">$str</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>将对象转换为配置文件字符串</p>
- <div class="detailHeader" id="val-detail">
- val()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public mixed <b>val</b>(mixed $value)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$value</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">原值</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">转换后的值</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L311">sdk/php/lib/XSFieldScheme.class.php#L311</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">val</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type </span><span style="color: #007700">== </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_DATE</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #FF8000">// 日期类型: 转换成专用的 YYYYmmdd 格式<br /> </span><span style="color: #007700">if (!</span><span style="color: #0000BB">is_numeric</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">) || </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">) != </span><span style="color: #0000BB">8</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">'Ymd'</span><span style="color: #007700">, </span><span style="color: #0000BB">is_numeric</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">) ? </span><span style="color: #0000BB">$value </span><span style="color: #007700">: </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">));<br /> }<br /> return </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>把给定的值转换为符合这个字段的数据格式</p>
- <div class="detailHeader" id="withPos-detail">
- withPos()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>withPos</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">是返回 true, 不是返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSFieldScheme.class.php#L326">sdk/php/lib/XSFieldScheme.class.php#L326</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">withPos</span><span style="color: #007700">()<br />{<br /> return (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">flag </span><span style="color: #007700">& </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">FLAG_WITH_POSITION</span><span style="color: #007700">) ? </span><span style="color: #0000BB">true </span><span style="color: #007700">: </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}</span>
- </span>
- </code></div>
- </div>
- <p>判断当前字段索引是否支持短语搜索</p>
- </div><!-- end of content -->
- <div id="apiFooter">
- Copyright © 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
- All Rights Reserved.<br/>
- </div><!-- end of footer -->
- <script type="text/javascript">
- /*<![CDATA[*/
- $("a.toggle").toggle(function(){
- $(this).text($(this).text().replace(/Hide/,'Show'));
- $(this).parents(".summary").find(".inherited").hide();
- },function(){
- $(this).text($(this).text().replace(/Show/,'Hide'));
- $(this).parents(".summary").find(".inherited").show();
- });
- $(".sourceCode a.show").toggle(function(){
- $(this).text($(this).text().replace(/show/,'hide'));
- $(this).parents(".sourceCode").find("div.code").show();
- },function(){
- $(this).text($(this).text().replace(/hide/,'show'));
- $(this).parents(".sourceCode").find("div.code").hide();
- });
- $("a.sourceLink").click(function(){
- $(this).attr('target','_blank');
- });
- /*]]>*/
- </script>
- </div><!-- end of page -->
- </body>
- </html>
|