【全文検索】groonga【senna後継】

このエントリーをはてなブックマークに追加
73nobodyさん:2012/05/24(木) 20:01:11.73 ID:???
MySQL5.5以上で対応してるだけの話。
7455:2012/05/24(木) 21:16:26.25 ID:???
>>72-73
対応してるんだ。ありがと。
75nobodyさん:2012/05/30(水) 13:28:02.35 ID:???
queryのエスケープ処理のカオスっぷりハンパねーな
76nobodyさん:2012/06/01(金) 16:29:26.89 ID:GjNXJRiE
mroongaテーブルで全文検索はうまくいくんだけど、
プライマリキーでの検索がちゃんとヒットしない
バージョンは1.3.0
俺だけ?
こんな単純なところで引っかかるとは・・
77nobodyさん:2012/06/01(金) 19:31:21.57 ID:???
プライマリキーも全文検索の対象にしてるの?

プライマリキーでの全文検索ってのはできるのかな・・・
オートインクリメントのカラムを別途用意してそっちをプライマリキーにしたほうが安全だと思うが・・・
78nobodyさん:2012/06/01(金) 22:44:27.99 ID:???
プライマリキーは全文検索の対象にしてないよ
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

いやこれ全部最新版だよね
もう疲れたよパトラッシュ
79nobodyさん:2012/06/02(土) 02:12:33.64 ID:???
groongaのバージョン戻して、
プライマリキーを削除したら検索可能になった
それで普通のINDEXなら張り直しても問題ない
原理は不明だけど
80nobodyさん:2012/06/02(土) 20:56:24.77 ID:???
昔はVARCHAR型プライマリキーの扱いに問題があったけど
最新バージョンでは大丈夫になってるはずだけどなぁ
81nobodyさん:2012/06/03(日) 00:04:53.44 ID:???
最新バージョンはうまく入らなかったから戻したんだよ
82nobodyさん:2012/06/03(日) 02:47:33.61 ID:???
>>78
yumで入れた場合MySQLとmroongaのバージョン気をつけないとそんなことになった気がする
mroongaソースから入れたらいいよ
83nobodyさん:2012/06/09(土) 20:25:01.76 ID:???
MySQL-server のversion が 5.5.25-1.rhel5 にup されたね
おかげで、yum でmysql-mroonga が入るようになった
84nobodyさん:2012/06/11(月) 17:37:37.24 ID:???
知っている方が居たら教えて頂きたいんですけど、
今、likeで部分一致を使って検索しているシステムを
全文検索に置き換えたいと思ってます

そこでmroongaを試して居たのですが…
「駅」とかで検索した時に、TokenBigram(デフォルト)だと引っかからず
対策としてTokenUnigramにしました

TokenUnigramにする事で、「駅」は解決したのですが、
今度は「BOX」がどうにもならず…
データにINBOXとかがあり、これが引っかからない…

mroongaで「駅」と「BOX」を両立させるうまい手は無いでしょうか

今の環境は、CentOS 6.2でmysqlは5.1.61, mroongaは2.0.3です
全部yumで入れました
85nobodyさん:2012/06/11(月) 21:09:03.26 ID:???
ngramのがはやそげ
8684:2012/06/15(金) 19:58:43.63 ID:???
結局、
TokenBigramSplitSymbolAlphaDigitで
?mroonga_match_escalation_thresholdを1にして
検索かけたら上手く行った
87nobodyさん:2012/09/29(土) 19:02:59.77 ID:6ahxPXX9
WindowsServerでTritonn使ってます。
システムの移行を考えてて、groonga試したいんだけど、
MySQLのプラグインとしてgroongaを使うのはWindowsでは
できませんか?
導入手順ご存知の方がいらっしゃったら教えてください
88nobodyさん:2012/10/06(土) 18:26:42.81 ID:???
ここ見たのか知らないけど、今ここでWindowsでも使えるように頑張ってるみたい
10月の後半ぐらいには使えるようになるんじゃね?
http://redmine.groonga.org/issues/1496
8987:2012/10/07(日) 11:14:16.58 ID:???
>>88
現在開発中なんですね。
気長に待ちます。
90nobodyさん:2012/10/23(火) 17:43:15.04 ID:???
debパッケージからgroonga-server groonga-server-commonがなくなっているような…
91nobodyさん:2012/10/23(火) 17:46:46.15 ID:???
groonga-server-gqtpに名前が変わったのか
92nobodyさん:2012/10/29(月) 16:07:31.55 ID:???
groonga-httpdに
curl http://localhost:10041/d/status
とかすると405 not allowedになるんだけどどうすりゃいいの

nginx関連で405で調べるとpostした時のことばかりだし

groonga内包のhttpの方は、shutdownで帰ってこない
gqtpの方は問題ないんだが…

疲れた
93nobodyさん:2012/11/13(火) 18:26:33.67 ID:???
groongaをhttpで起動し、
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使うべき?
94nobodyさん: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にしてる

全文検索の結果も同じ単語で今まで引っかかってたものが
半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
95nobodyさん: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にしてる

全文検索の結果も同じ単語で今まで引っかかってたものが
半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
96nobodyさん:2013/05/10(金) 16:34:31.53 ID:BGsSkY8Y
なんか、grn::dat::Trie::open failedって出るようになってしまってgroongaエンジン系全滅なんだけど。
どうやって復帰すりゃええんですかいの?
97nobodyさん: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

もうちょっとスマートな解消方法あったんですかね?
スレチだったらごめんなさい。
98nobodyさん:2013/05/10(金) 20:54:18.17 ID:???
oh... IDが変わってるけど>>96です。
ちなみに途中でgroonga及びmroongaは1.0.xから3.03にアップデートしますた。
99nobodyさん:2013/05/10(金) 21:57:12.05 ID:cFx0Oq6o
続報
同名DBを作成しなおして同名テーブルを生成し直すとエラー
当然っちゃ当然ですね。

というわけで、DBをもう一回削除しなおした後、mysqlのdataディレクトリ中のmrnファイルをごっそり削除したところエラーは回避。
なんとも不安定な仕組みなもんだね。mroongaは
10096:2013/05/11(土) 13:25:32.41 ID:???
3.03に切り替えたからか、そもそも不安定なのか、mroongaのupdateがフリーズ(?)するようになってしまった・・・。
101nobodyさん:2013/05/31(金) 04:55:23.95 ID:TNUtMHtE
windows用のmroongaをダウンロードしたいのですが、
ファイルがnot foundになります
http://packages.groonga.org/windows/mroonga/
ここを見るとファイルが一つもありません
何故ですか
102nobodyさん:2013/05/31(金) 04:59:57.68 ID:???
トリトン使うことにしますた
103nobodyさん:2013/06/01(土) 00:02:56.00 ID:???
104nobodyさん:2013/06/01(土) 00:08:19.27 ID:???
>>103
not foundには変わりないけど・・どういう意味ですか?
105nobodyさん:2013/06/01(土) 00:22:35.73 ID:???
>>104
ごめんなさい。確認するの忘れてた…
106nobodyさん:2013/06/01(土) 00:46:50.58 ID:???
MLでWin版のテスト募集されてましたよ。
http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-May/001410.html
107nobodyさん:2013/08/31(土) NY:AN:NY.AN ID:???
108nobodyさん:2013/09/11(水) 20:24:29.01 ID:???
頻発にテーブルupdateすると壊れるからマジで使えない
109nobodyさん:2013/10/22(火) 16:49:55.87 ID:???
mroongaでカンマ区切りでインデックスさせるにはどうしたらいいすか?
110nobodyさん:2013/11/22(金) 17:20:10.93 ID:???
>>92
64bit版にしたら全く問題なかった
111nobodyさん:2014/01/05(日) 03:05:09.06 ID:???
mroongaとして使ってて、導入コストも低いし性能も問題ないんだけど
何の前触れもなく検索が遅くなったりするのが怖い
112nobodyさん:2014/02/05(水) 10:56:52.51 ID:k8lujHJw
groonga のテーブル定義がさっぱりわかりません。
例えば wikipedia のデータをストアしたい場合、
どーすればいいのでしょうか?
113nobodyさん:2014/02/07(金) 09:34:56.28 ID:???
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
114nobodyさん:2014/02/07(金) 09:36:19.44 ID:???
# <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
115nobodyさん:2014/02/07(金) 09:37:39.49 ID:???
# ↓の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
116nobodyさん:2014/02/07(金) 09:38:53.27 ID:???
# ↓用の転置索引用の語彙表:
# <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
117nobodyさん:2014/02/07(金) 09:41:18.24 ID:???
難しいだわさ。
118nobodyさん:2014/02/07(金) 15:45:35.46 ID:???
groongaは一部中国語に対応してるみたいだけど、拡張すればその他の言語もいけるのかな
119nobodyさん:2014/11/09(日) 23:44:24.91 ID:???
おまんもーす
120nobodyさん:2015/02/08(日) 14:09:10.77 ID:brXmi2cE
Droonga最新版 (1.0.9) がUbuntuにもCentOSにもインストールできなくなってしまった

更新も止まってるし、そろそろ見切りを付けて移行したほうがよさげかな?

使い始めたときの思惑と違って分散処理が不要になったから
素のGroongaでもよさそうだけど、簡単に移れるものなのかな・・・ドキドキ
121nobodyさん:2015/02/08(日) 14:10:21.74 ID:brXmi2cE
正確にはUbuntuではインストールできない
CentOSではselectが実行できない
Debianは試していない
122nobodyさん
無事、素のGroongaに移行完了(データは移行中)

Droongaなんていらんかったんや!