<div dir="ltr">瀬戸です。<div><br></div><div>須藤さん、ありがとうございます。</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">参照型の(ベクター)カラムの値に対して全文検索する場合は「ネ<br>ストした検索」機能を使う必要があります。(もっとパッとした名<br>前があるといいなぁと思っています。。。)<br>ドキュメントではここらへんで触れられているやつです。<br>  <a href="http://groonga.org/ja/docs/tutorial/match_columns.html#nested-index-search-among-related-table-by-column-index" rel="noreferrer" target="_blank">http://groonga.org/ja/docs/tutorial/match_columns.html#nested-index-search-among-related-table-by-column-index</a><br>今回の例だと↓のようにすると使えます。<br>ポイントは<br>  * Vector._keyに対して全文検索用のインデックスを作ること<br>  * VectorにEntry.vectorに対するインデックスを作ること<br>  * 検索するときはvector._key @ &quot;...&quot;とすること</blockquote><div class="gmail_extra">なるほど、このようにするのでしたか。</div><div class="gmail_extra">今月は勉強会に行けそうにないのですが、また参加したいと思います。</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-02-18 9:56 GMT+09:00 Kouhei Sutou <span dir="ltr">&lt;<a href="mailto:kou****@clear*****" target="_blank">kou****@clear*****</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">須藤です。<br>
<br>
In &lt;CANUhGj1hMj+UEAF=<a href="mailto:jrcN7tbcoC%2B98p****@mail*****">jrcN7****@mail*****</a>&gt;<br>
  &quot;[groonga-dev,03941] Re: ベクターカラムの全文検索について&quot; on Thu, 18 Feb 2016 09:09:13 +0900,<br>
<span class="">  Seto Ryuta &lt;<a href="mailto:rseto****@gmail*****">rseto****@gmail*****</a>&gt; wrote:<br>
<br>
&gt; ベクターカラムのタグ検索(一致検索)とドリルダウンは、以下のような形で参照テーブルを使っていたのですが、<br>
&gt; 同じような設定で全文検索をしようとすると語彙表にデータが登録されなかったため、質問をさせていただきました。<br>
&gt; (スキーマのどこかが間違っていると思うのですが。。。)<br>
&gt; ベクターカラムの全文検索についてはShortTextを型として利用することに致します。ありがとうございました。<br>
<br>
</span>参照型の(ベクター)カラムの値に対して全文検索する場合は「ネ<br>
ストした検索」機能を使う必要があります。(もっとパッとした名<br>
前があるといいなぁと思っています。。。)<br>
<br>
ドキュメントではここらへんで触れられているやつです。<br>
  <a href="http://groonga.org/ja/docs/tutorial/match_columns.html#nested-index-search-among-related-table-by-column-index" rel="noreferrer" target="_blank">http://groonga.org/ja/docs/tutorial/match_columns.html#nested-index-search-among-related-table-by-column-index</a><br>
<br>
今回の例だと↓のようにすると使えます。<br>
ポイントは<br>
<br>
  * Vector._keyに対して全文検索用のインデックスを作ること<br>
  * VectorにEntry.vectorに対するインデックスを作ること<br>
  * 検索するときはvector._key @ &quot;...&quot;とすること<br>
<br>
です。<br>
一番大事なことは真ん中の「VectorにEntry.vectorに対するインデッ<br>
クスを作ること」です。これにより、Vector._keyでヒットした要<br>
素を含むEntryのレコードを見つけることができるようになります。<br>
<br>
このあたりの動きは絵を描くとわかりやすいんですよねぇ。<br>
「Groongaで学ぶ全文検索 2016-02-26」<br>
<a href="https://groonga.doorkeeper.jp/events/39274" rel="noreferrer" target="_blank">https://groonga.doorkeeper.jp/events/39274</a><br>
に来てもらえれば絵を描いて説明します。<br>
<br>
あ、そういえば、今回は19:30から開場していて、20:00前に来た人<br>
向けに個別に相談を受け付ける予定です。<br>
<br>
--<br>
<span class="">table_create Entry TABLE_HASH_KEY ShortText<br>
table_create Vector TABLE_PAT_KEY ShortText<br>
column_create Entry vector COLUMN_VECTOR Vector<br>
<br>
table_create BigramTerms TABLE_PAT_KEY ShortText \<br>
  --default_tokenizer TokenBigramSplitSymbolAlpha \<br>
  --normalizer NormalizerAuto<br>
</span>column_create BigramTerms vector_key COLUMN_INDEX|WITH_POSITION Vector _key<br>
<br>
column_create Vector entry_vector COLUMN_INDEX Entry vector<br>
<span class=""><br>
load --table Entry<br>
[<br>
{&quot;_key&quot;:1, &quot;vector&quot;:[&quot;Head First Groonga&quot;, &quot;Head First Mroonga&quot;]},<br>
{&quot;_key&quot;:2, &quot;vector&quot;:[&quot;Head First Mroonga&quot;, &quot;Head First Rroonga&quot;]}<br>
]<br>
<br>
</span>select --table Entry --filter &#39;vector._key @ &quot;Rroonga&quot;&#39; --output_pretty yes<br>
# [<br>
#   [<br>
#     0,<br>
#     1455756640.40757,<br>
#     0.000497341156005859<br>
#   ],<br>
#   [<br>
#     [<br>
#       [<br>
#         1<br>
#       ],<br>
#       [<br>
#         [<br>
#           &quot;_id&quot;,<br>
#           &quot;UInt32&quot;<br>
#         ],<br>
#         [<br>
#           &quot;_key&quot;,<br>
#           &quot;ShortText&quot;<br>
#         ],<br>
#         [<br>
#           &quot;vector&quot;,<br>
#           &quot;Vector&quot;<br>
#         ]<br>
#       ],<br>
#       [<br>
#         2,<br>
#         &quot;2&quot;,<br>
#         [<br>
#           &quot;Head First Mroonga&quot;,<br>
#           &quot;Head First Rroonga&quot;<br>
#         ]<br>
#       ]<br>
#     ]<br>
#   ]<br>
# ]<br>
--<br>
<span class=""><font color="#888888"><br>
<br>
--<br>
須藤 功平 &lt;<a href="mailto:kou****@clear*****">kou****@clear*****</a>&gt;<br>
株式会社クリアコード &lt;<a href="http://www.clear-code.com/" rel="noreferrer" target="_blank">http://www.clear-code.com/</a>&gt;<br>
<br>
Groongaベースの全文検索システムを総合サポート:<br>
  <a href="http://groonga.org/ja/support/" rel="noreferrer" target="_blank">http://groonga.org/ja/support/</a><br>
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:<br>
  <a href="http://www.clear-code.com/recruitment/" rel="noreferrer" target="_blank">http://www.clear-code.com/recruitment/</a><br>
リーダブルコードワークショップ:<br>
  <a href="http://www.clear-code.com/services/code-reader/readable-code-workshop.html" rel="noreferrer" target="_blank">http://www.clear-code.com/services/code-reader/readable-code-workshop.html</a><br>
</font></span><div class=""><div class="h5"><br>
_______________________________________________<br>
groonga-dev mailing list<br>
<a href="mailto:groon****@lists*****">groon****@lists*****</a><br>
<a href="http://lists.osdn.me/mailman/listinfo/groonga-dev" rel="noreferrer" target="_blank">http://lists.osdn.me/mailman/listinfo/groonga-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">-----------------------------------------------------------<br>瀬戸隆太<br>E-mail: <a href="mailto:rseto****@gmail*****" target="_blank">rseto****@gmail*****</a><br>-----------------------------------------------------------<br></div></div>
</div></div>