tag:blogger.com,1999:blog-36473998871156690122024-02-20T01:55:42.493+09:00知禅 Blog (旧Nyafoo! Blog) 検索エンジン「知禅」の運営記。Unknownnoreply@blogger.comBlogger45125tag:blogger.com,1999:blog-3647399887115669012.post-84673572239243800922023-11-28T19:12:00.002+09:002023-11-28T19:12:30.957+09:00Windows 11でEdgeのタブが「Alt+Tab」に表示されるのを防ぐ方法<p> </p><div class="separator" style="clear: both; text-align: center;"><ol><li style="text-align: left;">コントロールパネル>システム>マルチタスクを開く</li><li style="text-align: left;">「スナップまたはAlt+Tabを押したときにアプリのタブを表示する」を「タブを表示しない」に変更。</li></ol></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiDi0cpym36J67xaDUO0BZVOqlxoCQse_0Pp6UcwbEMOO-v2wWaE15r2_NKFA0Pnkxcwx0PFPzwxAtaFt5yL6U873nghveaIVTIVdnoCWPrHPQnS6q2c3YjYQJ5VSEtNIvSjG3JBEIRUr7ZrFKlJYviRw9QxjzNtA8YOxSBD6kWelA8NdCimC5PRwlWaeY" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="706" data-original-width="722" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEiDi0cpym36J67xaDUO0BZVOqlxoCQse_0Pp6UcwbEMOO-v2wWaE15r2_NKFA0Pnkxcwx0PFPzwxAtaFt5yL6U873nghveaIVTIVdnoCWPrHPQnS6q2c3YjYQJ5VSEtNIvSjG3JBEIRUr7ZrFKlJYviRw9QxjzNtA8YOxSBD6kWelA8NdCimC5PRwlWaeY" width="245" /></a></div><br /><p></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-33664579471506641212019-12-28T22:43:00.002+09:002019-12-28T22:43:54.114+09:00私の節約(スマートフォン)こんばんは。<br />
倹約&節約に励むにしても、ガイドラインがないとやりづらいかもしれません。<br />
僕が使っている組み合わせを紹介しましょう。<br />
本体を安くしたり、回線を太くしたり、使い方に合わせると良いと思います。<br />
<br />
■基本的な考え方<br />
SIMフリーしか買わない。<br />
子供もSIMフリー端末のみ使わせる。<br />
ペアレンタルコントロールが使いやすいプラットフォーム。<br />
回線は最安ではなく安定性と価格のバランス。<br />
昼休みの時間帯の速度が遅い点は許容する。<br />
キャンペーンやポイントは全部無視する。<br />
移動中に動画を見ない。<br />
<br />
■結果、現在の選択<br />
本体はSIMフリーiPhone。<br />
家族全員MVNOにする。<br />
ISPやってる会社のMVNO。<br />
<br />
■携帯電話(本体)<br />
月5,600円ぐらい。<br />
SIMフリー iPhone 11 pro max。<br />
Appleの24回分割0%ローンを利用。<br />
<br />
■携帯電話(回線)<br />
月1,600円ぐらい。<br />
mineo au VoLTE。<br />
3GBです。<br />
<br />
携帯電話は本体を入れて8,000円以下を目指しています。<br />
本体の支払いを終えると、また月1,600円に戻れます。<br />
<br />
■役目を終えた端末<br />
SIMカードを抜いて、Wi-Fi端末として余生を送らせます。<br />
iPadはVolumioの操作専用端末としてリビングに置く。<br />
※ホームセンターで売っている「涙目」という戸当たりを和らげるゴム部品を底面に付けています。<br />
Xperia Z Ultraはスマホゲーム端末。<br />
iPhone 5cはnature remoの操作端末。<br />
<br />
■MVNOの感想<br />
mineoのau版です。昼休みの12時から13時は、画像が表示できないぐらいレスポンスが遅くなります。HTMLは取れるので通信制御しているのでしょう。<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-48447824691972821652019-12-21T23:19:00.000+09:002019-12-21T23:19:04.928+09:00整形外科とリハビリ行ってきましたこんばんは。知禅です。<br />
私、40代中盤。<br />
健康寿命の折り返し地点を通過しております。<br />
<br />
昔の様に「寝れば治る」ことも無くなり、積極的に医者に行くようにしています。<br />
<br />
今日は整形外科へ。<br />
指の関節と、腕の内側の筋肉の痛みを診てもらいました。<br />
<br />
まずレントゲン。<br />
指関節に変形なし、軟骨のすり減りもなし。<br />
まずは安心です。<br />
<br />
消炎剤とロキソニンテープを処方してもらいました。<br />
<br />
それからリハビリへ。<br />
療法士の先生から、手首のストレッチを教わりました。<br />
「手首を動かすと、だいぶ硬いですね。このストレッチは1回30秒。1日に10回やるようにしてください」<br />
とのこと。<br />
<br />
僕は病院で聞いたことは100%守るタイプです。<br />
これから、暇を見つけてストレッチします。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-71347402247249258172019-12-20T21:48:00.003+09:002019-12-20T21:48:31.161+09:00あなたにとって「損」とは何ですか?「損」は嫌ですね。<br />
誰しも思うことでしょう。<br />
<br />
では、「損」とは何でしょうか。<br />
<br />
意見が割れるケースを3点ほど挙げます。<br />
あなたにとって、これは損でしょうか。<br />
得でしょうか。<br />
<br />
僕の意見は書きません。<br />
あなたが損か得か、決めてみてください。<br />
<br />
<b>1.必要ない商品の50%オフクーポンを使わずに期限が過ぎた</b><br />
あなたが必要としない商品が、半額になるクーポンがありました。<br />
あなたはクーポンを使わずにいましたが、期限が切れてしまいました。<br />
<br />
<b>2.20分並んで100円のハンバーガーが無料</b><br />
普通に買うと100円のハンバーガーがあります。<br />
今日はスマホのクーポンが配られて、100円のハンバーガーが無料になります。<br />
クーポンのためか、この店は行列ができていて、あなたが100円のハンバーガーを無料で受け取るには、20分並ぶ必要があります。<br />
<br />
<b>3.衰退産業の退職金</b><br />
あなたは明らかな衰退産業の正社員とします。<br />
会社が倒産せずに持ちこたえたら、満額の退職金を受け取れます。<br />
倒産したらゼロです。<br />
今、成長産業の正社員のオファーを受けました。<br />
年収は10万円上がりますが、この会社に退職金はありません。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-53591336271190798492019-12-19T22:27:00.000+09:002019-12-19T22:27:23.002+09:00見える、見えるゾォ(老眼)40年余り生きてきましたが、徐々にガタを感じるようになりました。<br />
中でもキツいのが眼。眼球です。<br />
これまで、両眼の裸眼視力は1.5だったのですが、先日の健康診断で左の視力が1.0まで落ち込みました。<br />
人生で一番目が悪くなったことになります。<br />
<br />
視力を維持できたのは、表示装置に良質なものを選んだからでしょう。<br />
Windows NTを使っていたころは、Matrox Milleniumとナナオのモニターしか使いませんでした。<br />
リフレッシュレートを高め、目の疲労を抑えてきたのです。<br />
<br />
時は流れ、僕もスマートフォンを使うようになりました。<br />
前はXperia Z Ultraという、6.5インチの機種でしてね。<br />
文字が大きくて読みやすいんですよ。<br />
<br />
それからiPhone 6sに替えたのですが、これが良くなかった。<br />
しばらく画面を見ると、左目が滲みるような疲れを感じます。<br />
眼玉にはゆゆしき事態です。<br />
<br />
そこで、Apple StoreにてiPhone 11 Pro Maxを見てきました。<br />
Xperia Z Ultra並みのサイズです。<br />
<br />
「…。読める」<br />
これが、最新鋭iPhone見たときの僕の感想でした。<br />
CPUとか、カメラとかどうでもよく、「字が大きいから読める」。<br />
さっそく買い替えることにしました。<br />
<br />
おとといからiPhone 11 Pro Maxにしていますが、いいですね。<br />
眼が痛くならない。目が霞まない。<br />
これで、記事を書いたりホワイトリストを強化する体制が戻りつつあります。<br />
<br />
次は指と腕の腱鞘炎を治すぞーUnknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-54930484866095739772019-12-18T22:58:00.001+09:002019-12-18T22:58:50.827+09:00「君の、名は!」「ピロリです」今晩は。知禅です。<br />
ここ数か月ですが、検索エンジンの能力が上がっておりません。<br />
<br />
理由は、僕の身体にありました。<br />
40歳も半ばになると、どこかに不具合を抱えるもので、<br />
目は老眼へ、胃はピロリ菌、腕と指は腱鞘炎。<br />
ざっと3か所は治療が必要です。<br />
<br />
加齢で体をいたわりながら、経験で先回りして方向性を示し、細かな検討はスタッフに協力してもらうようになるでしょう。<br />
<br />
先日、大きなトピックがありました。<br />
健康診断で「ピロリ疑いあり。要再検査」でバチ引っかかり。<br />
内視鏡を入れて、胃の中を確認することになりました。<br />
<br />
胃の下の方に行くと、やや網目状の血管の模様があります。<br />
これがピロリの巣のようです。<br />
内視鏡に小さなピンセットを入れて、胃の組織を取り出します。<br />
<br />
組織を試薬に挟んで15分。ばっちり反応が出ました。<br />
ピロリ陽性です。<br />
<br />
健康診断後のピロリ発見のため、保険診療で駆除することになりました。<br />
まず、先生の説明です。<br />
「あなたの胃にはピロリ菌が居ます」<br />
「ピロリ菌は複数の薬を一気に投与して駆除します」<br />
「保険診療でピロリ菌を退治できるのは2回だけです。今回で仕留めましょう」<br />
<br />
ピロリをぬっぽろす前向きな話が続いた後、<br />
「がんと決まったわけではありませんが、ピロリが居なくなった後もがんのリスクがあります。今後の健康診断は胃カメラを選ぶようにしてください」<br />
<br />
つまり、今の僕の胃はがんの一歩手前。不摂生を重ねるとがんになる状態のようです。<br />
胃がんごときにやられるわけにはゆかないので、ピロリをぬっぽろしたあと、<br />
納豆やヨーグルトなどの発酵食品と、バーガーキングのワッパーを喰らって<br />
生きてゆきたいと思います。<br />
<br />
次は目のお話を…<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-22478450422795474902019-07-02T21:30:00.000+09:002019-07-02T21:30:44.739+09:00タピオカとガソリンこんばんは。<br />
タピオカブームが続きますね。空いたら行こうと思っているのですが、なかなか機会がありません。<br />
<br />
次々とロールアウトされるタピオカ。<br />
あれって、1日でどれぐらいのエネルギー(熱量)が移動しているのでしょうか。<br />
気になったので計算してみました。<br />
<br />
以下の条件を想定します。<br />
・タピオカミルクティーは、1杯500キロカロリーとする。<br />
・20秒につき1杯のタピオカミルクティーが売れるとする。<br />
・店舗の営業時間は10時間とする。<br />
・ガソリン1リットルの熱量を8,400キロカロリーとする。<br />
<br />
タピオカミルクティーは、1分につき3杯が売れます。<br />
1時間に180杯です。<br />
営業時間を10時間としたので、1日に1,800杯のタピオカが売れます。<br />
よって、総流通カロリーは90万キロカロリーと推定できます。<br />
<br />
ガソリンに換算すると、大体108リットル相当になりました。<br />
ドラム缶の半分ぐらいです。<br />
<br />
これから、タピオカ店を見たときは「この店で1日にドラム缶の半分のガソリンに相当する熱量が移動しているんだな」と思うことにします。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-89413727979955228172019-06-30T22:02:00.001+09:002019-06-30T22:02:57.845+09:00主人が検索エンジンを作り始めて2年が経ちました旧Nyafoo!時代を含め、検索エンジンを構築し始めて2年が経ちました。<br />
<br />
スタートすぐは、アクセスが少し集中したらダウン。<br />
メンテしたらダウン。<br />
とにかくダウン。安定して動く構成に仕上げるだけで一苦労でした。<br />
<br />
1年たった時は、elasticsearchクラスタや、FESSのフロント系、FESSのクローラ系、nginxのリバースプロキシ、ロードバランサ、クラウドフロントを揃え、スケールしやすい構成にまとめました。<br />
<br />
そして2年が過ぎた今年。URLリストは5万件近くになりました。<br />
新聞、雑誌、書籍、オンラインメディア、上場企業、大学、高専、高校など、政府、官公庁、地方自治体、公益法人等、グルメ、ホテル、レジャー設備、交通公共機関、音楽レーベル、音楽事務所、俳優・歌手等公式ページ、辞書。<br />
これぐらいはクロール対象になりました。<br />
インデックスは数千万件で収まるようにしています。<br />
<br />
2年過ぎた知禅ですが「やっぱり当たらない検索エンジン」。時々近いものが出てくるけれど、昔のグーグルのズバズバ感には程遠い。実力はまだまだです。<br />
<br />
3年目は、「当たる検索エンジン」を目指したいと思います。<br />
石の上にも3年の知禅の発展をお楽しみに!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-26524979512571000872019-06-19T21:37:00.001+09:002019-06-19T21:37:37.550+09:00エクストリーム・FESS・クローリングこんばんは。<br />
現在、知禅は1日に100万URLをクロールして処理する能力があります。<br />
<br />
このあたりになると、意外なLimitに足を引っ張られるので、僕の解決策を書くことにしました。<br />
<br />
きっちりソースを読んでいないのでアレですが、FESSは検索エンジンにかかわるデータをelasticsearchに保存しています。<br />
※各インスタンス(サーバ)に依存する部分は/etcや/usr/share/fessの設定ファイルに書き込んでいます。<br />
この時はBulk APIを多用しているみたいです。<br />
<br />
通常のクロール速度だと問題ないのですが、クロール速度を上げるとelasticsearchのbulk数の上限に当たるようになります。<br />
/etc/elasticsearch/elasticsearch.ymlでbulk上限を1000まで引き上げてみてください。<br />
普通はこれで大丈夫だと思います。<br />
<br />
さて、ここからがエクストリーム。<br />
FESSのクローラは、.crawler.data、.crawler.filter、.crawler.queueの3つのindexを作ります。<br />
この中で、.crawler.filterがクロール対象を制御しているようです。<br />
100万件/dayぐらいになると、buik limitを1000に引き上げても、まだ足りずにbulk queueからあふれることがあります。<br />
<br />
こうなると、クローラーがelasticsearchから.crawler.filterを読もうとしても、elasticsearchがデータを返してくれません。<br />
クローラーは処理を続けてしまうので、クロール対象を正しく読み取れず、意図しないサイトをクロールしてしまうようなのです。<br />
<br />
もし、FESSで100万URL/dayを超えるようなクロールを目指すなら、.cralwer.filterは別のノードに置いて、bulk queueからあふれても読み出せるようにインデックスを配置しないとならないでしょう。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-63959919356288501922019-06-11T22:32:00.000+09:002019-06-11T22:36:47.018+09:00知禅の支援をお願いいたします知禅は赤字です。大きなサーバを動かしており、維持費が大きいのです。<br />
一応広告もありますが、まだまだサーバー代を賄えるほどではありません。<br />
<br />
そこで、お願いです。知禅が存続できるよう、支援をお願いいたします。<br />
少額でも、長期の支援をいただけると助かります。<br />
<br />
支援ぷらっふぉとーむはEntyを採用しました。<br />
<a href="https://enty.jp/x8Yel22">https://enty.jp/x8Yel22</a><br />
<br />
支援者になると、ポルリン先生に書いてもらった、Nyafooイメージイラストを見ることができます。<br />
<br />
よろしくお願いいたします。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-68579961649850855092019-03-28T22:59:00.001+09:002019-03-28T22:59:50.201+09:00なぜ「イノベーション横断組織」は何も生み出さないのか「イノベーション横断組織」なるものが作られ、各事業部からエース級とお目付け役が集められます。月1ぐらいで集まって、当社のイノベーションについて会議が開かれますが、結局時間が過ぎてゆくだけです。<br />
<br />
よく見る光景です。では、なぜ優秀な人が集まっているのに、イノベーションが起きないのでしょうか。<br />
<br />
原因は予算が割り当てられていない、それから従業員が優秀で安かったからだと思います。<br />
<br />
まず、イノベーション。社会に変革を与えるサービスや製品。これは、どのように成り立ってきたのでしょうか。<br />
僕は、「欲求、閃き、開発、イノベーション」の順で成り立つものと考えています。<br />
<br />
「欲求」は「こんな面倒くさいことはやめたい」「代わりにやってくれないかな」「もっと節約したい」「ガソリン代を減らしたい」など、嫌な事が無いと出てきません。<br />
<br />
「閃き」は、欲求を具体的な形にした瞬間です。「ハイブリッドにして、ブレーキで熱にして捨てていた運動エネルギーを電気で回収しよう」。閃きは必要な装置を具体的に描く必要があります。<br />
<br />
「開発」は、閃きを試作品にするプロセスです。「遊星歯車を使って、エンジン、モーターを組み合わせるハイブリッドシステム。制御コンピュータは新開発。既存エンジンと遜色ない体積でFF車に適した2軸出力。既存のラジエータなど極力流用するように。そして、クラッシュテストなどを経て型式認定を取得し、量産可能な状態にする」。ヒト・モノ・金を膨大に使います。<br />
<br />
最後「イノベーション」は、製品リリースと同義です。出したものが社会を変えるほど受け入れられたら「イノベーション」になれます。イノベーションのためには、製品の特長を説明できる広告戦略、効果的な営業スクリプトと、それをマスターできるスタッフ。無理のない納車体制。開発より、さらにお金がかかります。<br />
<br />
冒頭の会議で「イノベーション」が起きないのは、「欲求」すら無く、「今まで通り進めて、なんとか売り上げが回復する業者は無いか」ばかり考えているからです。<br />
<br />
この20年間、いろんな業者が完成品と遜色のないデザイン案やプロトタイプを持ってきてくれて、派遣さんが面倒な作業を安価に引き受けてくれたため、イノベーションの素地になる欲求は発生してきませんでした。若者を使い倒せばよかったので、やる必要が無かったのです。<br />
<br />
回転寿司のように、素晴らしいプロトタイプやアイディア、デザインがやってきて、良さそうなのをピックアップする作業を「企画」としてしまったため、企画部門が「仕入れ部門」に変質した会社も少なくありません。<br />
<br />
冒頭の例では、35歳までのメンバーに予算を与え、上役が一切口出しすることなく、製品をリリースすべきでしょう。その製品の大半は当たりません。それでも開発を続ける。これが、イノベーションを起こさないと生き残れない会社が、今から為すべきことでしょう。<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-75767301661749988642019-01-30T22:36:00.000+09:002019-01-30T22:36:21.144+09:00FESSのKuromoji辞書をミスった時の対処法ミスを含むKuomoji辞書をFESSにアップロードすると、レプリカシャードが落ちてゆきます。<br />
完全にダウンしないところが、かえって手間がかかる感じです。<br />
<br />
いろいろ実験してみましたが、「不正な辞書でインデックスに登録した部分を除去する」のが対処療法として使えそうです。<br />
<br />
管理画面の右上の検索窓に<br />
<span style="background-color: white; color: #454545; font-family: "MS Gothic"; font-size: 14.004px;">timestamp:[now/d-2d TO *]</span><br />
<span style="background-color: white; color: #454545; font-family: "MS Gothic"; font-size: 14.004px;">を入れると、過去2日間で更新されたレコードを抜け出せます。</span><br />
<span style="background-color: white; color: #454545; font-family: "MS Gothic"; font-size: 14.004px;">これを、UIの画面下の赤ボタンで削除。</span><br />
<span style="background-color: white; color: #454545; font-family: "MS Gothic"; font-size: 14.004px;">これでげかしゅつじゅは終わりです。</span>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-36494049268925659972019-01-28T22:39:00.001+09:002019-01-28T22:39:53.764+09:00FESSのKuromoji辞書の更新に失敗したらFESSは非常に優れたオープンソースの検索システムですが、日本語の形態素辞書についてはデリケートな扱いが必要です。<br />
<br />
端的に言えば、辞書を間違えると、インデックスが半落ちします。<br />
<br />
僕も時々インデックスを飛ばしているのですが、Kuromoji辞書はかなりデリケートです。<br />
<br />
何回か飛ばして、不整合を起こす例を調べたのですが、<br />
1.トークンが重複してはならない<br />
2.分割と読みの文節数が一致していないとならない<br />
3.「ぁ」と「あ」は同一視され、かつトークンが重複してはならない<br />
を守らないとなりません。<br />
<br />
今はAccessでトークンがユニークになるようにしています。<br />
<br />
Kuromojiが失敗すると、FESSは以下の症状を起こします。<br />
<br />
1.プライマリシャードは一見、正常に見える<br />
2.レプリカシャードが徐々に落ちる<br />
3.レプリカシャードを手動でアサインできなくなる<br />
4.レプリカシャードをアサインしても、Translogが0.0%から進まない<br />
<br />
こうなったら、まずクローラーを停止して、レプリカの数をゼロに戻します。<br />
辞書を正常に動作していた時に戻して、レプリカを1に戻します。<br />
<br />
これで、一応アサインされたら復旧できるのですが、成功率が100%でないので、僕も研究をしているところです。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-50349298135937486902018-11-11T18:08:00.001+09:002018-11-11T18:08:55.459+09:00知禅のkuromojiユーザ辞書を公開しましたこんばんは。Nyafooです。<br />
<br />
知禅を作り始めて1年余り。<br />
<br />
優れた辞書としてNeologdがありますが、Fessでポンっと使えるユーザー辞書があってもよいかと思い、Githubに上げることにしました。<br />
<br />
3か月に1回ぐらいの感じで更新してゆければと思います。<br />
Githubからtxtファイルをダウンロードして、Fessの「システム」→「辞書」から「ja/kuromoji.txt」を開いて、ファイルをアップロードします。<br />
<br />
ライセンス:Apacheライセンス準拠<br />
商用利用:可<br />
<br />
※アップロード前に試験環境で必ずテストすること。<br />
<br />
<a href="https://github.com/chizenjp/kuromoji">ダウンロードはこちら</a>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-15502106798130628642018-08-25T14:23:00.003+09:002018-08-25T14:23:34.498+09:00FESSとkuromoji.txtFESSのtakenizerは、ユーザーが辞書を拡張できるようになっています。<br />
UIの「システム」→「辞書」から「ja/kuromoji.txt」を選ぶと、トークンの登録画面になります。<br />
<br />
作業は簡単ですが、同じトークンを多重に登録すると、インデックスが更新できなくなる、けっこう大きなトラブルが発生します。<br />
<br />
トークンを多重に登録してしまうと、fess.yyyymmddのレプリカシャードが落ち、インデックスの更新が止まります。<br />
<br />
こうなった時は、まず落ち着いてください。<br />
やってはいけないのは、以下の作業です。<br />
・ノードの再起動<br />
・close index<br />
<br />
まず、動いているすべてのクローラーを停止させます。<br />
続いて、kuromoji.txtをダウンロードし、重複しているトークンを取り除きます。<br />
改修したkuromoji.txtをアップロードします。<br />
<br />
fess.yyyymmddのレプリカシャード数を0にして、ひと呼吸おいてから1に戻します。<br />
これで、レプリカが復帰したら当たりです。<br />
<br />
このとき、レプリカのindexが100%になったのに、translogがいつまで経っても0.0%でスタックすることもあります。<br />
このときは、僕はあきらめて新しい空のインデックスを作り、_reindexで複製します。<br />
<br />
kuromoji.txtは、UIから簡単にアクセスできるのですが、システム内部に直接手を入れるもののため、慎重に作業してください。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-30963151661208437782018-07-01T21:25:00.000+09:002018-07-01T21:25:14.208+09:00知禅(旧Nyafoo!)が1周年を迎えましたこんばんは。<br />
知禅(旧Nyafoo!)を公開して、1年が経ちました。<br />
<br />
当初、30万件程度だったインデックスは、現在2000万件前後に増えています。<br />
サーバーも増えまして、当初2台構成だったクラスタは、現在19台が稼働しています。<br />
構成を多重化しているため、無停止メンテナスできるようになりました。<br />
<br />
サービス当初は、インデックス200万件ぐらいで実用的になると思っていましたが、まだまだですね。<br />
この調子だと、1億件ぐらい溜めないと「だいたいのキーワードで使える結果が出てくる検索エンジン」になれないようです。<br />
<br />
実用的な汎用検索エンジンになるためには、対象のページを持っていること、持っているページを適切なランクで表示することが必要です。<br />
現在は、まだページが足りていないようです。<br />
<br />
2年目も、こつこつホワイトリストを更新しつつ、効率的なインデックス構築に励みたいと思います。<br />
<br />
2年目の知禅もよろしくお願いいたします。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-41424468934976405252018-04-07T15:16:00.003+09:002018-04-07T15:16:33.918+09:00FESS11.4.10 crawlerのfileTypeHelperの置き場が変わっていました結論から言うと、ここです。<br />
<br />
<blockquote class="tr_bq">
/usr/share/fess/app/WEB-INF/env/crawler/resources</blockquote>
<br />
env/が増えました。<br />
FESSは時々ディレクトリ構成が変わるため、僕はaptでインストールするとき--reinstallを付けています。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-74141348791684821032018-03-07T23:11:00.000+09:002018-03-07T23:11:09.098+09:00日記。「省く」今から20年ほど前になります。<br />
エヴァンゲリオンが放映された頃に、アニメ雑誌の創刊バブルが起きました。<br />
<br />
その頃、僕は編集プロダクションでバイトしていたのですが、なぜかエロ本の出版社がアニメ雑誌を作りたいと言い出しました。<br />
ふむふむ。<br />
雑誌の方向性なんかを考えたのですが、出て来た結論がぶっとんでいましてね。<br />
<br />
「エロとアニメを載せれば、両方の読者が取れる」<br />
<br />
こうして、AVとアニメのハイブリッド雑誌が人知れず創刊され、人知れず無くなって行きました。<br />
<br />
あれは一体、どういう理屈でああなったのかと思っていましたが、どうも理由らしきものを感じたんですよ。<br />
高度成長期後に生まれた世代と、その前や成長期中とでは大きく「モノ」に対する考え方が違うようなのです。<br />
<br />
モノが無い時代は、「1つ買ったら、いっぱい付いてくる」事に価値があったんですね。<br />
一番の成功例はラジカセだと思います。<br />
高度成長期後に生まれた世代は逆で、中途半端なものは要らない。<br />
むしろ、省く事にセンスと価値がある。<br />
<br />
日本の会社から、使い物にならない中途半端な物が出続けるのは、決済者がラジカセの成功体験を引きずっているからなんだろうなぁ、と思った次第です。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-57232410688636058142018-01-28T10:29:00.003+09:002018-01-28T10:29:51.275+09:00Fessを動かすサーバーの妥当なスペックはおはようございます。Nyafooです。<br />
今日はFessを動かすサーバーの目安を書きたいと思います。<br />
僕はAWSを使っているので、AWSのインスタンスで書きます。<br />
<br />
●巡回先が20から30サイトのFess<br />
目安として、インデックスが数万件のFessです。<br />
<div>
t2.mediumで一応動きます。</div>
<div>
すぐにクレジットを使い切るので、巡回先のURLを正規表現で細かく指定する必要があります。</div>
<div>
ストレージは数GBで収まるでしょう。</div>
<br />
●巡回先が100サイトぐらいのFess<br />
インデックスが10万件を超えるぐらいの規模感です。<br />
m5.largeが1台でまかなえる範囲ですが、制限が増えてきます。<br />
クローリングに掛かる時間が伸びるので、クロール中にメンテナスができなくなります。<br />
FessやElasticsearch、Linuxの設定はデフォルトでも大丈夫でしょう。<br />
<br />
●巡回先が1000サイトを超えるFess<br />
インデックスが100万件を超える辺りです。<br />
この辺りからクラスタ構成が必須になります。<br />
Fess、Elasticsearch、Linuxはデフォルト設定で大丈夫でしょう。<br />
まだインスタンスの力押しで行ける範囲でしょう。<br />
<br />
●巡回先が1万サイトを超えるFess<br />
インデックスが1000万件を超えます。<br />
本格的なクラスタ構成が必要です。<br />
Fess、Elasticsearch、Linuxもチューニングが必要です。<br />
大規模クラスタ運営の知識を学び、ノードの通信を抑える必要があります。<br />
インデックスは、何もしないと400GBを超えてきます。<br />
インデックスの圧縮やバックアップ方法も考慮しなければなりません。<br />
<br />
AWSはスケールさせるときに便利ですが、小規模だと割高になります。<br />
インスタンス1台で運用するなら、国内のクラウドの方が安いかもしれません。<br />
m5.largeのリザーブドインスタンスと比較して決めると良いと思います。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-5645207927982696542018-01-20T09:32:00.000+09:002018-01-20T09:32:04.238+09:00Fess 11.4.7がリリースされたので勝手に解説Fess11系の新バージョンがリリースされました。<br />
今回はバグフィックス中心のようです。<br />
<br />
変更点を勝手に解説します。<br />
※勝手に解説なので、あやふやなところがあります。<br />
<br />
#1440<br />
canonicalタグの処理の微調整。<br />
<br />
#1437<br />
webクローラーにDefaultLangageを設定可能に。<br />
古いWebサイトだと、lang宣言していないところがあるので助かります。<br />
fess_config.propertiesに、「crawler.document.html.default.lang=」が追加されました。<br />
<br />
#1435<br />
ScoreUpdaterが機能追加されました。<br />
Google Analyticsの結果をスコアに反映するようです。<br />
<br />
#1432<br />
エラー表示のバグフィックスのようです。<br />
<br />
#1431<br />
デフォルト値の変更。<br />
<br />
#1430<br />
検索結果のスニペット(抜粋部)のデフォルト値の変更。<br />
スニペットが短くなるようです。<br />
<br />
#1425<br />
APIの仕様変更のようですが、詳しいことはわかりませんでした(すいません<br />
<br />
#1421<br />
管理者がログを取得する機能のバグフィックスのようです。<br />
<br />
#1412<br />
fess-ss.jsからfunction文が取り除かれました。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-36744959076989490192017-12-19T23:11:00.000+09:002017-12-19T23:11:32.762+09:00FESSインデックスと圧縮FESSのメインインデックスは、油断すると数百GBになってきます。<br />
SSDを増やすにも限度があるので、圧縮することにしました。<br />
<br />
fess.yyyymmddインデックスを新しく作るときに、"index"以下に下記の設定を加えました。<br />
<br />
"codec": "best_compression"<br />
<br />
低速ですが高圧縮なアルゴリズムに切り替わります。<br />
<br />
古いelasticsearchのドキュメントだと、「elasticsearch.ymlに記述する」と書いてありますが、今のelasticsearchではインデックスの設定で記述します。<br />
<br />
staticな要素のため、インデックスの作成時か、クローズしたインデックスで指定しなさい、と公式ドキュメントにありますね。<br />
<br />
僕は1か月ごとぐらいに_reindexで内容を詰めなおすので、新しく作ったfess.yyyymmddに指定しました。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-85870635650948233222017-12-18T23:20:00.002+09:002017-12-18T23:20:28.727+09:00サムネールを一度断念しますFESSにはサイトのサムネールを表示する機能があります。<br />
<br />
サムネールはローカルのファイルシステム上に保存されますが、これが予想以上で…。<br />
まず、サムネールの総容量が100GBを超えてきます。<br />
それから、膨大な数のディレクトリと画像ファイルが生成されます。<br />
<br />
サムネールなので「そういうもの」なのですが、今はWebインデックスに注力することにします。<br />
<br />
1TBのSSDが楽々アサインできるぐらい儲かったら、再挑戦します。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-52485946893586327682017-12-17T21:06:00.002+09:002017-12-17T21:14:02.841+09:00勝手に解説:FESSの設定ファイルあまりに情報が無いので、自分で調べた物を勝手に書くことにしました。<br />
<br />
FESSの設定は、ローカルに保存されるものと、elasticsearch(以下es)に保存されるものがあります。<br />
<br />
■esに保存されるもの<br />
<br />
<ul>
<li>ユーザー情報とパスワード</li>
<li>Web、ファイルなどのクロール設定</li>
<li>形態素解析の辞書設定</li>
<li>サジェスト設定</li>
</ul>
<br />
同じクラスタに参加しているFESSは、ユーザー情報を共有しています。<br />
デフォルトのadminアカウントは、削除するか、すぐにパスワードを変更して、権限をGuestに落とすと良いでしょう。<br />
<br />
以下はローカルに保存されるものです。<br />
<br />
■メインの設定ファイル<br />
/etc/fess/fess_config.properties<br />
FESSのメイン部分です。<br />
<br />
# JVM options<br />
クローラーやSuggestインデクサの設定です。<br />
通常なら変える必要はありません。<br />
数千万URLをターゲットにするなら、クローラーの割り当てメモリを増やします。<br />
「-Xmx512m\n\」の部分です。<br />
<br />
# common<br />
FESSの基本的な挙動を設定します。<br />
特段、変える必要はないと思います。<br />
<br />
# html<br />
Webクローリングの挙動を設定します。<br />
crawler.document.html.pruned.tags<br />
で、無視するタグを追加できます。<br />
<br />
# cache<br />
キャッシュ機能の挙動を設定します。<br />
crawler.document.cache.enabled=false<br />
キャッシュ機能が不要なら、上をfalseにします。<br />
<br />
# boost<br />
検索結果の評価値を変更するときに使います。<br />
デフォルトでまずまずの結果が返ってきます。<br />
<br />
# search page<br />
ここも特に変える必要が無いのですが、thumbnailsだけ気を付けます。<br />
thumbnail.html.image.format=png<br />
サムネールの画像フォーマットを指定します。<br />
pngとjpgが指定できるのかな?調査中です。<br />
thumbnail.crawler.enabled=false<br />
サムネールが不要、または該当のサーバーで生成させないときはfalseにします。<br />
<br />
# Scheduler<br />
scheduler.target.name=<br />
複数のサーバーでFESSクラスタを作っているときに、クローラー名を設定できます。<br />
node-0とかcrawler-0とか、管理しやすい名前を付けると良いでしょう。<br />
FESSのUIの「システム」→「スケジューラー」で「対象」を指定できます。<br />
デフォルトはallで、全てのクラスタでクローラーが動作します。<br />
「Suggest Indexerはnode-2にやらせよう」みたいに、特定のノードに仕事をさせたいときは、上で設定したクローラー名を入力します。<br />
複数のノードを指定するときはコンマで区切ります。<br />
<br />
■クローラーの設定<br />
/usr/share/fess/app/WEB-INF/crawler/resources/app.xml<br />
中身はxmlです。<br />
FESSは汎用検索エンジンのため、fileTypeHelperに大量のMIMEタイプが記述されています。<br />
自分のシステムに不要な部分は、コメントアウトしても大丈夫です。<br />
<br />
/usr/share/fess/app/WEB-INF/classes/crawler/contentlength.xml<br />
クローラーで読み込む最大サイズを記述します。<br />
<br />
■サムネールの保存先<br />
/var/lib/fess/thumbnails/<br />
サムネールは、サーバーのローカルに保存されます。<br />
うっかり、大量のサムネールが生成されてストレージを圧迫することもあります。<br />
ものすごい数のディレクトリが作成されるので、削除するときは大変です。<br />
<br />
■ログの保存先<br />
/var/log/fess/<br />
ログは普通の場所に保存されます。Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-87994419074888471992017-12-16T16:16:00.003+09:002017-12-16T16:16:57.393+09:00FESSのインデックスを勝手に分類するFESSはオンラインの文献が少ないので、手探りで動かしています。<br />
何回かシステムを吹き飛ばしながら、勝手にレベル分けしてみました。<br />
勝手に書いているので、あとで怒られそうです(笑)<br />
<br />
レプリカシャードを多重化すべきもの、二重化でよいもの、飛んだら作り直せばいいや、の3つに分けてみました。<br />
<br />
■飛ばしてはいけないインデックス(多重化)<br />
<br />
<ul>
<li>fess_log</li>
<li>.configsync</li>
<li>.fess_config</li>
<li>.fess_user</li>
</ul>
<div>
<br /></div>
<br />
■飛んでもUIから復旧できるインデックス(二重化)<br />
<br />
<ul>
<li>.suggest</li>
<li>.suggest_analyzer</li>
<li>.suggest_array</li>
<li>.suggest_badword</li>
<li>.suggest_elevate</li>
</ul>
<div>
<br /></div>
<div>
■飛んでも再クロールで何とかなるインデックス</div>
<div>
<ul>
<li>fess.yyyymmdd</li>
<li>.crawler</li>
<li>fess.suggest.yyyymmddhhmmss</li>
</ul>
<div>
<br /></div>
</div>
<div>
特に「fess.suggest.yyyymmddhhmmss」は、Suggest Indexerが走るたびに生成されるので、使い捨てで構わないでしょう。</div>
<div>
「.crawler」は使い捨てと言いづらいですが、数十万件のインデックスなら再巡回すればよいかと思います。</div>
<div>
<br /></div>
<div>
メインのインデックス「fess.yyyymmdd」は難しい所です。本当は多重化したいのですが、数百GBになるので、ストレージの確保が大変ですね。</div>
<div>
僕は割り切って、「二重化+S3スナップショット」で運用しています。</div>
<div>
<br /></div>
<div>
elasticsearchベースのFESSは、最初に2基のクラスタで動かしておけば、容易に拡張できるようになっています。小さく始められるのがいいですね。</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-3647399887115669012.post-40706745088109290532017-12-15T23:59:00.000+09:002017-12-15T23:59:31.832+09:00今週も終わりました。もうすぐ今年も終わりですなんとか今週もつつがなく終えることができました。<br />
思えば、旧Nyafoo!を作ったのが半年前。<br />
ガタピシさせながらFESSを体当たりで動かして、数百GBのインデックスを安定して動かすコツがわかって来たように思います。<br />
<br />
仕事を持ちながら、elasticsearchとFESSを学ぶ事になり、時間の確保に追われがちですが、楽しいと何とかなるものですね。<br />
<br />
来年は「当たる」検索エンジンの開発を目指して頑張りたいと思います。Unknownnoreply@blogger.com