NP_cles()

12345678910111213141516171819202122232425262728293031
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · | Next»

N-gramを使えば形態素解析がなくても、MySQLのfulltextインデックスを使った全文検索ができるよという話。文章をN-gramに変換するためのphpモジュールもついているので、すぐに導入できます。

MySQL FULLTEXT Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボ

前回の記事 で触れた、FULLTEXTとNgramを駆使した日本語全文検索についてまとめてみました。パフォーマンスや導入方法の解説にあわせて、専用のNgramテキストを生成する php/perl モジュールも公開していますので、使いどころを把握した上で、気軽に試してみてくださいませ。

確かにこの方法なら簡単だし、特に追加で必要になるものもないのでNucleusの標準の検索機能にこの機能を組み込んでしまうというのはいいかもしれない*1なぁ。

投稿者:hsur 投稿日時:2007-10-19 - 19:48
カテゴリー:Programming -  - トラックバック(0 -

正式にパッケージングしたりドキュメントを整備いる暇がないのでNP_BBAuthとNP_MetaTags /w AsyncHTTPは僕のプライベートリポジトリからNucleusCMS JapanのCVSに移しておきました。

興味のある方はCVSから落としてみてください。

投稿者:hsur 投稿日時:2007-09-23 - 04:23
カテゴリー:Programming -  - トラックバック(0 -

ここで触れたとおりUSのYahoo!IDにしか対応していませんが、Yahoo!アカウントでユーザーを認証するNP_BBAuthをサクッと作ってみました。欲求不満のリバウンドなのか本気を出してみたら3時間くらいでできちゃいました。中身はNP_HatenaAuthと兄弟という感じです。

このAPIの雑感

作ってみた雑感ですが、この認証APIはHatena認証APIやTypeKeyとはちょっと違っていて認証したユーザーの生のアカウント名(つまりYahoo!IDのこと)が通知されてきません通知されてくるのはアカウントのハッシュ値だけなので、これだけではYahoo!のユーザーということしかわからないようになっています。

つまり認証結果のみを純粋に返すだけで、ユーザーに関する個人情報が一切取得できないような割り切ったAPIです。シングルサインオンとして使うのであれば、別途自分のDBにアカウントのハッシュ値と紐付ける形で何らかのプロファイルを持つ必要がありそうです。Buzzurlもアカウント作成時にYahooで認証した後に、Buzzurl側にユーザー名やメールアドレスを入力する必要がありますが、これもこのような事情があるためであると推測されます。


[続きを読む]
投稿者:hsur 投稿日時:2007-09-12 - 02:32
カテゴリー:Programming -  - トラックバック(0 -

kimitakeさんにNP_HatenaAuthが動かないという連絡をもらって、いろいろ追跡したら最後にallow_url_fopenがoffだったという結論にたどり着きました。セキュリティ的にはデフォルトはoffである方が好ましいというのはわかるのですが、この問題は結構根が深そうです。

allow_url_fopen - yohgaki

驚いたことにPHP 4.3.4からphp.iniからしかこの設定を変更できなくなってしまいました。(INI_SYSTEMの設定項目になった)誰かがセキュリティ強化を目的として変更したのだとは思いますが、セキュリティも強化できず、有用なリモートファイルアクセス機能も使えなくする非常に拙い変更です。

allow_url_fopenってphp.iniからしかこの設定を変更できないんですね。実は自作のプラグインでもallow_url_fopenに頼ってしまっている部分が結構あってallow_url_fopenがoffだとうまく動かなかったりするんですが、その一方で自前でHTTPの処理をしている部分*1もあるような状態でちょっと統一感がないような状態になってしまっているのですが、この辺りの処理を統一したほうが幸せになれそうです。ということで今後のtodoにいれておきます。

投稿者:hsur 投稿日時:2007-07-25 - 07:31
カテゴリー:Programming -  - トラックバック(0 -

コメント時のユーザー認証用にNP_TypeKeyやNP_HatenaAuthをリリースしていますが、この機能をNucleusのアカウント情報に結びつけてNucleusの標準認証の代わりに使えないかなと思って少しいじってみたら意外とすぐにできてしまいました

仕様としては、メンバーオプションを1つ追加して関連付けるはてなアカウントもしくはTypeKeyアカウントの名前が入力できるようにしてあります。結びつけるアカウントはカンマ区切りで複数指定、もしくは「*」で全てのを指定できるようになっています。複数のアカウントで同じアカウントと結び付けた場合にはメンバーidの若い方が優先ということで処理しています。

この機能はサイトのポリシーにかかわると思うので、プラグインオプションにこの機能を有効にするかどうかについての全体の設定もできるようにしておきました。


[続きを読む]
投稿者:hsur 投稿日時:2007-07-21 - 23:51
カテゴリー:Programming - /  - トラックバック(0 -

NP_MetaTagsで任意のテキストから特徴語を抽出できるようになったので、この特徴語を使ってNP_Relatedの関連検索のキーワードとしてこの特徴語を使うように改造してみます。

まず、NP_Relatedの改造前の動作ロジックですが、キーワードをエントリ追加(変更)時に手動で入力できるようになっており、基本的にはそのキーワードで検索を行います。なにもキーワードを入力していない場合にはエントリのタイトルを使って検索を行うようになっています。今回は何もキーワードを入力していない場合、エントリのタイトルの代わりに特徴語を使うように改造してみます。このようにしたのは、手動で入力しているキーワードと共存をさせるためです。

実際の動作については下記の「こんな記事もあります」のブロックでご覧いただけます。特徴語検出自体はそんなに大した機能ではないですが、こうやって他のサービス(プラグイン)のバックエンドとしてはいろいろと応用しがいがありますね。


[続きを読む]
投稿者:hsur 投稿日時:2007-07-08 - 20:47
カテゴリー:Programming -  - トラックバック(0 -

「○○というエントリに違う内容が表示されているのですが」という問い合わせをもらって気づいたのですが、NP_Cacheにどこかバグがあり違うページの内容でキャッシュがおこなわれてしまうことがあるようです。

だからといって負荷の問題でNP_Cacheは外せないので少しロジックを検証してみたいと思います。

投稿者:hsur 投稿日時:2007-07-04 - 19:52
カテゴリー:Programming -  - トラックバック(0 -

以前にちょっと調べて作りかけだったreCAPTCHAプラグインを完成させてみました。これは自分のサーバー上でGDを使わないのでGDが使えないサーバでも利用することができますし、GDが使えるサーバでも負荷の軽減になります。

で、一人で喜んでいたんですが、そこに罠が待っていました。

reCAPTCHA Resourcesを見ると先日まで存在していなかったNucleus用のプラグインがいつのまにかリストされていました。混同しないように自分のプラグインはNP_ReCaptchaJPとしましたが、もう公開する必要はないかもしれませんね。ちょっとショックです。。。。。。。

いちおうAkismetの時のように導入チュートリアルとか書くと嬉しい人とか多いのかなぁ。

投稿者:hsur 投稿日時:2007-06-19 - 23:46
カテゴリー:Programming -  - トラックバック(0 -

オリジナルの2.0.3と2.1.0のdiffを取ってみて詳細がわかってきました。
細かい部分としてはmysql_query()がsql_query()になっていたりとか、ちゃんとしたUAを名乗るようになっていたりとかするみたいです。

Nucleus Support :: View topic - NP_TrackBack 2.1.0

This new version added the following functions:
- Added delete all blocked trackback function in admin menu
- Harden tb URL, add tbkey which timeout and ignore unknown/expired tb ping (likely spams), the key valid for ~ 3 hours
- Fixed send ping blocked by NP_BadBehavior
- Re-instate ping form for item to allow user to manually ing another post (which url, etc are automactically filled)

前回良くわからなかった最後のヤツはトラックバックの手動送信用フォーム(自分のサイト→他のサイト)機能のようです。

日本語版ではトラックバックの手動送信はすでに<%TrackBack(sendpinglink)%>でサポートしているのでこの機能の導入は必要なさそうです。オリジナル版では1.x系の頃のように送信画面を別途追加してしまったようなのですが、また、日本語版では管理画面にある手動送信フォームを再利用するようになっているので、こちらのほうがちょっとスマート*1です。


[続きを読む]
投稿者:hsur 投稿日時:2007-05-23 - 21:56
カテゴリー:Programming -  - トラックバック(0 -
NP_TrackBack jp10 beta - NP_TrackBackに一括削除を実装

Rico.jsがバージョンアップしていたのですが、これを使うとNP_TrackBackに一括処理が追加できそうだったのでちょっとやってみたらすぐにできてしまいました。自画自賛でちょっとアレですが、かなり使いやすいです。ちょっと思ったんですが、多分これと同じようにコメント管理なんかができるとかなり便利かもしれません。

まだ実装とかメッセージはかなりやっつけなのでもう少し整理してから公開します。あとやりたいのは検索対応かなぁ。2.1.0の差分取り込みもしないといけませんね。


[続きを読む]
投稿者:hsur 投稿日時:2007-05-20 - 21:22
カテゴリー:Programming -  - トラックバック(default -
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · | Next»