2005年07月29日

お知らせメールを受け取った方のご意見窓口 ~2005・夏~

メール送信解除依頼は、絶対にここに書き込まないでください。
こちらに書き込まれた送信解除依頼については対応しません。

Posted by Yappo at 15:06 | Comments (0) | TrackBack

モバイル版サイト内検索の件

昨日のリリースが空振り(追記:あくまで自分自身の感触)だったりするけど、けなげになっている今日この頃ですが

はてなブックマークより

『[モバイル][mt4i]mt4iにくっつけてサイト内検索できんかなと思ったができないんだろうな。』

やっぱり需要あるのね。。。

実は昔にやってたりするですが
http://i.yappo.jp/docs/press/2000-10-12/
今の時代に即した物で作ってみるか
ちょっと検討する方向で

でも実際問題gooとかgoogleがすぐ提供できるはずなのだが、中の人どうでしょう?

Posted by Yappo at 14:21 | Comments (0) | TrackBack

2005年07月28日

【プレスリリース】モバイル検索エンジンの「iYappo」が検索ASPおよびAPIを無償提供開始

報道関係者各位
                                2005/07/28
                          検索エンジン Yappo

=====================================
モバイル検索エンジンの「iYappo」がモバイル検索ASPおよびAPIを無償提供開始
=====================================


■概要について
モバイル検索エンジン「iYappo」では、プログラム技術を持ち合わせていないモバ
イルサイトのオーナー向けに、簡単に独自デザインの検索エンジンを構築できる検
索システムのASP提供を開始しました。

また、プログラミングの技術を有しているモバイルサイトのオーナーに対してはWeb
APIという形式を取り、サーバ間通信により「iYappo」の検索結果にアクセスが可能
になる検索APIも同時に提供いたします。

これらを「Yappo Web Service」(略称 YWS)として無償で提供いたします。

本サービスの提供URLは下記になります。
http://yws.yappo.jp/

1.検索ASPの詳細について
従来より、検索サービス提供各社は、モバイルサイトオーナーが所有するサイト内
に、各社の検索窓を設置させることで、サイト検索を行なえる仕組みを提供してお
ります。

ただし、一部機能において、下記のようにモバイルサイトオーナーにとって自由度
の低い部分がありました。

・検索窓から検索すると、検索結果は、各検索サービス会社の画面になってしまう
・検索結果から自分のサイトに戻ってくる方法が無い
(ブラウザの機能により戻ることは可能だが、検索結果に戻る為のナビゲーションが
無い等)

「iYappo」では、上記の点を解消し、自由度の高いモバイル検索サービスをサイト
オーナーの方々に、お手軽・お気軽にご利用いただけるよう、検索ASPの提供を開始
しました。


●検索ASPの主な特長について

・検索結果に、検索ASPを利用しているサイトへの「戻る」リンクの表示が可能
・検索結果に、各サイト独自のロゴ画像が配置可能
・検索結果の配色を自由に設定可能

検索システムは「iYappo」と同等のものを利用することで、手軽に独自検索システ
ムの構築が可能となります。

検索ASPの利用例は、下記URLをご覧ください。
http://i.yappo.jp/docs/press/2005-07-28/yws.jpg


2.検索APIの詳細について
検索APIは、プログラム技術を持ち合わせたサイトオーナー向けのサービスとなって
おり、XML、RSS等の取り扱いの経験がある方であれば、簡単に検索APIを利用する事
が可能になるのと同時に、「iYappo」の検索結果データを利用し、検索結果画面を
より柔軟にカスタマイズする事が可能となります。

詳しくは、下記URLをご覧ください。
http://yws.yappo.jp/api


■その他
本サービスは、検索結果内に、サーチテリア株式会社が提供する検索連動型広告
を導入することにより、無償提供が可能となっております。

サーチテリア株式会社に関する詳細な情報は、下記URLをご覧ください。
http://www.searchteria.co.jp/

現在までも法人向けにiYappoの検索リソースの提供を柔軟に行なっておりましたが
YWS開始後も、法人向けに関してはより柔軟な提供を行なっていきます。


■iYappoについて
iYappoとは、1999年7月20日に正式公開をした、携帯電話向けサイトを集めた検索
エンジンです。

登録サイトの内容やサイト構成を元にし、有用性のあるサイトを自動的にランキン
グしてそのランキングのデータを検索結果に反映させて、携帯ユーザーのニーズに
近いサイトを多く提供する事を特長としたモバイル検索エンジンです。

iモードに準拠した携帯端末全てに対応しており、約8万5千サイト以上の登録が
あります。iYappoの検索対象データは、この登録サイトが所有する重要なURLの中
約45万URL以上のデータからの検索が可能となっております。

これにより、より重要度が高いコンテンツを高速に検索することが可能になります。

--------------------------------------------------------------------------
本プレスリリースに関するお問い合わせ先
配信元 : Yappo http://i.yappo.jp/
リリース : http://blog.yappo.jp/yappo/archives/000271.html
運営者 : 大沢 和宏
E-MAIL : press@yappo.ne.jp
電話番号 : 090-7200-8668
URL : http://i.yappo.jp/

※過去のプレスリリース一覧: http://i.yappo.jp/docs/press/

Posted by Yappo at 13:16 | Comments (9) | TrackBack

2005年07月22日

iYappoが7年目突入の件について

7/22だと思ってたら7/20でしたorz
Web APIとかは週末にリリース予定です。

Posted by Yappo at 12:20 | Comments (0) | TrackBack

2005年07月13日

Google Maps APIでつながる世界

Google Maps APIを使ったphotos@Yappo mapsに色々機能を付け足してみました。

Nakamura-KU ADDICTさんのinvGeocoder WebServiceを使って、表示中のMapの中心座標に位置する住所表示を行ったり
Yahoo!MAPSへのリンクをつけて、Google Mapsで対応していない日本地図を簡単に見れるようにしたり。
Ajaxを使って、他人が表示している座標をリアルタイムで表示するLiveモードをつけたりしました。
Google Mapsの座標が日本測地系になっていたので、Location::GeoToolを使ってサーバ側で座標変換を行ったりしています。

Google Maps APIが出たおかげで、普通の人がなかなか活用できなかったGPSメールを簡単に貼り付けたり。
GPS座標の住所変換も、簡単にGoogle Maps APIと繋げて活用できたり。
はてなのようなサービスがキーワードなどで座標対応するようになって、その座標つきキーワードをRESTで簡単に取得して自分の所のGoogle Mapsと簡単に組み合わせられたり。
地図サービスへのリンクを行う事で、楽に地図を探せるアプリケーションが簡単に作れたり。
Liveモードのような物を作って、他人の興味のあるエリアを簡単に発見できたり。

と、Google Maps API公開のおかげで、手を出しにくかった位置情報が簡単に扱えて
今まで単体で機能していた位置情報サービスが、Google Mapsを中心に急速に繋がっていく様は面白い感じですね。

これがWeb2.0の世界の入り口って所なんでしょうか。

追記:
一晩明けたら本家に地図搭載wwwwwwwwww
おかげでネタ増えたですが、タイミングワルス

Posted by Yappo at 20:36 | Comments (3) | TrackBack

2005年07月11日

はてなマップのデータを引っこ抜いて、自分のマップに貼り付ける

google maps APIに乗っけるデータが、自分のところだけだとどうしても寂しいので
はてなマップで使っているデータを表示するようにしてみました。
浜松町周辺

はてなマップはAjaxで座標系データを取得していて
現在表示している座標内のデータのみを取得しています。
せっかく外部サイトで利用しやすい形になっているから、つかってみちゃえとw

専用のアイコン作って、はてなデータをわかりやすくしないとなぁ。。。

Posted by Yappo at 10:46 | Comments (0) | TrackBack

2005年07月09日

Google Maps APIおもすれー

日本のサービスでも組み込んでいる所が増えていて流行の兆しですが。
ちょうど暖めていたサービスとの相性が良いので使ってみることにした。
ドキュメント読むのがだるくてよく読んでないけど遊んでみた

AUのGPS機能が返す座標の度数変換をしなければいけない事が分からずちょっとはまった。

Posted by Yappo at 14:27 | Comments (0) | TrackBack

2005年07月03日

ダース



ほすい


そうだ、はてなの中之人が買えばいいんだ

Posted by Yappo at 15:55 | Comments (0) | TrackBack

トラフィック増加中?

ここ最近、iYappoのトラフィックが右肩上がりになってきている。
おかげで、甘めに設定していたapacheの設定が災いして大変な事になりかけてた。
さくっと締めて普通に戻したけど。

原因と傾向を掴むためにも、アクセス解析ツール色々書くかな。

Posted by Yappo at 00:36 | Comments (0) | TrackBack

2005年07月01日

Senna+MySQLをより超高速にするパッチ

当者比50~100倍程のスピードアップ(クエリ/テーブル構造による)のパッチです。

MySQL(特にFullText boolean mode)のlimitの実装はある意味効率の悪い実装になっている。
例えば、limit 100000,100といったクエリを投げると100100行分のデータをディスクから読み込むのである。
まぁ、whereなどの条件に一致する100000件のレコードを先に確定させなければいけない訳で当然といえば当然である。
order byとか使ってたらなおさら。
無論SQL_CALC_FOUND_ROWSなんか使ってると全件確定させなきゃいけないから大変。
当然これらはindexを使用していない時の挙動だと思う。
indexのみが使われたクエリの挙動は未確認だけど。

さて、ここから本題。


では、Senna+MySQLの挙動はどうなっているのか?(in boolean mode)
例え、select * from table where match(field) against('key' in boolean mode) limit 10000,10といったクエリを投げると、必ず10010件の行を読むのである。
limitで絞って高速だぜYeha!なんて思っても思い通りに行かないのである。
いくら、and/orなどの演算子の結合処理などをMySQL側にやらせているからといってあんまり。
各単語のポジションリストだけ見れば、行データを見なくても一致行を確定できるのに。
そりゃ、order byしちゃったり他のフィールドを見たりしたら駄目だけど
見る必要も無いデータを読むなんて無駄杉。

って事で、in boolean mode限定で高速モードを実装しました。
意図した数の行しかディスクアクセスしなくなります。
ヒット件数が多いクエリの

select * from table where match(field) against('+key' in boolean mode) limit 1000, 10;


select sql_calc_found_rows * from table where match(field) against('+key' in boolean mode) limit 10;

等に効果があります。
whereにmatch以外を用いたり、order byしたり、group byしたり、havingした場合の障害には、さらに責任持ちません。

sen_skipmode_setというMySQLネイティブな関数を追加してます。
この関数に値を渡すことによりスキップモードが有効になります。

select sen_skipmode_set(1)

で、スキップモードon
select sen_skipmode_set(0)

で、スキップモードoffです。

使用例は


select sen_skipmode_set(1);
select sql_calc_found_rows title, comment from sites where match(keywords) against('+key +key2' in boolean mode) limit 10000, 100;
select sen_skipmode_set(0);
select found_rows();

って感じでしょうね。


実装方法は、pthread_key_*系のスレッド内のグローバル変数を使って簡潔に仕上げてます。
sen_skipmode_setでの値をグローバル領域に保存しつつ、sql_select.cc内にて、limitの値をグローバル領域に保存して
ft_boolean_search.cでは受け取った値を元にディスクアクセスするかどうかを決定する感じです。

in boolean modeじゃ無い方には対応してません。

現在は、linux上のMySQL4.0.24のみでの動作を確認中むしろ問題なく動いています。
インストールの仕方は、素のMySQLソースにパッチしてください。
mysql-4.0.24.senna.sen_skipmode_set.diff

7/1 17:40追記:
やってしまった。。。
このパッチが

+              share->keyinfo[i].senna = sen_index_create(buf, sizeof(my_off_t), SEN_INDEX_NORMALIZE | SEN_INDEX_NGRAM | SEN_INDEX_SPLIT_ALPHA | SEN_INDEX_SPLIT_DIGIT | SEN_INDEX_SPLIT_SYMBOL, 0, sen_enc_default);

になってた。。。
要するにMeCabを使わずにN-Gramでindexを作るモードです。
iYappoでの導入のために、Sennaのpatchファイルをいじっていたのを忘れてました。。。
いじくってるのはここだけなので、あとは大丈夫です。
問題の行を
+              share->keyinfo[i].senna = sen_index_create(buf, sizeof(my_off_t), SEN_INDEX_NORMALIZE, 0, sen_enc_default);

に書き換えてアップしなおしています。
もし17時40分以前のパッチをお使いの方がいらしたら、再度作り直しをお願いします。

しかもsennaのsvnに反映された後に思い出すなんてタイミング悪すぎる。
ほんとごめんなさい。

Posted by Yappo at 05:02 | Comments (0) | TrackBack