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

1nobodyさん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/

74552012/05/24(木) 21:16:26.25ID:???
>>72-73
対応してるんだ。ありがと。

75nobodyさん2012/05/30(水) 13:28:02.35ID:???
queryのエスケープ処理のカオスっぷりハンパねーな

76nobodyさん2012/06/01(金) 16:29:26.89ID:GjNXJRiE
mroongaテーブルで全文検索はうまくいくんだけど、
プライマリキーでの検索がちゃんとヒットしない
バージョンは1.3.0
俺だけ?
こんな単純なところで引っかかるとは・・

77nobodyさん2012/06/01(金) 19:31:21.57ID:???
プライマリキーも全文検索の対象にしてるの?

プライマリキーでの全文検索ってのはできるのかな・・・
オートインクリメントのカラムを別途用意してそっちをプライマリキーにしたほうが安全だと思うが・・・

78nobodyさん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

いやこれ全部最新版だよね
もう疲れたよパトラッシュ

79nobodyさん2012/06/02(土) 02:12:33.64ID:???
groongaのバージョン戻して、
プライマリキーを削除したら検索可能になった
それで普通のINDEXなら張り直しても問題ない
原理は不明だけど

80nobodyさん2012/06/02(土) 20:56:24.77ID:???
昔はVARCHAR型プライマリキーの扱いに問題があったけど
最新バージョンでは大丈夫になってるはずだけどなぁ

81nobodyさん2012/06/03(日) 00:04:53.44ID:???
最新バージョンはうまく入らなかったから戻したんだよ

82nobodyさん2012/06/03(日) 02:47:33.61ID:???
>>78
yumで入れた場合MySQLとmroongaのバージョン気をつけないとそんなことになった気がする
mroongaソースから入れたらいいよ

83nobodyさん2012/06/09(土) 20:25:01.76ID:???
MySQL-server のversion が 5.5.25-1.rhel5 にup されたね
おかげで、yum でmysql-mroonga が入るようになった

84nobodyさん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で入れました

85nobodyさん2012/06/11(月) 21:09:03.26ID:???
ngramのがはやそげ

86842012/06/15(金) 19:58:43.63ID:???
結局、
TokenBigramSplitSymbolAlphaDigitで
?mroonga_match_escalation_thresholdを1にして
検索かけたら上手く行った

87nobodyさん2012/09/29(土) 19:02:59.77ID:6ahxPXX9
WindowsServerでTritonn使ってます。
システムの移行を考えてて、groonga試したいんだけど、
MySQLのプラグインとしてgroongaを使うのはWindowsでは
できませんか?
導入手順ご存知の方がいらっしゃったら教えてください

88nobodyさん2012/10/06(土) 18:26:42.81ID:???
ここ見たのか知らないけど、今ここでWindowsでも使えるように頑張ってるみたい
10月の後半ぐらいには使えるようになるんじゃね?
http://redmine.groonga.org/issues/1496

89872012/10/07(日) 11:14:16.58ID:???
>>88
現在開発中なんですね。
気長に待ちます。

90nobodyさん2012/10/23(火) 17:43:15.04ID:???
debパッケージからgroonga-server groonga-server-commonがなくなっているような…

91nobodyさん2012/10/23(火) 17:46:46.15ID:???
groonga-server-gqtpに名前が変わったのか

92nobodyさん2012/10/29(月) 16:07:31.55ID:???
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.67ID:???
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.37ID: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.58ID: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.53ID:BGsSkY8Y
なんか、grn::dat::Trie::open failedって出るようになってしまってgroongaエンジン系全滅なんだけど。
どうやって復帰すりゃええんですかいの?

97nobodyさん2013/05/10(金) 20:53:30.15ID: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.17ID:???
oh... IDが変わってるけど>>96です。
ちなみに途中でgroonga及びmroongaは1.0.xから3.03にアップデートしますた。

99nobodyさん2013/05/10(金) 21:57:12.05ID:cFx0Oq6o
続報
同名DBを作成しなおして同名テーブルを生成し直すとエラー
当然っちゃ当然ですね。

というわけで、DBをもう一回削除しなおした後、mysqlのdataディレクトリ中のmrnファイルをごっそり削除したところエラーは回避。
なんとも不安定な仕組みなもんだね。mroongaは

100962013/05/11(土) 13:25:32.41ID:???
3.03に切り替えたからか、そもそも不安定なのか、mroongaのupdateがフリーズ(?)するようになってしまった・・・。

101nobodyさん2013/05/31(金) 04:55:23.95ID:TNUtMHtE
windows用のmroongaをダウンロードしたいのですが、
ファイルがnot foundになります
http://packages.groonga.org/windows/mroonga/
ここを見るとファイルが一つもありません
何故ですか

102nobodyさん2013/05/31(金) 04:59:57.68ID:???
トリトン使うことにしますた

103nobodyさん2013/06/01(土) 00:02:56.00ID:???

104nobodyさん2013/06/01(土) 00:08:19.27ID:???
>>103
not foundには変わりないけど・・どういう意味ですか?

105nobodyさん2013/06/01(土) 00:22:35.73ID:???
>>104
ごめんなさい。確認するの忘れてた…

106nobodyさん2013/06/01(土) 00:46:50.58ID:???
MLでWin版のテスト募集されてましたよ。
http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-May/001410.html

107nobodyさん2013/08/31(土) NY:AN:NY.ANID:???

108nobodyさん2013/09/11(水) 20:24:29.01ID:???
頻発にテーブルupdateすると壊れるからマジで使えない

109nobodyさん2013/10/22(火) 16:49:55.87ID:???
mroongaでカンマ区切りでインデックスさせるにはどうしたらいいすか?

110nobodyさん2013/11/22(金) 17:20:10.93ID:???
>>92
64bit版にしたら全く問題なかった

111nobodyさん2014/01/05(日) 03:05:09.06ID:???
mroongaとして使ってて、導入コストも低いし性能も問題ないんだけど
何の前触れもなく検索が遅くなったりするのが怖い

112nobodyさん2014/02/05(水) 10:56:52.51ID:k8lujHJw
groonga のテーブル定義がさっぱりわかりません。
例えば wikipedia のデータをストアしたい場合、
どーすればいいのでしょうか?

113nobodyさん2014/02/07(金) 09:34:56.28ID:???
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.44ID:???
# <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.49ID:???
# ↓の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.27ID:???
# ↓用の転置索引用の語彙表:
# <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.24ID:???
難しいだわさ。

118nobodyさん2014/02/07(金) 15:45:35.46ID:???
groongaは一部中国語に対応してるみたいだけど、拡張すればその他の言語もいけるのかな

119nobodyさん2014/11/09(日) 23:44:24.91ID:???
おまんもーす

120nobodyさん2015/02/08(日) 14:09:10.77ID:brXmi2cE
Droonga最新版 (1.0.9) がUbuntuにもCentOSにもインストールできなくなってしまった

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

使い始めたときの思惑と違って分散処理が不要になったから
素のGroongaでもよさそうだけど、簡単に移れるものなのかな・・・ドキドキ

121nobodyさん2015/02/08(日) 14:10:21.74ID:brXmi2cE
正確にはUbuntuではインストールできない
CentOSではselectが実行できない
Debianは試していない

122nobodyさん2015/02/08(日) 16:58:58.79ID:brXmi2cE
無事、素のGroongaに移行完了(データは移行中)

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

123nobodyさん2017/12/30(土) 14:51:11.75ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

B2BGME4RW2

124nobodyさん2019/04/14(日) 11:26:17.58ID:???
何故ぐーぐるとかの方がローカル検索より早いの
ぐーぐる1回検索する電力でコーヒー2杯のめるんだっけ?

新着レスの表示
レスを投稿する