<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 權威指南 1. [編寫自定義分詞器](#) 1. [使用自定義分詞器](#) # 自定義分詞器 `Xunsearch` 默認內置了功能強大的 [SCWS](http://www.xunsearch.com/scws/) 分詞系統,也附加提供了一些簡單常見的分詞規則,但考慮到用戶的個性需求,特意提供了自定義分詞器的功能。 > **Note:** 自定義分詞器存在一個缺陷,它不支持存儲位置信息,也就是不能按短語檢索、以及 `NEAR` 之類的 語法檢索。相當于該字段配置中的 `phrase` 值恒為 `no`,通常把自定義分詞用于一些帶有一定規則的簡要 字段,而不是更多的考慮語義關系。 ### 1. 編寫自定義分詞器[?]() 自定義分詞器必須實現 [XSTokenizer](#) 接口。假定您要編寫一個名為 `xyz` 的分詞器,則您要編寫的代碼文件為 `XSTokenizerXyz.class.php`,請將文件統一放入 `$prefix/sdk/php/lib` 目錄。 通常來講,您只需要實現 [XSTokenizer::getTokens](#) 即可。該函數接受 2個參數,分別為要分詞的值以及當前的文檔對象(可選);返回值為分好的詞匯組成的數組。下面以按 `-` 分割字段為例: ~~~ class XSTokenizerXyz implements XSTokenizer { public function getTokens($value, XSDocument $doc = null) { $ret = array(); if (!empty($value)) $ret = explode('-', $value); return $ret; } } ~~~ > **Note:**[XSTokenizer::getTokens](#) 的參數 `$value` 的編碼始終為 UTF-8 。 如果您需要編寫帶有參數支持的分詞器,比如讓用戶傳入按什么字符分割,請參照下面寫法編寫構造函數: ~~~ class XSTokenizerXyz implements XSTokenizer { private $delim = '-'; // 默認按 - 分割 public function __construct($arg = null) { if ($arg !== null && $arg !== '') $this->delim = $arg; } public function getTokens($value, XSDocument $doc) { $ret = array(); if (!empty($value)) $ret = explode($this->delim, $value); return $ret; } } ~~~ ### 2. 使用自定義分詞器[?]() 編寫完了自定義分詞器的代碼后,您就可以在項目配置文件中使用它了,在需要用這個分詞器的字段中指定 `tokenizer` 選項的值,例子中省略了字段的其它選項,實際編寫時可能還包括其它選項。 而在[搜索語句](#)中,如果指明了字段搜索前綴 `field:XXX` 那么搜索引擎內部也會對這個搜索語句執行自定義分詞。 ~~~ [some_field] ; 不帶參數的用法 tokenizer = xyz ; 帶參數的用法,表示把 _ 作為參數傳遞給構造函數 tokenizer = xyz(_) ~~~ $Id$ [? 項目配置詳解](#) [編寫第一個配置文件 ?](#) Copyright ? 2008-2011 by [杭州云圣網絡科技有限公司](http://www.xunsearch.com) All Rights Reserved. ![](https://box.kancloud.cn/2015-09-10_55f11d02b2acd.gif) ![](https://box.kancloud.cn/2015-09-10_55f11d02ba7f1.gif) ![](https://box.kancloud.cn/2015-09-10_55f11d02c0ea7.gif)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看