[groonga-dev,03944] Re: ベクターカラムの全文検索について

Back to archive index

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...
다운로드 



groonga-dev メーリングリストの案内
Back to archive index