【全文検索】groonga【senna後継】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/01(火) 15:23:37.63ID:zBzeEu6N* groonga
http://groonga.org/ja/
* mysqlに組み込むgroongaストレージ(mroonga)
http://mroonga.github.com/
関連スレ
組み込み型全文検索エンジンSenna
http://hibari.2ch.net/test/read.cgi/php/1118762053/
0002nobodyさん
2011/11/01(火) 15:37:41.26ID:zBzeEu6Ninvalid utf8 string(1) on grn_str_charlen_utf8というエラーが出て、
結果も思ったようなものになりません。
mroongaでujisのテーブルを使うには何か特別な処理が必要なのでしょうか?
CentOS5のRPMを使っています。
0003nobodyさん
2011/11/01(火) 19:34:52.39ID:z/VwsptC0004nobodyさん
2011/11/02(水) 01:35:18.61ID:???みんな使ってるし。
終了
0005nobodyさん
2011/11/02(水) 01:47:09.66ID:???使い方は別物じゃね
0006nobodyさん
2011/11/02(水) 13:08:42.09ID:???→groongaのテーブルを作る
→テーブルを削除しようとする
→エラーで削除できない
俺だけ?
0007nobodyさん
2011/11/02(水) 13:47:50.71ID:???0008nobodyさん
2011/11/03(木) 12:18:36.89ID:???tritonnとhyperestraierでうまくいった
0009nobodyさん
2011/11/03(木) 14:54:42.82ID:???javaだっけ
0010nobodyさん
2011/11/04(金) 12:43:07.20ID:toxVjfjMinnodbならOKだった
色々検索したらmyisamはあんまり推奨じゃない感じかな
そもそもmyisamとの相性が悪いからgroonga開発したらしいし
0011nobodyさん
2011/11/04(金) 15:59:40.52ID:???ソーラーはmysqlで追加できないと思った
0012nobodyさん
2011/11/04(金) 17:53:37.93ID:???ってやったらmysqlへのアクセスではエラーになった
groongaのdbをmysqlのテーブル定義に後から紐づけるのはどうしたらいいんだろ
0014nobodyさん
2011/11/08(火) 22:22:23.22ID:g2UShAi7/var/log/mysql/にまとめたいだろJK
0015nobodyさん
2011/11/08(火) 22:38:27.01ID:???とりあえずtritonnを置き換えられるようになってほしい
0016nobodyさん
2011/11/08(火) 22:47:55.69ID:???運用の際のメンテとかまで考え出すと
まだ煮詰まってないなーって思う
0018nobodyさん
2011/11/09(水) 18:31:49.16ID:hLMmSgdXレコメンドはvogooでも使えよ。
javaはLucenceでレコメンドはmahountでよくない?
0019nobodyさん
2011/11/18(金) 02:37:51.17ID:alrmOFGrlimitで制限した行数が全行数になるね
order byがないと全行数が正確に取れる。
groongaだけなのか、デフォルトの全文検索もそうなのかは検証してないけど
とりあえず普通のmyisamは、order byがあっても全行数が変わることはなかった
0020nobodyさん
2011/11/18(金) 02:40:22.64ID:???limit a,b 指定で b の抽出件数指定は効くんだけど、a がゼロから効かない。
100,10 や 1000, 10 と指定しても、0, 10 と同じ結果。
フルテキストインデックス再構築したけど同じ。
インストした頃はちゃんと表示されたはずなんだが…。
sennaスレのこれと同じ現象かな?
0021nobodyさん
2011/11/23(水) 16:48:35.95ID:???0022nobodyさん
2011/11/27(日) 19:24:02.17ID:???(別スレにて誘導されました)
皆さんは日本語の全文検索をどのようにされていますでしょうか?
Tritonnをみると、MySQLのバージョンが結構古いみたいなのでどうなのかなと思うのですが、
どのように対策をされていますでしょうか?
>>15のように、まだ実用的ではないという事は、Tritonnの方がいいのでしょうか?
また、中には自分でN-gramによって対策をしている人などもいるようですが、日本語の全文検索に対する対策は、N-gramとかで自分で実装する、Tritonnなどを入れる以外にはないのでしょうか?
0023nobodyさん
2011/11/28(月) 22:13:12.47ID:???0024nobodyさん
2011/12/01(木) 22:45:40.09ID:86xGKL6Yなんとなく、体感だけどgroongaが遅い感じがする
0.5秒くらいかかってる
もう一度検索したら、0.000数秒でめっちゃ速い
それはキャッシュが効いているのか、
一回目の検索でインデックス的なものが整理されたのか分からないけど。
0025nobodyさん
2011/12/01(木) 22:47:32.62ID:???唯一の答えはないと思いますよ
俺はトリトンからgroongaへの移行を進めていますが
今のところ、どっちかの方があきらかにいい、と言える状況ではないと思います
0026nobodyさん
2011/12/04(日) 13:06:30.66ID:???0027nobodyさん
2011/12/06(火) 06:42:27.34ID:???http://www.ustream.tv/recorded/18817014
めも
0028nobodyさん
2011/12/06(火) 20:01:30.76ID:???mysql動かしたままupdateしたら
groongaがストレージから消えた
updateする時はサービス止めてからやらないといけないのかって当たり前か
0029nobodyさん
2011/12/29(木) 17:09:50.14ID:???0031nobodyさん
2011/12/30(金) 01:13:40.52ID:???mroonga 1.10で修正済み。
http://mroonga.github.com/ja/docs/news.html#release-1-10
> FOUND_ROWS()とSQL_CALC_FOUND_ROWSに対応。
ちなみにmroongaは現在1.11が最新。
0032nobodyさん
2011/12/30(金) 11:02:55.70ID:???0033nobodyさん
2012/01/01(日) 20:30:32.70ID:???0034nobodyさん
2012/01/02(月) 15:42:35.73ID:???試したらFedora15でもgroonga 1.2.9動いた
0035nobodyさん
2012/01/25(水) 23:54:10.87ID:???検索にヒットした文書から、類似した文書を検索することは可能でしょうか?
ttp://groonga.org/ja/docs/expr.html によると
> 類似文書検索や近傍検索のような高度な検索もすべてgrn_exprによって記述できます。
と書いてありますので select の --scorer に何らかの grn_expr を記述すればできそうにも思うのですが、
文書に含まれる語彙同士の類似度計算をどのように記述すれば良いのでしょうか…orz
0036nobodyさん
2012/01/26(木) 18:01:19.59ID:???ttp://www.gifu-nct.ac.jp/elec/deguchi/sotsuron/hayashi/node20.html
これをじゃぁどうやって grn_exprで書くんだろうねぇ
grn_expr のもうちょっと詳細な書き方はこんな文書があるけど
ttp://groonga.org/docs/contribution/development/query.html#id4
後の方に載っている「クエリの実例」ってのは多分これC APIとしての書き方じゃないか
類似文書を検索するには、2文書について処理をしなければならないわけだけど、
「ある文書」にアクセスするためには、その文書のカラム名を記載すればいいけど、
「他の文書」にアクセスする方法が分からないから記載できないな
003735
2012/01/26(木) 19:07:45.58ID:???ありがとうございます。重要度を要素に持つベクトルのなす角(cosθ)ですか。
そのページわかりやすいですね。
C API 形式の grn_expr は ECMA Script 形式でも使えるんでしょうかね…
いま一つこのあたりのドキュメントがわかりにくくて困っています。
でドキュメントのあちこちに出てくる「(ぐるんしき)」にいちいちイラッとしてみたりw
1. 文書から単語リストを抽出する関数
2. 全文書から指定された単語の重要度を求める関数
3. 2つの配列の積集合を求める関数
4. ベクトルの長さと内積を求める関数
を何とかして書けばできそうですね。
3, 4, はECMA Scriptで書ける(どこで書けばいいのかはわかってませんが)としても
1. 2. って、やっぱり C で書かなあかんのですかね…(´・ω・`)
0038nobodyさん
2012/01/26(木) 19:41:42.09ID:???1. は、全文検索用語彙表に対して、類似している文書を検索したい文書のIDで検索することで求められるかな、と思ったけど
よく分からない。
2 の重要度だけど、これは
ttp://groonga.org/ja/docs/tutorial/lexicon.html
に書いてあるように、語彙表に格納しておくことができそうだけど、事前に計算して入れておかなきゃダメだな。groongaがやってくれるわけじゃないみたい。
だから、grn_exprを生成するRubyとかPerlとかPHPとかCとかのプログラム・スクリプトで一部処理を行うことで実現できそうだけど、
「クエリ『ほげほげ』にヒットする文書に類似する文書」っていうgrn_exprは難しいんじゃないかな。できるのかもしれないけど
0039nobodyさん
2012/01/30(月) 00:37:31.14ID:???流石に日曜日だとお休みかな
0040nobodyさん
2012/01/30(月) 07:39:27.44ID:???0041nobodyさん
2012/02/03(金) 22:01:22.57ID:???いまだにテーブル構造変わることがあるのかょ
0042nobodyさん
2012/02/03(金) 22:30:41.39ID:???orz
0043nobodyさん
2012/02/04(土) 00:06:50.53ID:???0044nobodyさん
2012/02/04(土) 00:31:51.90ID:???0045nobodyさん
2012/02/04(土) 00:55:09.24ID:???「データベース名.mrn」で始まる名前のファイルをすべて削除、
そしてデータベース名のフォルダの中の、「groongaエンジンのテーブル名.frm」というファイルをすべて削除、
という操作をすることで消せる
ただし誤って変なファイルを消すととんでもないことになるので削除ではなく別のフォルダに移動しておくというのが
望ましい
0046nobodyさん
2012/02/04(土) 14:29:03.95ID:???元のファイル名.mouiranaikamo
とかにリネームじゃ駄目?
0047nobodyさん
2012/02/04(土) 14:33:26.03ID:???0048nobodyさん
2012/02/25(土) 17:23:59.16ID:???ttp://twitter.com/ktou/status/172078385764372481
0049nobodyさん
2012/02/25(土) 19:50:43.28ID:???0050nobodyさん
2012/02/29(水) 02:28:30.94ID:???mroongaはまた互換性が無いので注意。
0051nobodyさん
2012/03/01(木) 08:39:09.80ID:???いいことだけど
0052nobodyさん
2012/03/01(木) 08:40:38.55ID:???様子みた方がいいかな
0053nobodyさん
2012/03/02(金) 14:52:45.09ID:???停止するときってどうしてますか?
データが壊れやすいと聞いたので kill するのに抵抗があります。
参考: ttp://dupont-kedama.blogspot.com/2011/12/groonga2.html
> Q.インデックスやストレージのデータの壊れやすさや壊れるタイミングは?
> A.カーネルごと落ちると壊れやすい
> プロセルが落ちても壊れるかも
> 運が悪いとロックが残る
…で今のところこんな感じで書いてるんですが、
(gqtpの場合) # echo 'shutdown' | groonga -c
(httpの場合) # wget http://localhost:10041/d/shutdown -o /dev/null -O /dev/null
005453
2012/03/02(金) 14:54:12.62ID:???…なんだか自分でもバカっぽい気がします…orz
0055nobodyさん
2012/03/08(木) 17:37:59.80ID:???http://groonga.org/ja/docs/executables/groonga.html#cmdoption-e
# 指定できるエンコーディング: none, euc, utf8, sjis, latin, koi8r
0056nobodyさん
2012/03/08(木) 17:41:37.00ID:???0057nobodyさん
2012/03/16(金) 21:04:27.52ID:???0058nobodyさん
2012/03/16(金) 22:46:12.32ID:???0059nobodyさん
2012/03/20(火) 02:42:32.03ID:???centos5用はmysql5.5との同時提供だから、groonga使うならcentos5の方がいい?
0060nobodyさん
2012/03/30(金) 11:51:11.30ID:???メジャーバージョンアップが公開されてすぐアップするのは危険かなと思ってmroonga 2.00へはアップするのはやめといたが
そろそろうpしてもいいだろうか・・・
2.00より前からのアップグレードはDB作り直し必須だけど
0061nobodyさん
2012/05/02(水) 08:02:32.38ID:???mysql> INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/ha_mroonga.so' (errno: 2 /usr/lib64/mysql/plugin/ha_mroonga.so: undefined symbol: 以下略
ってなってはいらない・・・
0063nobodyさん
2012/05/06(日) 12:01:37.81ID:???対処法は・・・ググれw
あと、メモリ解放のなんたらの引数が減ってるので削ると
mroongaのソースを調整して再コンパイルすれば動く可能性高い
0064nobodyさん
2012/05/10(木) 05:51:27.56ID:???しかもかなり根本的な部分で
バージョンップアが早いのはいいけどバグあったら即修正版アップしてくれよ
0065nobodyさん
2012/05/11(金) 01:15:53.77ID:???所詮、ユーザー数が少なくて開発者も少ない、
いつ終わってもおかしくないプロジェクトだ
0066nobodyさん
2012/05/11(金) 01:22:43.59ID:???バグがあるのはmysql5.5のincludeファイルだよ
groongaのバグの有無は使ってないから知らんw
良い感じに煮込まれてきたら使おうかとスレを見てるだけなので。はい。
0067nobodyさん
2012/05/11(金) 09:42:08.86ID:???0068nobodyさん
2012/05/11(金) 22:10:52.26ID:???0069nobodyさん
2012/05/13(日) 15:43:30.14ID:???DISTINCTとLIMIT併用したときLIMITで指定した分とってから重複カットしてるから
返ってくるレコード数がLIMITと一致しない
バグだよね?
0070nobodyさん
2012/05/13(日) 16:29:53.03ID:???最新Verでも同様ならバグですね
0071nobodyさん
2012/05/20(日) 12:42:24.83ID:???0073nobodyさん
2012/05/24(木) 20:01:11.73ID:???0075nobodyさん
2012/05/30(水) 13:28:02.35ID:???0076nobodyさん
2012/06/01(金) 16:29:26.89ID:GjNXJRiEプライマリキーでの検索がちゃんとヒットしない
バージョンは1.3.0
俺だけ?
こんな単純なところで引っかかるとは・・
0077nobodyさん
2012/06/01(金) 19:31:21.57ID:???プライマリキーでの全文検索ってのはできるのかな・・・
オートインクリメントのカラムを別途用意してそっちをプライマリキーにしたほうが安全だと思うが・・・
0078nobodyさん
2012/06/01(金) 22:44:27.99ID:???varchar型の数文字の文字列
where id='hoge'
みたいにやっても何故かヒットしない。
最近バージョンにしようと思ったけど、何回やっても
Can't open shared library 'ha_mroonga.so' (errno: 0 API version for STORAGE ENGINE plugin is too different)
って言われる
インストールされてるパッケージは
groonga-tokenizer-mecab-2.0.3-0
groonga-release-1.1.0-0
groonga-plugin-suggest-2.0.3-0
groonga-2.0.3-0
groonga-libs-2.0.3-0
mysql-mroonga-2.03-0
MySQL-client-5.5.23-1.rhel5
MySQL-server-5.5.23-1.rhel5
いやこれ全部最新版だよね
もう疲れたよパトラッシュ
0079nobodyさん
2012/06/02(土) 02:12:33.64ID:???プライマリキーを削除したら検索可能になった
それで普通のINDEXなら張り直しても問題ない
原理は不明だけど
0080nobodyさん
2012/06/02(土) 20:56:24.77ID:???最新バージョンでは大丈夫になってるはずだけどなぁ
0081nobodyさん
2012/06/03(日) 00:04:53.44ID:???0082nobodyさん
2012/06/03(日) 02:47:33.61ID:???yumで入れた場合MySQLとmroongaのバージョン気をつけないとそんなことになった気がする
mroongaソースから入れたらいいよ
0083nobodyさん
2012/06/09(土) 20:25:01.76ID:???おかげで、yum でmysql-mroonga が入るようになった
0084nobodyさん
2012/06/11(月) 17:37:37.24ID:???今、likeで部分一致を使って検索しているシステムを
全文検索に置き換えたいと思ってます
そこでmroongaを試して居たのですが…
「駅」とかで検索した時に、TokenBigram(デフォルト)だと引っかからず
対策としてTokenUnigramにしました
TokenUnigramにする事で、「駅」は解決したのですが、
今度は「BOX」がどうにもならず…
データにINBOXとかがあり、これが引っかからない…
mroongaで「駅」と「BOX」を両立させるうまい手は無いでしょうか
今の環境は、CentOS 6.2でmysqlは5.1.61, mroongaは2.0.3です
全部yumで入れました
0085nobodyさん
2012/06/11(月) 21:09:03.26ID:???008684
2012/06/15(金) 19:58:43.63ID:???TokenBigramSplitSymbolAlphaDigitで
?mroonga_match_escalation_thresholdを1にして
検索かけたら上手く行った
0087nobodyさん
2012/09/29(土) 19:02:59.77ID:6ahxPXX9システムの移行を考えてて、groonga試したいんだけど、
MySQLのプラグインとしてgroongaを使うのはWindowsでは
できませんか?
導入手順ご存知の方がいらっしゃったら教えてください
0088nobodyさん
2012/10/06(土) 18:26:42.81ID:???10月の後半ぐらいには使えるようになるんじゃね?
http://redmine.groonga.org/issues/1496
0090nobodyさん
2012/10/23(火) 17:43:15.04ID:???0091nobodyさん
2012/10/23(火) 17:46:46.15ID:???0092nobodyさん
2012/10/29(月) 16:07:31.55ID:???curl http://localhost:10041/d/status
とかすると405 not allowedになるんだけどどうすりゃいいの
nginx関連で405で調べるとpostした時のことばかりだし
groonga内包のhttpの方は、shutdownで帰ってこない
gqtpの方は問題ないんだが…
疲れた
0093nobodyさん
2012/11/13(火) 18:26:33.67ID:???http://localhsot
にブラウザでアクセスしたら、
groongaのCPU使用率が100%になって、
応答なし状態になるんだけど、
何が悪いんでしょうか。
以下のコマンドを順番に実行しただけです。
ttp://groonga.org/ja/docs/tutorial/network.html#hypertext-transfer-protocol-http
ttp://perl-users.jp/articles/advent-calendar/2011/casual/4
Windows8と2008ServerR2の
両方で再現...
素直にLinux使うべき?
0094nobodyさん
2013/03/14(木) 17:15:20.37ID:xn34kGqYInsert時にgroonga.logに
invalid utf8 string(2) on grn_str_charlen_utf8
が出るようになった・・・
文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも
全部utf8_general_ciにしてる
全文検索の結果も同じ単語で今まで引っかかってたものが
半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
0095nobodyさん
2013/03/14(木) 17:16:26.58ID:xn34kGqYInsert時にgroonga.logに
invalid utf8 string(2) on grn_str_charlen_utf8
が出るようになった・・・
文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも
全部utf8_general_ciにしてる
全文検索の結果も同じ単語で今まで引っかかってたものが
半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
0096nobodyさん
2013/05/10(金) 16:34:31.53ID:BGsSkY8Yどうやって復帰すりゃええんですかいの?
0097nobodyさん
2013/05/10(金) 20:53:30.15ID:cFx0Oq6o。
結局データの復帰はならず、一時ファイル的なものなので全抹消とあいなりました。
試したこと一覧
・UNINSTALL PLUGIN、INSTALL PLUGINを実行 → 変化なし
・clearlockを実行(データファーいるの場所がわからず全体に対してclearlock) → 変化なし
・drop table → エラーで動かず
・UNINSTALL PLUGINを実行してからdrop table → テーブル自体は削除OK
・同じDB上でもっかいmroongaエンジンのテーブル作成 → 同様のエラーで作成できず
・DBを変更してmroongaエンジンのテーブル作成 → OK
・現行バックアップできるテーブル(非mroongaエンジン)を退避して、drop database → OK
・DBごと再作成 → OK
もうちょっとスマートな解消方法あったんですかね?
スレチだったらごめんなさい。
0098nobodyさん
2013/05/10(金) 20:54:18.17ID:???ちなみに途中でgroonga及びmroongaは1.0.xから3.03にアップデートしますた。
0099nobodyさん
2013/05/10(金) 21:57:12.05ID:cFx0Oq6o同名DBを作成しなおして同名テーブルを生成し直すとエラー
当然っちゃ当然ですね。
というわけで、DBをもう一回削除しなおした後、mysqlのdataディレクトリ中のmrnファイルをごっそり削除したところエラーは回避。
なんとも不安定な仕組みなもんだね。mroongaは
010096
2013/05/11(土) 13:25:32.41ID:???0101nobodyさん
2013/05/31(金) 04:55:23.95ID:TNUtMHtEファイルがnot foundになります
http://packages.groonga.org/windows/mroonga/
ここを見るとファイルが一つもありません
何故ですか
■ このスレッドは過去ログ倉庫に格納されています