ミスを含むKuomoji辞書をFESSにアップロードすると、レプリカシャードが落ちてゆきます。
完全にダウンしないところが、かえって手間がかかる感じです。
いろいろ実験してみましたが、「不正な辞書でインデックスに登録した部分を除去する」のが対処療法として使えそうです。
管理画面の右上の検索窓に
timestamp:[now/d-2d TO *]
を入れると、過去2日間で更新されたレコードを抜け出せます。
これを、UIの画面下の赤ボタンで削除。
これでげかしゅつじゅは終わりです。
知禅 Blog (旧Nyafoo! Blog)
検索エンジン「知禅」の運営記。
2019年1月30日水曜日
2019年1月28日月曜日
FESSのKuromoji辞書の更新に失敗したら
FESSは非常に優れたオープンソースの検索システムですが、日本語の形態素辞書についてはデリケートな扱いが必要です。
端的に言えば、辞書を間違えると、インデックスが半落ちします。
僕も時々インデックスを飛ばしているのですが、Kuromoji辞書はかなりデリケートです。
何回か飛ばして、不整合を起こす例を調べたのですが、
1.トークンが重複してはならない
2.分割と読みの文節数が一致していないとならない
3.「ぁ」と「あ」は同一視され、かつトークンが重複してはならない
を守らないとなりません。
今はAccessでトークンがユニークになるようにしています。
Kuromojiが失敗すると、FESSは以下の症状を起こします。
1.プライマリシャードは一見、正常に見える
2.レプリカシャードが徐々に落ちる
3.レプリカシャードを手動でアサインできなくなる
4.レプリカシャードをアサインしても、Translogが0.0%から進まない
こうなったら、まずクローラーを停止して、レプリカの数をゼロに戻します。
辞書を正常に動作していた時に戻して、レプリカを1に戻します。
これで、一応アサインされたら復旧できるのですが、成功率が100%でないので、僕も研究をしているところです。
端的に言えば、辞書を間違えると、インデックスが半落ちします。
僕も時々インデックスを飛ばしているのですが、Kuromoji辞書はかなりデリケートです。
何回か飛ばして、不整合を起こす例を調べたのですが、
1.トークンが重複してはならない
2.分割と読みの文節数が一致していないとならない
3.「ぁ」と「あ」は同一視され、かつトークンが重複してはならない
を守らないとなりません。
今はAccessでトークンがユニークになるようにしています。
Kuromojiが失敗すると、FESSは以下の症状を起こします。
1.プライマリシャードは一見、正常に見える
2.レプリカシャードが徐々に落ちる
3.レプリカシャードを手動でアサインできなくなる
4.レプリカシャードをアサインしても、Translogが0.0%から進まない
こうなったら、まずクローラーを停止して、レプリカの数をゼロに戻します。
辞書を正常に動作していた時に戻して、レプリカを1に戻します。
これで、一応アサインされたら復旧できるのですが、成功率が100%でないので、僕も研究をしているところです。
2018年11月11日日曜日
知禅のkuromojiユーザ辞書を公開しました
こんばんは。Nyafooです。
知禅を作り始めて1年余り。
優れた辞書としてNeologdがありますが、Fessでポンっと使えるユーザー辞書があってもよいかと思い、Githubに上げることにしました。
3か月に1回ぐらいの感じで更新してゆければと思います。
Githubからtxtファイルをダウンロードして、Fessの「システム」→「辞書」から「ja/kuromoji.txt」を開いて、ファイルをアップロードします。
ライセンス:Apacheライセンス準拠
商用利用:可
※アップロード前に試験環境で必ずテストすること。
ダウンロードはこちら
知禅を作り始めて1年余り。
優れた辞書としてNeologdがありますが、Fessでポンっと使えるユーザー辞書があってもよいかと思い、Githubに上げることにしました。
3か月に1回ぐらいの感じで更新してゆければと思います。
Githubからtxtファイルをダウンロードして、Fessの「システム」→「辞書」から「ja/kuromoji.txt」を開いて、ファイルをアップロードします。
ライセンス:Apacheライセンス準拠
商用利用:可
※アップロード前に試験環境で必ずテストすること。
ダウンロードはこちら
2018年8月25日土曜日
FESSとkuromoji.txt
FESSのtakenizerは、ユーザーが辞書を拡張できるようになっています。
UIの「システム」→「辞書」から「ja/kuromoji.txt」を選ぶと、トークンの登録画面になります。
作業は簡単ですが、同じトークンを多重に登録すると、インデックスが更新できなくなる、けっこう大きなトラブルが発生します。
トークンを多重に登録してしまうと、fess.yyyymmddのレプリカシャードが落ち、インデックスの更新が止まります。
こうなった時は、まず落ち着いてください。
やってはいけないのは、以下の作業です。
・ノードの再起動
・close index
まず、動いているすべてのクローラーを停止させます。
続いて、kuromoji.txtをダウンロードし、重複しているトークンを取り除きます。
改修したkuromoji.txtをアップロードします。
fess.yyyymmddのレプリカシャード数を0にして、ひと呼吸おいてから1に戻します。
これで、レプリカが復帰したら当たりです。
このとき、レプリカのindexが100%になったのに、translogがいつまで経っても0.0%でスタックすることもあります。
このときは、僕はあきらめて新しい空のインデックスを作り、_reindexで複製します。
kuromoji.txtは、UIから簡単にアクセスできるのですが、システム内部に直接手を入れるもののため、慎重に作業してください。
UIの「システム」→「辞書」から「ja/kuromoji.txt」を選ぶと、トークンの登録画面になります。
作業は簡単ですが、同じトークンを多重に登録すると、インデックスが更新できなくなる、けっこう大きなトラブルが発生します。
トークンを多重に登録してしまうと、fess.yyyymmddのレプリカシャードが落ち、インデックスの更新が止まります。
こうなった時は、まず落ち着いてください。
やってはいけないのは、以下の作業です。
・ノードの再起動
・close index
まず、動いているすべてのクローラーを停止させます。
続いて、kuromoji.txtをダウンロードし、重複しているトークンを取り除きます。
改修したkuromoji.txtをアップロードします。
fess.yyyymmddのレプリカシャード数を0にして、ひと呼吸おいてから1に戻します。
これで、レプリカが復帰したら当たりです。
このとき、レプリカのindexが100%になったのに、translogがいつまで経っても0.0%でスタックすることもあります。
このときは、僕はあきらめて新しい空のインデックスを作り、_reindexで複製します。
kuromoji.txtは、UIから簡単にアクセスできるのですが、システム内部に直接手を入れるもののため、慎重に作業してください。
2018年7月1日日曜日
知禅(旧Nyafoo!)が1周年を迎えました
こんばんは。
知禅(旧Nyafoo!)を公開して、1年が経ちました。
当初、30万件程度だったインデックスは、現在2000万件前後に増えています。
サーバーも増えまして、当初2台構成だったクラスタは、現在19台が稼働しています。
構成を多重化しているため、無停止メンテナスできるようになりました。
サービス当初は、インデックス200万件ぐらいで実用的になると思っていましたが、まだまだですね。
この調子だと、1億件ぐらい溜めないと「だいたいのキーワードで使える結果が出てくる検索エンジン」になれないようです。
実用的な汎用検索エンジンになるためには、対象のページを持っていること、持っているページを適切なランクで表示することが必要です。
現在は、まだページが足りていないようです。
2年目も、こつこつホワイトリストを更新しつつ、効率的なインデックス構築に励みたいと思います。
2年目の知禅もよろしくお願いいたします。
知禅(旧Nyafoo!)を公開して、1年が経ちました。
当初、30万件程度だったインデックスは、現在2000万件前後に増えています。
サーバーも増えまして、当初2台構成だったクラスタは、現在19台が稼働しています。
構成を多重化しているため、無停止メンテナスできるようになりました。
サービス当初は、インデックス200万件ぐらいで実用的になると思っていましたが、まだまだですね。
この調子だと、1億件ぐらい溜めないと「だいたいのキーワードで使える結果が出てくる検索エンジン」になれないようです。
実用的な汎用検索エンジンになるためには、対象のページを持っていること、持っているページを適切なランクで表示することが必要です。
現在は、まだページが足りていないようです。
2年目も、こつこつホワイトリストを更新しつつ、効率的なインデックス構築に励みたいと思います。
2年目の知禅もよろしくお願いいたします。
2018年4月7日土曜日
FESS11.4.10 crawlerのfileTypeHelperの置き場が変わっていました
結論から言うと、ここです。
env/が増えました。
FESSは時々ディレクトリ構成が変わるため、僕はaptでインストールするとき--reinstallを付けています。
/usr/share/fess/app/WEB-INF/env/crawler/resources
env/が増えました。
FESSは時々ディレクトリ構成が変わるため、僕はaptでインストールするとき--reinstallを付けています。
2018年3月7日水曜日
日記。「省く」
今から20年ほど前になります。
エヴァンゲリオンが放映された頃に、アニメ雑誌の創刊バブルが起きました。
その頃、僕は編集プロダクションでバイトしていたのですが、なぜかエロ本の出版社がアニメ雑誌を作りたいと言い出しました。
ふむふむ。
雑誌の方向性なんかを考えたのですが、出て来た結論がぶっとんでいましてね。
「エロとアニメを載せれば、両方の読者が取れる」
こうして、AVとアニメのハイブリッド雑誌が人知れず創刊され、人知れず無くなって行きました。
あれは一体、どういう理屈でああなったのかと思っていましたが、どうも理由らしきものを感じたんですよ。
高度成長期後に生まれた世代と、その前や成長期中とでは大きく「モノ」に対する考え方が違うようなのです。
モノが無い時代は、「1つ買ったら、いっぱい付いてくる」事に価値があったんですね。
一番の成功例はラジカセだと思います。
高度成長期後に生まれた世代は逆で、中途半端なものは要らない。
むしろ、省く事にセンスと価値がある。
日本の会社から、使い物にならない中途半端な物が出続けるのは、決済者がラジカセの成功体験を引きずっているからなんだろうなぁ、と思った次第です。
エヴァンゲリオンが放映された頃に、アニメ雑誌の創刊バブルが起きました。
その頃、僕は編集プロダクションでバイトしていたのですが、なぜかエロ本の出版社がアニメ雑誌を作りたいと言い出しました。
ふむふむ。
雑誌の方向性なんかを考えたのですが、出て来た結論がぶっとんでいましてね。
「エロとアニメを載せれば、両方の読者が取れる」
こうして、AVとアニメのハイブリッド雑誌が人知れず創刊され、人知れず無くなって行きました。
あれは一体、どういう理屈でああなったのかと思っていましたが、どうも理由らしきものを感じたんですよ。
高度成長期後に生まれた世代と、その前や成長期中とでは大きく「モノ」に対する考え方が違うようなのです。
モノが無い時代は、「1つ買ったら、いっぱい付いてくる」事に価値があったんですね。
一番の成功例はラジカセだと思います。
高度成長期後に生まれた世代は逆で、中途半端なものは要らない。
むしろ、省く事にセンスと価値がある。
日本の会社から、使い物にならない中途半端な物が出続けるのは、決済者がラジカセの成功体験を引きずっているからなんだろうなぁ、と思った次第です。
登録:
投稿 (Atom)
FESSのKuromoji辞書をミスった時の対処法
ミスを含むKuomoji辞書をFESSにアップロードすると、レプリカシャードが落ちてゆきます。 完全にダウンしないところが、かえって手間がかかる感じです。 いろいろ実験してみましたが、「不正な辞書でインデックスに登録した部分を除去する」のが対処療法として使えそうです。 ...

-
あまりに情報が無いので、自分で調べた物を勝手に書くことにしました。 FESSの設定は、ローカルに保存されるものと、elasticsearch(以下es)に保存されるものがあります。 ■esに保存されるもの ユーザー情報とパスワード Web、ファイルなどのクロール設...
-
Nyafoo!を公開して2週間が過ぎました。 予想外に反響があり、さすがに名前がまずいと思っておりました。 大日本印刷が「Shufoo!」というギリギリな名称のサービスを続けており、「Fにしておけば大丈夫だろう」と軽く付けたサービス名だったのです。 しかし、このまま進む...
-
Nyafoo!を作るにあたり、課題は利益の上げ方でした。 安定してサービスを提供するためには、定期的な売り上げが必要です。 様々な企業のビジネスモデルを参考に、Nyafoo!は独自コンテンツでサブスクリプションを目指すことにしました。 プラットフォームは Enty を借り...
