<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>8.3.29. tokenize — groonga v3.0.5ドキュメント</title> <link rel="stylesheet" href="../../_static/groonga.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../', VERSION: '3.0.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../../_static/jquery.js"></script> <script type="text/javascript" src="../../_static/underscore.js"></script> <script type="text/javascript" src="../../_static/doctools.js"></script> <script type="text/javascript" src="../../_static/translations.js"></script> <link rel="shortcut icon" href="../../_static/favicon.ico"/> <link rel="top" title="groonga v3.0.5ドキュメント" href="../../index.html" /> <link rel="up" title="8.3. コマンド" href="../command.html" /> <link rel="next" title="8.3.30. truncate" href="truncate.html" /> <link rel="prev" title="8.3.28. table_remove" href="table_remove.html" /> </head> <body> <div class="header"> <h1 class="title"> <a id="top-link" href="../../index.html"> <span class="project">groonga</span> <span class="separator">-</span> <span class="description">オープンソースのカラムストア機能付き全文検索エンジン</span> </a> </h1> <div class="other-language-links"> <ul> <li><a href="../../../../en/html/reference/commands/tokenize.html"><img src="../../_static/us.png" alt="English">English page</a></li> </ul> </div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="総合索引" accesskey="I">索引</a></li> <li class="right" > <a href="truncate.html" title="8.3.30. truncate" accesskey="N">次へ</a> |</li> <li class="right" > <a href="table_remove.html" title="8.3.28. table_remove" accesskey="P">前へ</a> |</li> <li><a href="../../index.html">groonga v3.0.5ドキュメント</a> »</li> <li><a href="../../reference.html" >8. リファレンスマニュアル</a> »</li> <li><a href="../command.html" accesskey="U">8.3. コマンド</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="tokenize"> <h1>8.3.29. <tt class="docutils literal"><span class="pre">tokenize</span></tt><a class="headerlink" href="#tokenize" title="このヘッドラインへのパーマリンク">¶</a></h1> <div class="section" id="summary"> <h2>8.3.29.1. 概要<a class="headerlink" href="#summary" title="このヘッドラインへのパーマリンク">¶</a></h2> <p><tt class="docutils literal"><span class="pre">tokenize</span></tt> コマンドは指定したトークナイザーでテキストをトークナイズします。これはトークナイズ処理のデバッグに便利です。</p> </div> <div class="section" id="syntax"> <h2>8.3.29.2. 構文<a class="headerlink" href="#syntax" title="このヘッドラインへのパーマリンク">¶</a></h2> <p><tt class="docutils literal"><span class="pre">tokenize</span></tt> コマンドには必須の引数と省略可能な引数があります。 <tt class="docutils literal"><span class="pre">tokenizer</span></tt> と <tt class="docutils literal"><span class="pre">string</span></tt> が必須の引数で、他の引数はすべて省略可能です。</p> <div class="highlight-none"><div class="highlight"><pre>tokenize tokenizer string [normalizer=null] [flags=NONE] </pre></div> </div> </div> <div class="section" id="usage"> <h2>8.3.29.3. 使い方<a class="headerlink" href="#usage" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>以下は簡単な使用例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenBigram "Fulltext Search" # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "Fu" # }, # { # "position": 1, # "value": "ul" # }, # { # "position": 2, # "value": "ll" # }, # { # "position": 3, # "value": "lt" # }, # { # "position": 4, # "value": "te" # }, # { # "position": 5, # "value": "ex" # }, # { # "position": 6, # "value": "xt" # }, # { # "position": 7, # "value": "t " # }, # { # "position": 8, # "value": " S" # }, # { # "position": 9, # "value": "Se" # }, # { # "position": 10, # "value": "ea" # }, # { # "position": 11, # "value": "ar" # }, # { # "position": 12, # "value": "rc" # }, # { # "position": 13, # "value": "ch" # }, # { # "position": 14, # "value": "h" # } # ] # ] </pre></div> </div> <p>この例では必須のパラメーターだけ使っています。 <tt class="docutils literal"><span class="pre">tokenizer</span></tt> には <tt class="docutils literal"><span class="pre">TokenBigram</span></tt> を、 <tt class="docutils literal"><span class="pre">string</span></tt> には <tt class="docutils literal"><span class="pre">"Fulltext</span> <span class="pre">Search"</span></tt> を指定しています。この例は <tt class="docutils literal"><span class="pre">TokenBigram</span></tt> トークナイザーで <tt class="docutils literal"><span class="pre">"Fulltext</span> <span class="pre">Search"</span></tt> をトークナイズしたトークンを返します。この例では <tt class="docutils literal"><span class="pre">"Fulltext</span> <span class="pre">Search"</span></tt> を正規化していません。</p> </div> <div class="section" id="parameters"> <h2>8.3.29.4. 引数<a class="headerlink" href="#parameters" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このセクションではすべての引数について説明します。引数はカテゴリわけしています。</p> <div class="section" id="required-parameters"> <h3>8.3.29.4.1. 必須引数<a class="headerlink" href="#required-parameters" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>必須引数は二つあります。 <tt class="docutils literal"><span class="pre">tokenizer</span></tt> と <tt class="docutils literal"><span class="pre">string</span></tt> です。</p> <div class="section" id="tokenizer"> <h4>8.3.29.4.1.1. <tt class="docutils literal"><span class="pre">tokenizer</span></tt><a class="headerlink" href="#tokenizer" title="このヘッドラインへのパーマリンク">¶</a></h4> <p>トークナイザー名を指定します。 <tt class="docutils literal"><span class="pre">tokenize</span></tt> コマンドは <tt class="docutils literal"><span class="pre">tokenizer</span></tt> で指定された名前のトークナイザーを使います。</p> <p>組み込みのトークナイザーについては <a class="reference internal" href="../tokenizers.html"><em>Tokenizers</em></a> を参照してください。</p> <p>以下は <tt class="docutils literal"><span class="pre">TokenTrigram</span></tt> トークナイザーを使う例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenTrigram "Fulltext Search" # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "Ful" # }, # { # "position": 1, # "value": "ull" # }, # { # "position": 2, # "value": "llt" # }, # { # "position": 3, # "value": "lte" # }, # { # "position": 4, # "value": "tex" # }, # { # "position": 5, # "value": "ext" # }, # { # "position": 6, # "value": "xt " # }, # { # "position": 7, # "value": "t S" # }, # { # "position": 8, # "value": " Se" # }, # { # "position": 9, # "value": "Sea" # }, # { # "position": 10, # "value": "ear" # }, # { # "position": 11, # "value": "arc" # }, # { # "position": 12, # "value": "rch" # }, # { # "position": 13, # "value": "ch" # }, # { # "position": 14, # "value": "h" # } # ] # ] </pre></div> </div> <p>他のトークナイザーを使いたい場合は、 <a class="reference internal" href="register.html"><em>register</em></a> コマンドでトークナイザープラグインを登録する必要があります。例えば、 <a class="reference external" href="https://github.com/groonga/groonga-normalizer-mysql">groonga-normalizer-mysql</a> を登録することでMySQL互換の正規化方法を使うことができます。</p> </div> <div class="section" id="string"> <h4>8.3.29.4.1.2. <tt class="docutils literal"><span class="pre">string</span></tt><a class="headerlink" href="#string" title="このヘッドラインへのパーマリンク">¶</a></h4> <p>トークナイズしたい文字列を指定します。 <tt class="docutils literal"><span class="pre">string</span></tt> の中に文字列を含める場合は、シングルクォート( <tt class="docutils literal"><span class="pre">'</span></tt> )またはダブルクォート( <tt class="docutils literal"><span class="pre">"</span></tt> )で <tt class="docutils literal"><span class="pre">string</span></tt> をクォートする必要があります。</p> <p><tt class="docutils literal"><span class="pre">string</span></tt> の中で空白を使う例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenBigram "Groonga is a fast fulltext earch engine!" # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "Gr" # }, # { # "position": 1, # "value": "ro" # }, # { # "position": 2, # "value": "oo" # }, # { # "position": 3, # "value": "on" # }, # { # "position": 4, # "value": "ng" # }, # { # "position": 5, # "value": "ga" # }, # { # "position": 6, # "value": "a " # }, # { # "position": 7, # "value": " i" # }, # { # "position": 8, # "value": "is" # }, # { # "position": 9, # "value": "s " # }, # { # "position": 10, # "value": " a" # }, # { # "position": 11, # "value": "a " # }, # { # "position": 12, # "value": " f" # }, # { # "position": 13, # "value": "fa" # }, # { # "position": 14, # "value": "as" # }, # { # "position": 15, # "value": "st" # }, # { # "position": 16, # "value": "t " # }, # { # "position": 17, # "value": " f" # }, # { # "position": 18, # "value": "fu" # }, # { # "position": 19, # "value": "ul" # }, # { # "position": 20, # "value": "ll" # }, # { # "position": 21, # "value": "lt" # }, # { # "position": 22, # "value": "te" # }, # { # "position": 23, # "value": "ex" # }, # { # "position": 24, # "value": "xt" # }, # { # "position": 25, # "value": "t " # }, # { # "position": 26, # "value": " e" # }, # { # "position": 27, # "value": "ea" # }, # { # "position": 28, # "value": "ar" # }, # { # "position": 29, # "value": "rc" # }, # { # "position": 30, # "value": "ch" # }, # { # "position": 31, # "value": "h " # }, # { # "position": 32, # "value": " e" # }, # { # "position": 33, # "value": "en" # }, # { # "position": 34, # "value": "ng" # }, # { # "position": 35, # "value": "gi" # }, # { # "position": 36, # "value": "in" # }, # { # "position": 37, # "value": "ne" # }, # { # "position": 38, # "value": "e!" # }, # { # "position": 39, # "value": "!" # } # ] # ] </pre></div> </div> </div> </div> <div class="section" id="optional-parameters"> <h3>8.3.29.4.2. 省略可能引数<a class="headerlink" href="#optional-parameters" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>いくつか省略可能な引数があります。</p> <div class="section" id="normalizer"> <h4>8.3.29.4.2.1. <tt class="docutils literal"><span class="pre">normalizer</span></tt><a class="headerlink" href="#normalizer" title="このヘッドラインへのパーマリンク">¶</a></h4> <p>ノーマライザー名を指定します。 <tt class="docutils literal"><span class="pre">tokenize</span></tt> コマンドは <tt class="docutils literal"><span class="pre">normalizer</span></tt> という名前のノーまライザーを使います。ノーまライザーは <tt class="docutils literal"><span class="pre">TokenBigrma</span></tt> など、N-gram関連のトークナイザーにとってとても重要です。</p> <p>ノーマライザーはノーマライズ中にそれぞれの文字の種類を検出します。N-gram系のトークナイザーはトークナイズ中に文字の種類を利用します。</p> <p>以下はノーマライザーを使わない例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenBigram "Fulltext Search" # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "Fu" # }, # { # "position": 1, # "value": "ul" # }, # { # "position": 2, # "value": "ll" # }, # { # "position": 3, # "value": "lt" # }, # { # "position": 4, # "value": "te" # }, # { # "position": 5, # "value": "ex" # }, # { # "position": 6, # "value": "xt" # }, # { # "position": 7, # "value": "t " # }, # { # "position": 8, # "value": " S" # }, # { # "position": 9, # "value": "Se" # }, # { # "position": 10, # "value": "ea" # }, # { # "position": 11, # "value": "ar" # }, # { # "position": 12, # "value": "rc" # }, # { # "position": 13, # "value": "ch" # }, # { # "position": 14, # "value": "h" # } # ] # ] </pre></div> </div> <p>すべてのアルファベットが2文字ごとトークナイズされています。例えば、 <tt class="docutils literal"><span class="pre">Fu</span></tt> で1つのトークンになっています。</p> <p>以下はノーマライザーを使う例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenBigram "Fulltext Search" NormalizerAuto # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "fulltext" # }, # { # "position": 1, # "value": "search" # } # ] # ] </pre></div> </div> <p>連続するアルファベットが1つのトークンにトークナイズされています。例えば、 <tt class="docutils literal"><span class="pre">fulltext</span></tt> で1つのトークンになっています。</p> <p>ノーマライザーを使いながら2文字でトークナイズしたい場合は <tt class="docutils literal"><span class="pre">TokenBigramSplitSymbolAlpha</span></tt> を使って下さい。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenBigramSplitSymbolAlpha "Fulltext Search" NormalizerAuto # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "fu" # }, # { # "position": 1, # "value": "ul" # }, # { # "position": 2, # "value": "ll" # }, # { # "position": 3, # "value": "lt" # }, # { # "position": 4, # "value": "te" # }, # { # "position": 5, # "value": "ex" # }, # { # "position": 6, # "value": "xt" # }, # { # "position": 7, # "value": "t" # }, # { # "position": 8, # "value": "se" # }, # { # "position": 9, # "value": "ea" # }, # { # "position": 10, # "value": "ar" # }, # { # "position": 11, # "value": "rc" # }, # { # "position": 12, # "value": "ch" # }, # { # "position": 13, # "value": "h" # } # ] # ] </pre></div> </div> <p>すべてのアルファベットが2文字ごとにトークナイズされています。そして、すべての文字が小文字にノーマライズされています。例えば、 <tt class="docutils literal"><span class="pre">fu</span></tt> で1つのトークンになっています。</p> </div> <div class="section" id="flags"> <h4>8.3.29.4.2.2. <tt class="docutils literal"><span class="pre">flags</span></tt><a class="headerlink" href="#flags" title="このヘッドラインへのパーマリンク">¶</a></h4> <p>トークナイズ処理をカスタマイズするオプションを指定します。「 <tt class="docutils literal"><span class="pre">|</span></tt> 」で区切って複数のオプションを指定することができます。例えば、 <tt class="docutils literal"><span class="pre">NONE|ENABLE_TOKENIZED_DELIMITER</span></tt> というように指定できます。</p> <p>指定可能なフラグは以下の通りです。</p> <table border="1" class="docutils"> <colgroup> <col width="50%" /> <col width="50%" /> </colgroup> <thead valign="bottom"> <tr class="row-odd"><th class="head"><p class="first last">フラグ</p> </th> <th class="head"><p class="first last">説明</p> </th> </tr> </thead> <tbody valign="top"> <tr class="row-even"><td><tt class="docutils literal"><span class="pre">NONE</span></tt></td> <td><p class="first last">無視されます。</p> </td> </tr> <tr class="row-odd"><td><tt class="docutils literal"><span class="pre">ENABLE_TOKENIZED_DELIMITER</span></tt></td> <td><p class="first last">トークナイズ済み区切り文字を有効にします。トークナイズ済み区切り文字の詳細は <a class="reference internal" href="../tokenizers.html"><em>Tokenizers</em></a> を参照してください。</p> </td> </tr> </tbody> </table> <p>以下は <tt class="docutils literal"><span class="pre">ENABLE_TOKENIZED_DELIMITER</span></tt> を使った例です。</p> <p>実行例:</p> <div class="highlight-none"><div class="highlight"><pre>tokenize TokenDelimit "Fulltext Seacrch" NormalizerAuto ENABLE_TOKENIZED_DELIMITER # [ # [ # 0, # 1337566253.89858, # 0.000355720520019531 # ], # [ # { # "position": 0, # "value": "full" # }, # { # "position": 1, # "value": "text sea" # }, # { # "position": 2, # "value": "crch" # } # ] # ] </pre></div> </div> <p><tt class="docutils literal"><span class="pre">TokenDelimit</span></tt> トークナイザーはトークナイズ済み区切り文字をサポートしているトークナイザーの1つです。 <tt class="docutils literal"><span class="pre">ENABLE_TOKENIZED_DELIMITER</span></tt> でトークナイズ済み区切り文字を有効に出来ます。トークナイズ済み区切り文字はトークンの区切りを表す特別な文字です。この文字は <tt class="docutils literal"><span class="pre">U+FFFE</span></tt> です。この文字コードはどの文字にも割り当てられていません。つまり、通常の文字列にはこの文字は現れません。よって、トークンの区切りを表すという目的には適切な文字です。 <tt class="docutils literal"><span class="pre">ENABLE_TOKENIZED_DELIMITER</span></tt> が有効のときは、対象文字列はすでにトークナイズ済みであると扱われます。トークナイザーは単にトークナイズ済み区切り文字で区切ってトークナイズします。</p> </div> </div> </div> <div class="section" id="return-value"> <h2>8.3.29.5. 戻り値<a class="headerlink" href="#return-value" title="このヘッドラインへのパーマリンク">¶</a></h2> <p><tt class="docutils literal"><span class="pre">tokenize</span></tt> コマンドはトークナイズしたトークンをすべて返します。各トークンはトークン自身の文字列情報以外にいくつかの属性を持ちます。属性は今後増えていく可能性があります:</p> <div class="highlight-none"><div class="highlight"><pre>[HEADER, tokens] </pre></div> </div> <p><tt class="docutils literal"><span class="pre">HEADER</span></tt></p> <blockquote> <div><p><tt class="docutils literal"><span class="pre">HEADER</span></tt> については <a class="reference internal" href="../command/output_format.html"><em>出力形式</em></a> を参照してください。</p> </div></blockquote> <p><tt class="docutils literal"><span class="pre">tokens</span></tt></p> <blockquote> <div><p><tt class="docutils literal"><span class="pre">tokens</span></tt> はトークンの配列です。トークンは以下の属性を持ったオブジェクトです。</p> <table border="1" class="docutils"> <colgroup> <col width="50%" /> <col width="50%" /> </colgroup> <thead valign="bottom"> <tr class="row-odd"><th class="head"><p class="first last">名前</p> </th> <th class="head"><p class="first last">説明</p> </th> </tr> </thead> <tbody valign="top"> <tr class="row-even"><td><tt class="docutils literal"><span class="pre">value</span></tt></td> <td><p class="first last">トークン自身</p> </td> </tr> <tr class="row-odd"><td><tt class="docutils literal"><span class="pre">position</span></tt></td> <td><p class="first last">N番目のトークン。</p> </td> </tr> </tbody> </table> </div></blockquote> </div> <div class="section" id="see-also"> <h2>8.3.29.6. 参考<a class="headerlink" href="#see-also" title="このヘッドラインへのパーマリンク">¶</a></h2> <ul class="simple"> <li><a class="reference internal" href="../tokenizers.html"><em>Tokenizers</em></a></li> </ul> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../../index.html">目次</a></h3> <ul> <li><a class="reference internal" href="#">8.3.29. <tt class="docutils literal"><span class="pre">tokenize</span></tt></a><ul> <li><a class="reference internal" href="#summary">8.3.29.1. 概要</a></li> <li><a class="reference internal" href="#syntax">8.3.29.2. 構文</a></li> <li><a class="reference internal" href="#usage">8.3.29.3. 使い方</a></li> <li><a class="reference internal" href="#parameters">8.3.29.4. 引数</a><ul> <li><a class="reference internal" href="#required-parameters">8.3.29.4.1. 必須引数</a><ul> <li><a class="reference internal" href="#tokenizer">8.3.29.4.1.1. <tt class="docutils literal"><span class="pre">tokenizer</span></tt></a></li> <li><a class="reference internal" href="#string">8.3.29.4.1.2. <tt class="docutils literal"><span class="pre">string</span></tt></a></li> </ul> </li> <li><a class="reference internal" href="#optional-parameters">8.3.29.4.2. 省略可能引数</a><ul> <li><a class="reference internal" href="#normalizer">8.3.29.4.2.1. <tt class="docutils literal"><span class="pre">normalizer</span></tt></a></li> <li><a class="reference internal" href="#flags">8.3.29.4.2.2. <tt class="docutils literal"><span class="pre">flags</span></tt></a></li> </ul> </li> </ul> </li> <li><a class="reference internal" href="#return-value">8.3.29.5. 戻り値</a></li> <li><a class="reference internal" href="#see-also">8.3.29.6. 参考</a></li> </ul> </li> </ul> <h4>前のトピックへ</h4> <p class="topless"><a href="table_remove.html" title="前の章へ">8.3.28. table_remove</a></p> <h4>次のトピックへ</h4> <p class="topless"><a href="truncate.html" title="次の章へ">8.3.30. <tt class="docutils literal"><span class="pre">truncate</span></tt></a></p> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../../_sources/reference/commands/tokenize.txt" rel="nofollow">ソースコードを表示</a></li> </ul> <div id="searchbox" style="display: none"> <h3>クイック検索</h3> <form class="search" action="../../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> モジュール、クラス、または関数名を入力してください </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="総合索引" >索引</a></li> <li class="right" > <a href="truncate.html" title="8.3.30. truncate" >次へ</a> |</li> <li class="right" > <a href="table_remove.html" title="8.3.28. table_remove" >前へ</a> |</li> <li><a href="../../index.html">groonga v3.0.5ドキュメント</a> »</li> <li><a href="../../reference.html" >8. リファレンスマニュアル</a> »</li> <li><a href="../command.html" >8.3. コマンド</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009-2013, Brazil, Inc. </div> </body> </html>