iPhoneで全文検索してみた
OSSライブラリを活用しよう
わたなべかずひろ@kaz_29
2010年11月8日月曜日
もくじ
自己紹介
OSSライブラリをiPhone用にコンパイルする方法
実際に使ってみる
おまけ
2010年11月8日月曜日
もくじ
自己紹介
OSSライブラリをiPhone用にコンパイルする方法
実際に使ってみる
おまけ
2010年11月8日月曜日
自己紹介
わたなべかずひろ
株式会社イーツー(E2)
主にWeb系の受託開発会社
公式サイトとか携帯CMSとか作ってます
id:kaz_29(kaz29)
#iphonedev #cakephp #lithium #php
#golf #cat...
宣伝です!
2010年11月8日月曜日
NIFTY Cloud Manager
http://iphone.e-2.co.jp/
2010年11月8日月曜日
C/C++のライブラリをiPhoneに
組み込んで使っている人?
2010年11月8日月曜日
ライブラリ?
ライブラリは、汎用性の高い複数のプログラムを、再利用可
能な形でひとまとまりにしたものである。一般にライブラリ
は、それ単体ではプログラムとして動作させることはできない
ので実行ファイルではない。ライブラリは他のプログラムに
何ら...
SDKにも入ってます
libiconv.dylib ∼ 文字コード変換
libmecab_em.dylib ∼ 形態素解析エンジン(em=サブセット?)
libncurses.dylib ∼ TextUI用ライブラリ
libresolv.dyl...
先達の英知を使わない手は無い!
2010年11月8日月曜日
もくじ
自己紹介
OSSライブラリをiPhone用にコンパイルする方法
実際に使ってみる
おまけ
2010年11月8日月曜日
gccを使います
2010年11月8日月曜日
OSSプロダクトのコンパイル
tar xvfz hoge-x.y.z.tar.gz
cd hoge-x.y.z
./configure
make
make install
2010年11月8日月曜日
iPhone用にコンパイルする場合
tar xvfz hoge-x.y.z.tar.gz
cd hoge-x.y.z
./configure いろいろオプションをつける
# Makefileを編集する
make
make install
# 出来上...
全文検索エンジン
Hyper Estraierの例
http://fallabs.com/hyperestraier/
2010年11月8日月曜日
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
configureの指定
$ ./configure --prefix=/usr/local/iphone 
CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc...
Makefileの編集
# Simurator用
CC = /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2
AR = /Developer/Platf...
include,libsをコピー
2010年11月8日月曜日
ライブラリをプロジェクトに追加
device用
simulator用
2010年11月8日月曜日
コンパイルについてのまとめ
CC,CPP,ARなどの使用するツールをSDKの物に変更
CFLAGS
-arch i386(or armv6)でターゲットを指定
-isysroot で使用する rootディレクトリを指定
-I,-Lでインクルード...
物によってはもっと細かく
調整しないといけない物も...
2010年11月8日月曜日
もくじ
自己紹介
OSSライブラリをiPhone用にコンパイルする方法
実際に使ってみる
おまけ
2010年11月8日月曜日
インデックスの作成
estcmd gather -il ja -sd /hoge/index /hoge/source
2010年11月8日月曜日
検索の準備
/* dbをオープン */
if (!(db = est_db_open((const char*)cdataPath, ESTDBREADER, &ecode))){
	 return ;
}
/* 検索条件オブジェクトを生成する...
検索/結果取得
/* データベースから検索結果を得る */
result = est_db_search(db, cond, &resnum, hints);
/* ヒット数を取得 */
numHits = (rp = cbmapget(hin...
Demo
2010年11月8日月曜日
Demo Data
10,796 html files
total size 75M
index size 27M
(include compressed text)
PHP Manual
2010年11月8日月曜日
もくじ
自己紹介
OSSライブラリをiPhone用にコンパイルする方法
実際に使ってみる
おまけ
2010年11月8日月曜日
NIFTY Cloud Managerの例
SOAP認証用にOpenSSLを使用
秘密 、クライアント証明を使ってxmlに署名
ライブラリごとに使用手順がある
メモリーリークの試験は念入りに
2010年11月8日月曜日
ライセンスには注意して!
2010年11月8日月曜日
ご清聴ありがとうございました(><)
2010年11月8日月曜日
Upcoming SlideShare
Loading in …5
×

南東京I phone勉強会(stidev) 20101030

809
-1

Published on

iPhoneで全文検索

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
809
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

南東京I phone勉強会(stidev) 20101030

  1. 1. iPhoneで全文検索してみた OSSライブラリを活用しよう わたなべかずひろ@kaz_29 2010年11月8日月曜日
  2. 2. もくじ 自己紹介 OSSライブラリをiPhone用にコンパイルする方法 実際に使ってみる おまけ 2010年11月8日月曜日
  3. 3. もくじ 自己紹介 OSSライブラリをiPhone用にコンパイルする方法 実際に使ってみる おまけ 2010年11月8日月曜日
  4. 4. 自己紹介 わたなべかずひろ 株式会社イーツー(E2) 主にWeb系の受託開発会社 公式サイトとか携帯CMSとか作ってます id:kaz_29(kaz29) #iphonedev #cakephp #lithium #php #golf #cat #beer 2010年11月8日月曜日
  5. 5. 宣伝です! 2010年11月8日月曜日
  6. 6. NIFTY Cloud Manager http://iphone.e-2.co.jp/ 2010年11月8日月曜日
  7. 7. C/C++のライブラリをiPhoneに 組み込んで使っている人? 2010年11月8日月曜日
  8. 8. ライブラリ? ライブラリは、汎用性の高い複数のプログラムを、再利用可 能な形でひとまとまりにしたものである。一般にライブラリ は、それ単体ではプログラムとして動作させることはできない ので実行ファイルではない。ライブラリは他のプログラムに 何らかの機能を提供するコードの集まりと言うことができ る。ソースコードの場合と、オブジェクトコード、あるいは専 用の形式を用いる場合とがある。たとえば、UNIXのライブラ リはオブジェクトコードをarと呼ばれるアーカイバでひとまと めにして利用する。 http://jp.wikipedia.org/wiki/ライブラリ 2010年11月8日月曜日
  9. 9. SDKにも入ってます libiconv.dylib ∼ 文字コード変換 libmecab_em.dylib ∼ 形態素解析エンジン(em=サブセット?) libncurses.dylib ∼ TextUI用ライブラリ libresolv.dylib ∼ DNSリゾルバ libsqlite3.dylib ∼ SQLiteライブラリ libxml2.dylib ∼ XMLパーサー 2010年11月8日月曜日
  10. 10. 先達の英知を使わない手は無い! 2010年11月8日月曜日
  11. 11. もくじ 自己紹介 OSSライブラリをiPhone用にコンパイルする方法 実際に使ってみる おまけ 2010年11月8日月曜日
  12. 12. gccを使います 2010年11月8日月曜日
  13. 13. OSSプロダクトのコンパイル tar xvfz hoge-x.y.z.tar.gz cd hoge-x.y.z ./configure make make install 2010年11月8日月曜日
  14. 14. iPhone用にコンパイルする場合 tar xvfz hoge-x.y.z.tar.gz cd hoge-x.y.z ./configure いろいろオプションをつける # Makefileを編集する make make install # 出来上がったライブラリとヘッダーをプロジェクトに追加 2010年11月8日月曜日
  15. 15. 全文検索エンジン Hyper Estraierの例 http://fallabs.com/hyperestraier/ 2010年11月8日月曜日
  16. 16. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar 2010年11月8日月曜日
  17. 17. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar インストール先を指定 2010年11月8日月曜日
  18. 18. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar Cコンパイラを指定 2010年11月8日月曜日
  19. 19. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar Cコンパイル設定を指定 2010年11月8日月曜日
  20. 20. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar C++コンパイラを指定 2010年11月8日月曜日
  21. 21. configureの指定 $ ./configure --prefix=/usr/local/iphone CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 CFLAGS=-arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk -I/usr/local/iphone/include -L/usr/local/iphone/lib CPP=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 AR=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar アーカイブツールを指定 2010年11月8日月曜日
  22. 22. Makefileの編集 # Simurator用 CC = /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 AR = /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar CFLAGS = -arch i386 -Wall -fPIC -fsigned-char -O3 -fomit-frame-pointer  -fforce-addr # Device用 CC = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 AR = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar CFLAGS = -isysroot /Developer-SDK402/Platforms/iPhoneOS.platform/Developer/ SDKs/iPhoneOS4.0.sdk -arch armv6 -Wall -fPIC -fsigned-char -O3 -fomit-frame-pointer -fforce-addr 2010年11月8日月曜日
  23. 23. include,libsをコピー 2010年11月8日月曜日
  24. 24. ライブラリをプロジェクトに追加 device用 simulator用 2010年11月8日月曜日
  25. 25. コンパイルについてのまとめ CC,CPP,ARなどの使用するツールをSDKの物に変更 CFLAGS -arch i386(or armv6)でターゲットを指定 -isysroot で使用する rootディレクトリを指定 -I,-Lでインクルードパス、ライブラリパスを追加 2010年11月8日月曜日
  26. 26. 物によってはもっと細かく 調整しないといけない物も... 2010年11月8日月曜日
  27. 27. もくじ 自己紹介 OSSライブラリをiPhone用にコンパイルする方法 実際に使ってみる おまけ 2010年11月8日月曜日
  28. 28. インデックスの作成 estcmd gather -il ja -sd /hoge/index /hoge/source 2010年11月8日月曜日
  29. 29. 検索の準備 /* dbをオープン */ if (!(db = est_db_open((const char*)cdataPath, ESTDBREADER, &ecode))){ return ; } /* 検索条件オブジェクトを生成する */ cond = est_cond_new(); NSInteger length = sizeof(searchkey); /* 検索条件オブジェクトに検索式を設定する */ [searchBar.text getCString:(char*)searchkey maxLength:length encoding:NSUTF8StringEncoding]; est_cond_set_phrase(cond, searchkey); CBMAP *hints; hints = cbmapopenex(MINIBNUM); /* 実際に取得する数を設定 */ est_cond_set_max(cond, 30) ; 2010年11月8日月曜日
  30. 30. 検索/結果取得 /* データベースから検索結果を得る */ result = est_db_search(db, cond, &resnum, hints); /* ヒット数を取得 */ numHits = (rp = cbmapget(hints, "", 0, NULL)) ? atoi(rp) : resnum; /* 各該当文書を取得して表示する */ for(i = 0; i < resnum; i++){ /* 文書オブジェクトを取得する */ if(!(doc = est_db_get_doc(db, result[i], 0))) continue; if((tmptitle = est_doc_attr(doc, "@title")) != NULL) { NSLog(@"Title: %sn", tmptitle); } } 2010年11月8日月曜日
  31. 31. Demo 2010年11月8日月曜日
  32. 32. Demo Data 10,796 html files total size 75M index size 27M (include compressed text) PHP Manual 2010年11月8日月曜日
  33. 33. もくじ 自己紹介 OSSライブラリをiPhone用にコンパイルする方法 実際に使ってみる おまけ 2010年11月8日月曜日
  34. 34. NIFTY Cloud Managerの例 SOAP認証用にOpenSSLを使用 秘密 、クライアント証明を使ってxmlに署名 ライブラリごとに使用手順がある メモリーリークの試験は念入りに 2010年11月8日月曜日
  35. 35. ライセンスには注意して! 2010年11月8日月曜日
  36. 36. ご清聴ありがとうございました(><) 2010年11月8日月曜日
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×