Submit Search
Upload
Oktavia全文検索エンジン - SphinxCon JP 2014
•
18 likes
•
21,116 views
Yoshiki Shibukawa
Follow
* 検索エンジンOktaviaとは * Sphinxに統合してみた
Read less
Read more
Technology
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
kk_Ataka
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
kk_Ataka
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Takeshi Komiya
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
ひとりsphinx
ひとりsphinx
(^-^) togakushi
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
Go Yamada
Recommended
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
kk_Ataka
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
kk_Ataka
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Takeshi Komiya
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
ひとりsphinx
ひとりsphinx
(^-^) togakushi
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
Go Yamada
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
Takayuki Shimizukawa
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Taku SHIMIZU
Sphinx GO!!
Sphinx GO!!
Go Yamada
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
Go Yamada
SIerでもSphinxを使いたい! 後編
SIerでもSphinxを使いたい! 後編
kk_Ataka
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
Takayuki Shimizukawa
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
Takayuki Shimizukawa
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
マークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumi
Takeshi Komiya
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015
Takayuki Shimizukawa
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Keiichiro Shikano
Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018
Takayuki Shimizukawa
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
More Related Content
What's hot
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
Takayuki Shimizukawa
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Taku SHIMIZU
Sphinx GO!!
Sphinx GO!!
Go Yamada
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
Go Yamada
SIerでもSphinxを使いたい! 後編
SIerでもSphinxを使いたい! 後編
kk_Ataka
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
Takayuki Shimizukawa
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
Takayuki Shimizukawa
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
マークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumi
Takeshi Komiya
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015
Takayuki Shimizukawa
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Keiichiro Shikano
Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018
Takayuki Shimizukawa
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
What's hot
(20)
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinx GO!!
Sphinx GO!!
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
SIerでもSphinxを使いたい! 後編
SIerでもSphinxを使いたい! 後編
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
マークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumi
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015
Sphinxの使い方事例
Sphinxの使い方事例
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018
How to spread reST and Sphinx
How to spread reST and Sphinx
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Similar to Oktavia全文検索エンジン - SphinxCon JP 2014
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
Keep a diary
Keep a diary
幸雄 村上
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
CPythonを読もう
CPythonを読もう
Akira Nonaka
Pykonjp2014
Pykonjp2014
masahitojp
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
Shoot Morii
Stapy#22 LT
Stapy#22 LT
NaoY-2501
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Takeshi Komiya
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
PyScriptの紹介
PyScriptの紹介
2bo 2bo
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Noritada Shimizu
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
Takayuki Shimizukawa
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
civicpg
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
Koji Shiraishi
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Similar to Oktavia全文検索エンジン - SphinxCon JP 2014
(20)
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
Keep a diary
Keep a diary
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
CPythonを読もう
CPythonを読もう
Pykonjp2014
Pykonjp2014
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
Stapy#22 LT
Stapy#22 LT
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
PyScriptの紹介
PyScriptの紹介
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
More from Yoshiki Shibukawa
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
Yoshiki Shibukawa
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
Yoshiki Shibukawa
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
Yoshiki Shibukawa
Mithril
Mithril
Yoshiki Shibukawa
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
Yoshiki Shibukawa
Excelの話
Excelの話
Yoshiki Shibukawa
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
アンラーニング
アンラーニング
Yoshiki Shibukawa
Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014
Yoshiki Shibukawa
大規模JavaScript開発
大規模JavaScript開発
Yoshiki Shibukawa
Xpjug基調lt2011
Xpjug基調lt2011
Yoshiki Shibukawa
Expert JavaScript Programming
Expert JavaScript Programming
Yoshiki Shibukawa
JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会
Yoshiki Shibukawa
Pomodoro technique
Pomodoro technique
Yoshiki Shibukawa
Bitbucket&mercurial
Bitbucket&mercurial
Yoshiki Shibukawa
つまみぐい勉強法。その後。
つまみぐい勉強法。その後。
Yoshiki Shibukawa
Erlang and I and Sphinx.
Erlang and I and Sphinx.
Yoshiki Shibukawa
Sphinx Tutorial at BPStudy#30
Sphinx Tutorial at BPStudy#30
Yoshiki Shibukawa
Who is the person whom the IT engineers should learn next to Alexander?
Who is the person whom the IT engineers should learn next to Alexander?
Yoshiki Shibukawa
More from Yoshiki Shibukawa
(20)
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
Mithril
Mithril
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
Excelの話
Excelの話
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
アンラーニング
アンラーニング
Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014
大規模JavaScript開発
大規模JavaScript開発
Xpjug基調lt2011
Xpjug基調lt2011
Expert JavaScript Programming
Expert JavaScript Programming
JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会
Pomodoro technique
Pomodoro technique
Bitbucket&mercurial
Bitbucket&mercurial
つまみぐい勉強法。その後。
つまみぐい勉強法。その後。
Erlang and I and Sphinx.
Erlang and I and Sphinx.
Sphinx Tutorial at BPStudy#30
Sphinx Tutorial at BPStudy#30
Who is the person whom the IT engineers should learn next to Alexander?
Who is the person whom the IT engineers should learn next to Alexander?
Recently uploaded
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(7)
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Oktavia全文検索エンジン - SphinxCon JP 2014
1.
DeNA Co, Ltd.
渋川よしき 10/26/2014 SphinxCon
2.
! 渋川よしき !
DeNAで仕事してます ! @shibu_jp (twitter) ! yoshiki.shibukawa (Facebook) ! yoshiki@shibu.jp (mail) ! 主に使う言語 ! C/C++, Python, JavaScript ! sphinx-users.jpのファウンダ ー ! サンフランシスコから帰ってき ました
3.
! 検索エンジンの基礎 !
Oktaviaの構造 ! OktaviaのAPIの使い方 ! Oktavia組み込んでみてどうよ?
4.
! 転置インデックス方式は東アジアの言語 では辛ぽよ
! FM-indexっていう、まったく違う方式が あるよ ! Oktaviaは先月のPyConの前日にアップ ロードしたよ。 ! Sphinxに組み込んでみたよ←NEW ! 昨日は遅かったけどだいぶ改善したよ
5.
6.
7.
AM.txt (0) •
Good morning • Hi PM.txt (1) • Good afternoon • Good evening • Hi
8.
AM.txt (0) •
Good morning • Hi PM.txt (1) • Good afternoon • Good evening • Hi
9.
10.
11.
! Sphinxは組み込みの検索エンジンを提供 !
転置インデックス方式 ! 転置インデックスはインデックス作成時(ビル ド時)と検索時に単語分割が必要 ! 日本語だと単語分割に巨大な辞書が必要 ! 最初のバージョンは日本語非対応 ! パッチをいくつか送ったりもしてみた ! でもまだ十分じゃない
12.
13.
! イタリアの大学教授が考案したアルゴリズム !
Paolo Ferragina ! Giovanni Manzini ! FM-indexは海外ではあまり有名ではない ! 既存のアルゴリズムと大きく違う ! 既存のアルゴリズムでも西洋の言語では十分 ! ゲノムの解析分野ではポピュラー ! このアルゴリズムを使った検索エンジンを実装し ました。
14.
Estimated Time: 15min
15.
! ウェブブラウザで動く検索エンジ !
PythonとJSX (DeNAが作ったaltJS http://jsx.github.io/)で書かれている ! FM-indexを検索のアルゴリズムとして 利用
16.
! Action Script
3っぽいaltJS ! クラス構文がある ! 型に超厳格 ! thisで悩むことが大幅に減る ! パフォーマンスの最適化が凄い
17.
18.
! FM-indexは圧縮インデックスを使った検 索アルゴリズムでは最速
! メモリに余裕がなく、インデックス配信が必 要なブラウザ上の検索に有利 ! FM-indexは単語分割を必要としない ! 日本語の検索で辞書がいらない
19.
! Oktaviaは追加のメタデータを持つ !
巨大な1つの文字列に統合されたテキストに、場所の 情報を与える Use the Force, Luke. No, I am your father. Ep4.txt Ep5.txt ! いくらでもメタデータを自由に追加できる。 ! セクション: ドキュメント区切り。名前付き。 ! ブロック: コードブロックなど。名前付き。空白箇所あり。 ! スプリッタ: 単語区切り。名前なし。大量に持てる。 ! テーブル: 行と列。RDBっぽい検索に対応。
20.
ソース 読み込み インデックス
ファイル作成 インデックス 読み込み 検索結果 表示 CLI tool Browser search program
21.
ソース 読み込み インデックス
ファイル作成 インデックス 読み込み 検索結果 表示 CLI tool Browser search program ! 1ヶ月前に完成 ! Python 2.6, 2.7, 3.3, 3.4をサポート
22.
ソース 読み込み インデックス
ファイル作成 インデックス 読み込み JSX版 検索ツール 検索結果 表示 CLI tool Browser search program PyPy ! 1ヶ月前に完成 ! Python 2.6, 2.7, 3.3, 3.4をサポート
23.
Estimated Time: 23min
24.
! Bitbucketにアップロード !
https://bitbucket.org/shibu/sphinx/ branch/feature/oktavia ! やったこと ! html_search_engineオプション追加 ! 既存実装をsearch/invertindex.pyに ! Oktavia用コード追加 ! テキストをOktaviaに流し込んでビルド
25.
! O(n) !
文書量に線形で処理時間がかかる ! JSX版 (node.js) ! Pythonドキュメント(10MB)で1分半ぐらい ! Python版 ! Sphinxのドキュメント(850KB)で30分 ! PyPyだと95秒!JIT偉い! ! Pythonドキュメントだと6時間?
26.
Python2.7 PyPy コンテンツ結合
9.43 [s] 67.51 [s] BW変換 1640.58 [s] 1.14 [s] ウェーブレットマトリックス構築 5.37 [s] 0.84 [s] 文字ごとの事前ランク計算 0.02 [s] 0.03 [s] キャッシュ計算(2%時) 70.18 [s] 21.17 [s] 合計 1725.59 [s] 90.69 [s] ! 傾向が違いすぎる・・・ ! if “pypy” in sys.executable:みたいなの必要? ! CPythonは完結データ構造のC言語実装が必要かも
27.
! str =
str + substr ! pypy: 19.19 [s], python: 2.44 [s] ! str += substr ! pypy: 0.0137 [s] python: 0.0023 [s] strって書いてあるけど文字列じゃなくて数値の配列です
28.
! _range =
getattr(__builtins__, 'xrange', range) ! pypy: 0.85 [s], python: 129.38 [s] ! pythonで、子モジュールでうまく動かない 問題(xrangeではなく、rangeが使われてた) ! _range = range if sys.version_info.major == 3 else xrange ! pypy: 0.82 [s], python: 4.85 [s]
29.
! ビット演算が重い !
はじめてのC拡張を作り始めたよ (今日の昼から) ! ひととおりPythonコードを移植して、 コンパイルは通ったけどテストがまだ ! 結果は後日
30.
! 転置インデックス方式は東アジアの言語 では辛ぽよ
! FM-indexっていう、まったく違う方式が あるよ ! Oktaviaは先月のPyConの前日にアップ ロードしたよ。 ! Sphinxに組み込んでみたよ←NEW ! 昨日は遅かったけどだいぶ改善したよ
Download now