1 :
nobodyさん :
2011/11/01(火) 15:23:37.63 ID:zBzeEu6N
2 :
nobodyさん :2011/11/01(火) 15:37:41.26 ID:zBzeEu6N
トリトンのように、テーブル作成時にcharsetを指定すればujisが使えると思っていたのですが invalid utf8 string(1) on grn_str_charlen_utf8というエラーが出て、 結果も思ったようなものになりません。 mroongaでujisのテーブルを使うには何か特別な処理が必要なのでしょうか? CentOS5のRPMを使っています。
3 :
nobodyさん :2011/11/01(火) 19:34:52.39 ID:z/VwsptC
期待あげ
Apache Solrでいいじゃん。 みんな使ってるし。 終了
ソーラーってmysqlに全文検索を追加できるの? 使い方は別物じゃね
名前に-を含んだデータベースを作る →groongaのテーブルを作る →テーブルを削除しようとする →エラーで削除できない 俺だけ?
SQLだとどうやっても削除できないから手でファイルを直接いじったよ
solrって最小のvpsで動かなかった tritonnとhyperestraierでうまくいった
マシンスペックが必要ってこと? javaだっけ
10 :
nobodyさん :2011/11/04(金) 12:43:07.20 ID:toxVjfjM
ラッパーモードのmyisamでdrop indexしたらエラーになる? innodbならOKだった 色々検索したらmyisamはあんまり推奨じゃない感じかな そもそもmyisamとの相性が悪いからgroonga開発したらしいし
まだこれつかうには危険な感じが... ソーラーはmysqlで追加できないと思った
ストレージモードでグルーンガファイルをバックアップ→いったん削除→リストア ってやったらmysqlへのアクセスではエラーになった groongaのdbをmysqlのテーブル定義に後から紐づけるのはどうしたらいいんだろ
>>11 たしかに若干バギーな感じはある
でもトリトンももうmysqlのバージョンが古いしなぁ
14 :
nobodyさん :2011/11/08(火) 22:22:23.22 ID:g2UShAi7
ログファイル置き場を指定できるようにして欲しい /var/log/mysql/にまとめたいだろJK
まだ実用になるレベルではないな とりあえずtritonnを置き換えられるようになってほしい
とりあえず使えはするんだよね 運用の際のメンテとかまで考え出すと まだ煮詰まってないなーって思う
18 :
nobodyさん :2011/11/09(水) 18:31:49.16 ID:hLMmSgdX
php、perlはNAMAZUを使って。 レコメンドはvogooでも使えよ。 javaはLucenceでレコメンドはmahountでよくない?
19 :
nobodyさん :2011/11/18(金) 02:37:51.17 ID:alrmOFGr
SQL_CALC_FOUND_ROWSとlimitとorder byを同時に使うと limitで制限した行数が全行数になるね order byがないと全行数が正確に取れる。 groongaだけなのか、デフォルトの全文検索もそうなのかは検証してないけど とりあえず普通のmyisamは、order byがあっても全行数が変わることはなかった
268 名前:nobodyさん[sage] 投稿日:2011/06/01(水) 17:59:58.68 ID:??? limit a,b 指定で b の抽出件数指定は効くんだけど、a がゼロから効かない。 100,10 や 1000, 10 と指定しても、0, 10 と同じ結果。 フルテキストインデックス再構築したけど同じ。 インストした頃はちゃんと表示されたはずなんだが…。 sennaスレのこれと同じ現象かな?
2ind機能はやくサポートしてほしい
ここにいる人たちは、全文検索を利用している人たちだと思うので質問させてください
(別スレにて誘導されました)
皆さんは日本語の全文検索をどのようにされていますでしょうか?
Tritonnをみると、MySQLのバージョンが結構古いみたいなのでどうなのかなと思うのですが、
どのように対策をされていますでしょうか?
>>15 のように、まだ実用的ではないという事は、Tritonnの方がいいのでしょうか?
また、中には自分でN-gramによって対策をしている人などもいるようですが、日本語の全文検索に対する対策は、N-gramとかで自分で実装する、Tritonnなどを入れる以外にはないのでしょうか?
だからSolr使えって。
24 :
nobodyさん :2011/12/01(木) 22:45:40.09 ID:86xGKL6Y
groongaとトリトンのベンチマークはかった人いる? なんとなく、体感だけどgroongaが遅い感じがする 0.5秒くらいかかってる もう一度検索したら、0.000数秒でめっちゃ速い それはキャッシュが効いているのか、 一回目の検索でインデックス的なものが整理されたのか分からないけど。
>>22 唯一の答えはないと思いますよ
俺はトリトンからgroongaへの移行を進めていますが
今のところ、どっちかの方があきらかにいい、と言える状況ではないと思います
もしかして日本語の全文検索に関してはpostgresqlのほうがいい?
バージョンアップしてたから mysql動かしたままupdateしたら groongaがストレージから消えた updateする時はサービス止めてからやらないといけないのかって当たり前か
gronnga 1.2.9 has been released.
>gronnga 1.2.9 has been released.
>>19 の件は直ったのかな?
そろそろTritonnから乗り換えられそうかな。
更新はえーッス
Fedora15サポート削除早いよって思ったけどソースからビルドしてるので 試したらFedora15でもgroonga 1.2.9動いた
groonga-1.2.9 を -d --protocol http でサーバにして動かしていますが、
検索にヒットした文書から、類似した文書を検索することは可能でしょうか?
ttp://groonga.org/ja/docs/expr.html によると
> 類似文書検索や近傍検索のような高度な検索もすべてgrn_exprによって記述できます。
と書いてありますので select の --scorer に何らかの grn_expr を記述すればできそうにも思うのですが、
文書に含まれる語彙同士の類似度計算をどのように記述すれば良いのでしょうか…orz
37 :
35 :2012/01/26(木) 19:07:45.58 ID:???
>>36 ありがとうございます。重要度を要素に持つベクトルのなす角(cosθ)ですか。
そのページわかりやすいですね。
C API 形式の grn_expr は ECMA Script 形式でも使えるんでしょうかね…
いま一つこのあたりのドキュメントがわかりにくくて困っています。
でドキュメントのあちこちに出てくる「(ぐるんしき)」にいちいちイラッとしてみたりw
1. 文書から単語リストを抽出する関数
2. 全文書から指定された単語の重要度を求める関数
3. 2つの配列の積集合を求める関数
4. ベクトルの長さと内積を求める関数
を何とかして書けばできそうですね。
3, 4, はECMA Scriptで書ける(どこで書けばいいのかはわかってませんが)としても
1. 2. って、やっぱり C で書かなあかんのですかね…(´・ω・`)
>>37 1. は、全文検索用語彙表に対して、類似している文書を検索したい文書のIDで検索することで求められるかな、と思ったけど
よく分からない。
2 の重要度だけど、これは
ttp://groonga.org/ja/docs/tutorial/lexicon.html に書いてあるように、語彙表に格納しておくことができそうだけど、事前に計算して入れておかなきゃダメだな。groongaがやってくれるわけじゃないみたい。
だから、grn_exprを生成するRubyとかPerlとかPHPとかCとかのプログラム・スクリプトで一部処理を行うことで実現できそうだけど、
「クエリ『ほげほげ』にヒットする文書に類似する文書」っていうgrn_exprは難しいんじゃないかな。できるのかもしれないけど
29日だがリリースはなしか・・・ 流石に日曜日だとお休みかな
groonga 1.3.0 and mroonga 1.20 has been released.
バージョンアップきた いまだにテーブル構造変わることがあるのかょ
バージョンアップする→古いテーブル残ってる→削除もできない orz
なにそれ怖い
泣きながら古いバージョン入れ直したお
mysqld停止した状態で、MySQLデータフォルダ内の、 「データベース名.mrn」で始まる名前のファイルをすべて削除、 そしてデータベース名のフォルダの中の、「groongaエンジンのテーブル名.frm」というファイルをすべて削除、 という操作をすることで消せる ただし誤って変なファイルを消すととんでもないことになるので削除ではなく別のフォルダに移動しておくというのが 望ましい
場所移さずに、 元のファイル名.mouiranaikamo とかにリネームじゃ駄目?
え? 毛利蘭かも?
終わったら呼んでくれ
groonga 2.0.0 and mroonga 2.00 has been released. mroongaはまた互換性が無いので注意。
更新はえーな いいことだけど
メジャーバージョンアップにすぐ手を出して大丈夫だろうか? 様子みた方がいいかな
54 :
53 :2012/03/02(金) 14:54:12.62 ID:???
(途中で送信してしまいました) …なんだか自分でもバカっぽい気がします…orz
あれ、PostgreSQLだとUTF-8で4バイト対応してるから使えるのかな?
rroongaまだー\(^o^)/
Rubyはオワコン。
centos6用って標準インストールのmysql5.1用にビルドされてるんだね centos5用はmysql5.5との同時提供だから、groonga使うならcentos5の方がいい?
groonga 2.0.1 and mroonga 2.01 has been released. メジャーバージョンアップが公開されてすぐアップするのは危険かなと思ってmroonga 2.00へはアップするのはやめといたが そろそろうpしてもいいだろうか・・・ 2.00より前からのアップグレードはDB作り直し必須だけど
groonga 2.0.2 and mroonga 2.02 has been released.
62 :
nobodyさん :2012/05/06(日) 02:16:01.57 ID:/I3rbXav BE:11633055-2BP(1000)
mysql5.5が含まれてないから5.5.23-1.el6.remi入れたら 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: 以下略 ってなってはいらない・・・
バグでデバック用関数が5.5に無いけど、defineが有効にしてるらしい 対処法は・・・ググれw あと、メモリ解放のなんたらの引数が減ってるので削ると mroongaのソースを調整して再コンパイルすれば動く可能性高い
バグあるのかよ しかもかなり根本的な部分で バージョンップアが早いのはいいけどバグあったら即修正版アップしてくれよ
groongaに期待するな。 所詮、ユーザー数が少なくて開発者も少ない、 いつ終わってもおかしくないプロジェクトだ
あ、すまん、63だけど バグがあるのはmysql5.5のincludeファイルだよ groongaのバグの有無は使ってないから知らんw 良い感じに煮込まれてきたら使おうかとスレを見てるだけなので。はい。
ソースから入れればいいだけだろ
ソースっねw
mroongaストレージモードで使用した際 DISTINCTとLIMIT併用したときLIMITで指定した分とってから重複カットしてるから 返ってくるレコード数がLIMITと一致しない バグだよね?
LIMITに関するバグは以前あったような 最新Verでも同様ならバグですね
色々やってみてサーバかデーモンで使うのが一番楽だと気づいた
>>55 亀レスだけどgroongaのほうは4バイト文字列対応してるぞ
MySQLが微妙
MySQL5.5以上で対応してるだけの話。
74 :
55 :2012/05/24(木) 21:16:26.25 ID:???
queryのエスケープ処理のカオスっぷりハンパねーな
76 :
nobodyさん :2012/06/01(金) 16:29:26.89 ID:GjNXJRiE
mroongaテーブルで全文検索はうまくいくんだけど、 プライマリキーでの検索がちゃんとヒットしない バージョンは1.3.0 俺だけ? こんな単純なところで引っかかるとは・・
プライマリキーも全文検索の対象にしてるの? プライマリキーでの全文検索ってのはできるのかな・・・ オートインクリメントのカラムを別途用意してそっちをプライマリキーにしたほうが安全だと思うが・・・
プライマリキーは全文検索の対象にしてないよ 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 いやこれ全部最新版だよね もう疲れたよパトラッシュ
groongaのバージョン戻して、 プライマリキーを削除したら検索可能になった それで普通のINDEXなら張り直しても問題ない 原理は不明だけど
昔はVARCHAR型プライマリキーの扱いに問題があったけど 最新バージョンでは大丈夫になってるはずだけどなぁ
最新バージョンはうまく入らなかったから戻したんだよ
>>78 yumで入れた場合MySQLとmroongaのバージョン気をつけないとそんなことになった気がする
mroongaソースから入れたらいいよ
MySQL-server のversion が 5.5.25-1.rhel5 にup されたね おかげで、yum でmysql-mroonga が入るようになった
知っている方が居たら教えて頂きたいんですけど、 今、likeで部分一致を使って検索しているシステムを 全文検索に置き換えたいと思ってます そこでmroongaを試して居たのですが… 「駅」とかで検索した時に、TokenBigram(デフォルト)だと引っかからず 対策としてTokenUnigramにしました TokenUnigramにする事で、「駅」は解決したのですが、 今度は「BOX」がどうにもならず… データにINBOXとかがあり、これが引っかからない… mroongaで「駅」と「BOX」を両立させるうまい手は無いでしょうか 今の環境は、CentOS 6.2でmysqlは5.1.61, mroongaは2.0.3です 全部yumで入れました
ngramのがはやそげ
86 :
84 :2012/06/15(金) 19:58:43.63 ID:???
結局、 TokenBigramSplitSymbolAlphaDigitで ?mroonga_match_escalation_thresholdを1にして 検索かけたら上手く行った
87 :
nobodyさん :2012/09/29(土) 19:02:59.77 ID:6ahxPXX9
WindowsServerでTritonn使ってます。 システムの移行を考えてて、groonga試したいんだけど、 MySQLのプラグインとしてgroongaを使うのはWindowsでは できませんか? 導入手順ご存知の方がいらっしゃったら教えてください
89 :
87 :2012/10/07(日) 11:14:16.58 ID:???
>>88 現在開発中なんですね。
気長に待ちます。
debパッケージからgroonga-server groonga-server-commonがなくなっているような…
groonga-server-gqtpに名前が変わったのか
groonga-httpdに
curl
http://localhost:10041/d/status とかすると405 not allowedになるんだけどどうすりゃいいの
nginx関連で405で調べるとpostした時のことばかりだし
groonga内包のhttpの方は、shutdownで帰ってこない
gqtpの方は問題ないんだが…
疲れた
94 :
nobodyさん :2013/03/14(木) 17:15:20.37 ID:xn34kGqY
mroonga2.04->3.01に変えたら Insert時にgroonga.logに invalid utf8 string(2) on grn_str_charlen_utf8 が出るようになった・・・ 文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも 全部utf8_general_ciにしてる 全文検索の結果も同じ単語で今まで引っかかってたものが 半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
95 :
nobodyさん :2013/03/14(木) 17:16:26.58 ID:xn34kGqY
mroonga2.04->3.01に変えたら Insert時にgroonga.logに invalid utf8 string(2) on grn_str_charlen_utf8 が出るようになった・・・ 文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも 全部utf8_general_ciにしてる 全文検索の結果も同じ単語で今まで引っかかってたものが 半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
96 :
nobodyさん :2013/05/10(金) 16:34:31.53 ID:BGsSkY8Y
なんか、grn::dat::Trie::open failedって出るようになってしまってgroongaエンジン系全滅なんだけど。 どうやって復帰すりゃええんですかいの?
97 :
nobodyさん :2013/05/10(金) 20:53:30.15 ID:cFx0Oq6o
あ、mysql上なのでmroonga使ってますた 。 結局データの復帰はならず、一時ファイル的なものなので全抹消とあいなりました。 試したこと一覧 ・UNINSTALL PLUGIN、INSTALL PLUGINを実行 → 変化なし ・clearlockを実行(データファーいるの場所がわからず全体に対してclearlock) → 変化なし ・drop table → エラーで動かず ・UNINSTALL PLUGINを実行してからdrop table → テーブル自体は削除OK ・同じDB上でもっかいmroongaエンジンのテーブル作成 → 同様のエラーで作成できず ・DBを変更してmroongaエンジンのテーブル作成 → OK ・現行バックアップできるテーブル(非mroongaエンジン)を退避して、drop database → OK ・DBごと再作成 → OK もうちょっとスマートな解消方法あったんですかね? スレチだったらごめんなさい。
oh... IDが変わってるけど
>>96 です。
ちなみに途中でgroonga及びmroongaは1.0.xから3.03にアップデートしますた。
99 :
nobodyさん :2013/05/10(金) 21:57:12.05 ID:cFx0Oq6o
続報 同名DBを作成しなおして同名テーブルを生成し直すとエラー 当然っちゃ当然ですね。 というわけで、DBをもう一回削除しなおした後、mysqlのdataディレクトリ中のmrnファイルをごっそり削除したところエラーは回避。 なんとも不安定な仕組みなもんだね。mroongaは
100 :
96 :2013/05/11(土) 13:25:32.41 ID:???
3.03に切り替えたからか、そもそも不安定なのか、mroongaのupdateがフリーズ(?)するようになってしまった・・・。
101 :
nobodyさん :2013/05/31(金) 04:55:23.95 ID:TNUtMHtE
トリトン使うことにしますた
>>103 not foundには変わりないけど・・どういう意味ですか?
頻発にテーブルupdateすると壊れるからマジで使えない
mroongaでカンマ区切りでインデックスさせるにはどうしたらいいすか?
mroongaとして使ってて、導入コストも低いし性能も問題ないんだけど 何の前触れもなく検索が遅くなったりするのが怖い
112 :
nobodyさん :2014/02/05(水) 10:56:52.51 ID:k8lujHJw
groonga のテーブル定義がさっぱりわかりません。 例えば wikipedia のデータをストアしたい場合、 どーすればいいのでしょうか?
groonga-dev のメーリングリストで教えてもらったから勝手に転載するわよ! # <field name="id" type="string" indexed="true" stored="true" required="true"/> # Groongaではレコードを一意に識別する値はキーとして扱う。 # 必須。required="true"相当? table_create Articles TABLE_PAT_KEY ShortText # <field name="title" type="text_ja" indexed="true" stored="true" required="true"/> column_create Articles title COLUMN_SCALAR Text
# <field name="revision" type="int" indexed="false" stored="true"/> column_create Articles revision COLUMN_SCALAR Int32 # <field name="user" type="string" indexed="true" stored="true"/> column_create Articles user COLUMN_SCALAR ShortText # <field name="userId" type="int" indexed="false" stored="true"/> column_create Articles user_id COLUMN_SCALAR UInt64 # <field name="text_ja" type="text_ja" indexed="true" stored="true" required="true"/> column_create Articles text_ja COLUMN_SCALAR Text # <field name="timestamp" type="date" indexed="true" stored="true" default="now" multiValued="false"/> # default="now"相当の機能はありません。 column_create Articles timestamp COLUMN_SCALAR Time
# ↓のtype="string"の転置索引用の語彙表: # <field name="id" type="string" indexed="true" stored="true" required="true"/> # <field name="user" type="string" indexed="true" stored="true"/> # Bigramでトークナイズする。 table_create Terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto # indexed="true"に相当。 column_create Terms articles_text COLUMN_INDEX|WITH_POSITION|WITH_SECTION Articles _key,user # ↓用の転置索引用の語彙表: # <field name="title" type="text_ja" indexed="true" stored="true" required="true"/> # <field name="text_ja" type="text_ja" indexed="true" stored="true" required="true"/> # text_jaに相当するのは--default_tokenizer TokenMecab。 table_create JapaneseTerms TABLE_PAT_KEY ShortText --default_tokenizer TokenMecab --normalizer NormalizerAuto # indexed="true"に相当。 column_create JapaneseTerms articles_text COLUMN_INDEX|WITH_POSITION|WITH_SECTION Articles title,text_ja
# ↓用の転置索引用の語彙表: # <field name="timestamp" type="date" indexed="true" stored="true" default="now" multiValued="false"/> # カラムに入っている値(タイムスタンプ)そのものをトークンとして使うので # トークナイザーは指定しない。 # キーの型をTimeにしてArticles.timestamp(トークンの型)とあわせることがポイント。 table_create Times TABLE_PAT_KEY Time # Articles.timestamp用の転置索引の定義。indexed="true"に相当 column_create Times articles_timestamp COLUMN_INDEX Articles timestamp
難しいだわさ。
groongaは一部中国語に対応してるみたいだけど、拡張すればその他の言語もいけるのかな
おまんもーす
120 :
nobodyさん :2015/02/08(日) 14:09:10.77 ID:brXmi2cE
Droonga最新版 (1.0.9) がUbuntuにもCentOSにもインストールできなくなってしまった 更新も止まってるし、そろそろ見切りを付けて移行したほうがよさげかな? 使い始めたときの思惑と違って分散処理が不要になったから 素のGroongaでもよさそうだけど、簡単に移れるものなのかな・・・ドキドキ
121 :
nobodyさん :2015/02/08(日) 14:10:21.74 ID:brXmi2cE
正確にはUbuntuではインストールできない CentOSではselectが実行できない Debianは試していない
122 :
nobodyさん :
2015/02/08(日) 16:58:58.79 ID:brXmi2cE 無事、素のGroongaに移行完了(データは移行中) Droongaなんていらんかったんや!