[groonga-dev,04464] Re: 日本語、英語、仏語のまざった文章で複数形や過去形をフォローできますでしょうか

Back to archive index

toshio_uchiy****@mirro***** toshio_uchiy****@mirro*****
2017年 9月 9日 (土) 21:39:55 JST


須藤さま

 お世話になります。内山です。
 ご教示いただいた件、実験してみました。

$vi memory.sh

#! /bin/sh
cat pgrn* > /dev/null
for c in pgrn*.c; do
   cat $(echo $c | sed -e 's/\.c$//g')* > /dev/null
done

のファイルを memory.sh として作りました。
 結果、再起動のあと何もせず

explain ( analyze, buffers ) SELECT id, video, track, content,
starttime, theme FROM manual AS P WHERE lower( content ) like
lower( '%algorithm%' ) and exists ( select video from manual AS C1
where lower( content ) like lower( '%search%' ) and P.video = C1.video )
ORDER BY vc DESC;

という SQL 文の実行時間が 18 秒でした。テーブル manual には、content カラム
に
PGroonga のインデックスが作ってあります。
 再起動のあと memory.sh を実行して同じ SQL 文を実行。その結果、実行時間は
17秒でした。explain での両社の buffers: shared hit と read の値はほとんど
変わりませんでした。
 なぜ、このことを報告したかと言いますと、わたくしはサービスがユーザーに
受け入れられて仕事として認識されたら、128GB メモリーのマシンを
購入してサービスの強化をはかりたいと考えています。その時に、cat pgrn* >
/dev/null
が効かないと、moovle ( http://moovle.org/ )サービスに問題が生じると
思うからです。
 よろしくお願いします。


-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of Kouhei Sutou
Sent: Friday, September 8, 2017 11:10 PM
To: groon****@lists*****
Subject: [groonga-dev,04463] Re: 日本語、英語、仏語のまざった文章で複数形や
過去形をフォローできますでしょうか

須藤です。

In <011501d3283e$21c15c80$65441580$@mirror.ocn.ne.jp>
  "[groonga-dev,04459] Re: 日本語、英語、仏語のまざった文章で複数形や過去形
をフォローできますでしょうか" on Fri, 8 Sep 2017 10:02:24 +0900,
  <toshio_uchiy****@mirro*****> wrote:

> もしかして、カラム毎にファイルが分かれているのでしょうか。

はい、そうです。

> Postgres でのカラム名と groonga でのカラム名の対応表って
> どこかにありますでしょうか?

対応表というか調べることはできます。
pgroonga_table_name()でPostgreSQLのインデックス名からGroonga
のテーブル名を取得して、あとはそこからGroongaのコマンド
(table_listやcolumn_list)で芋づる式に辿っていくことになり
ます。
  https://pgroonga.github.io/ja/reference/functions/pgroonga-table-name.html

> cat pgrn.必要としているカラムのファイル > /dev/null
>
> すれば良い。ということでしょうか。

それは面倒なので、まず、

  cat pgrn* > /dev/null

で、全部メモリーに載せて、その後、転置インデックス用のファイ
ルだけ再度メモリーに載せるのがよいと思います。
1つの転置インデックスには複数のファイルが紐付いています。そ
れらを見分けるためには、まず、名前の最後に.cがついているファ
イルを見つけます。見つけたらそのファイルから.cを抜きます。す
るとpgrn.XXXXXXX(XXXXXXXは16進数)という名前ができます。こ
の名前から始まるファイル全部が1つ転置インデックスのファイル
です。なので、以下のようにすると転置インデックスのファイルを
メモリーに載せられます。

  for c in pgrn*.c; do
    cat $(echo $x | sed -e 's/\.c$//g')* > /dev/null
  done


--
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
OSS開発支援サービス:
  http://www.clear-code.com/blog/2016/6/27.html

_______________________________________________
groonga-dev mailing list
groon****@lists*****
https://lists.osdn.me/mailman/listinfo/groonga-dev




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