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