Slide 1

Slide 1 text

OSPPOHBͰͭ͘Δ HSPPOHBશจݕࡧ "1*αʔό औక໾$50ઃᒜ༸࣐ ZPKJTIJEBSB!FOJTIJUFDIDPN !EBSBTIJ — nroonga: a library for building groonga powered nodes. ೥݄೔౦ژ/PEFֶԂݶ໨-JHIUOJOH5BML

Slide 2

Slide 2 text

ͩ͠ΒΑ͏͡ ઃᒜ༸࣐

Slide 3

Slide 3 text

๺ւಓ͸ࡳຈ͔Βདྷ·ͨ͠ɻ

Slide 4

Slide 4 text

ΦʔϓϯιʔεΧϯϑΝϨϯε)PLLBJEPʹڠࢍ͠·͢ $44/JUFJO4FPVM 7PMʹͯ౰ࣾϝϯόʔ͕ൃද͠·͢

Slide 5

Slide 5 text

“সإͷͨ͑ͳ͍”

Slide 6

Slide 6 text

αΠϯΠϯ &OHMJTIc೔ຊޠ ೔ຊ3VCZձٞʹ͍ͭͯ νέοτߪೖɾ֤छ͓ਃࠐΈ ࢀՃऀ޲͚৘ใ εϙϯαʔ 2011-07-19 5XJUUFSSVCZLBJHJ RubyKaigi2008-2011 ࣮ߦҕһ

Slide 7

Slide 7 text

Information: RubyKaigi Nikki (RSS) Tags: For Twitter: #sprk2012 For Blogs, Flickr: sappororubykaigi2012 Previous: Sapporo RubyKaigi03 ˜4BQQPSP3VCZ,BJHJ5FBN

Slide 8

Slide 8 text

OSPPOHBͰͭ͘Δ HSPPOHBશจݕࡧ "1*αʔό औక໾$50ઃᒜ༸࣐ ZPKJTIJEBSB!FOJTIJUFDIDPN !EBSBTIJ — nroonga: a library for building groonga powered nodes. ೥݄೔౦ژOPEFֶԂݶ໨-JHIUOJOH5BML

Slide 9

Slide 9 text

An open-source fulltext search engine and column store

Slide 10

Slide 10 text

An open-source fulltext search engine and column store ߴ଎ͳશจݕࡧ ΧϥϜετΞ ಈతࡧҾߏங (ϦΞϧλΠϜݕࡧ!) ߴ଎ͳϑΝηοτݕࡧ Ң౓ܦ౓ݕࡧ ...

Slide 11

Slide 11 text

What’s nroonga?

Slide 12

Slide 12 text

meets Node.js is an official trademark of Joyent. This image is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

Slide 13

Slide 13 text

ͨͱ͑͹

Slide 14

Slide 14 text

ݕࡧόοΫΤϯυͰ ෳࡶͳूܭॲཧΛ͍ͨ͠ͱ͖

Slide 15

Slide 15 text

AMQP ܦ༝Ͱ Redis Pub/Sub ܦ༝Ͱ ZeroMQ ܦ༝Ͱ WebSocket ܦ༝Ͱ ...Ͱ ΠϯσΫε͍ͨ͠ͱ͖

Slide 16

Slide 16 text

ݕࡧAPIαʔόʹ ೝূΛ͔͚͍ͨͱ͖

Slide 17

Slide 17 text

ΞϓϦέʔγϣϯʹಛԽͨ͠ γϯϓϧͳAPIΛఏڙ͢Δ ݕࡧϊʔυΛͭ͘ΕΔͱḿΔ

Slide 18

Slide 18 text

ΞϓϦέʔγϣϯʹಛԽͨ͠ γϯϓϧͳAPIΛఏڙ͢Δ ݕࡧϊʔυΛͭ͘ΕΔͱḿΔ

Slide 19

Slide 19 text

ݕࡧϊʔυ?

Slide 20

Slide 20 text

ݕࡧnode!

Slide 21

Slide 21 text

meets Node.js is an official trademark of Joyent. This image is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.”

Slide 22

Slide 22 text

A library for building groonga powered nodes.

Slide 23

Slide 23 text

var nroonga = require('nroonga'); var db = new nroonga.Database('database'); // Synchronous console.log(db.commandSync('status')); // Asynchronous db.command('status', function(error, data) { console.log(data); }); ೚ҙͷ groonga ίϚϯυΛ࣮ߦ database Λ༻ҙ

Slide 24

Slide 24 text

db.commandSync('table_create', { name: 'tweets', flags: 'TABLE_HASH_KEY', key_type: 'ShortText', }); db.commandSync('column_create', { table: 'tweets', name: 'text', flags: 'COLUMN_SCALAR', type: 'ShortText' }); ྫ) table ͱ column Λ࡞੒

Slide 25

Slide 25 text

commit 55ba20ffa7 Latest commit to the master branch do not repat links darashi authored 19 days ago Tags Downloads nroonga nroonga / / nroonga nroonga Files Commits Branches 13 1 Admin Admin Unwatch Unwatch Fork Fork Pull Request Pull Request Code Code Network Network Pull Requests Pull Requests Issues Issues Wiki Wiki Stats & Graphs Stats & Graphs 0 0 1 1 2 2 SSH SSH HTTP HTTP Git Read-Only Git Read-Only [email protected]:nroonga/nroonga.git Read+Write access A library for building groonga powered nodes — Read more http://nroonga.github.com  Clone in Mac  Clone in Mac ZIP ZIP 6 master master branch: branch: 1 history history name name age age message message examples 3 months ago extract examples/server.coffee as nroonga-httpd [darashi] lib 3 months ago use messagepack as output format [darashi] license 4 months ago add license [darashi] src 3 months ago use messagepack as output format [darashi] test 5 months ago load data with one command call [darashi] nroonga / Explore Explore Gist Gist Blog Blog Help Help darashi darashi Search… 2 https://github.com/nroonga/nroonga

Slide 26

Slide 26 text

ඇಉظAPIΛ࢖͑͹ ಉ࣌ʹΫΤϦ͕૸Δ

Slide 27

Slide 27 text

௚ྻ࣮ߦ෦෼΋ cluster Λ࢖͏ͱ ϚϧνίΞͰಈ࡞

Slide 28

Slide 28 text

groonga ͷ࢖͍ํ͸ http://groonga.org/docs/ ͳͲΛࢀর͍ͩ͘͞

Slide 29

Slide 29 text

nroonga ͕ αϙʔτ͍ͯ͠Δͷ͸ “ΫΤϦAPI” ͷΈ

Slide 30

Slide 30 text

εϐʔυͰ͸ groonga αʔόʹ͸ఢΘͳ͍ ><

Slide 31

Slide 31 text

Ұํ...

Slide 32

Slide 32 text

ଞͷ෦෼ͷ ΦʔόϔουʹΑͬͯ nroonga ͷΦʔόϔου͕ ແࢹग़དྷΔ৔߹΋͋Δ

Slide 33

Slide 33 text

English | Japanese | mobile buzztter Snapshoot the tweets! iPhone ΁ͷ push Λࢼݧӡ༻தͰ͢ɻ boxcar ΛΠϯετʔϧ͠ɺbuzztter Λ௥Ճ͍ͯͩ͘͠͞ ( PC / iPhone )ɻ ࠶Քಇ ޷͖ͳͷΛҰਓબͿΜ͡Ό #͜ͷ #΄͍͠ύϯπڣΜͰ ݪൃ Ֆݟ શһ ϑΥϩʔ͢Δ *ƅ˜ƅ* ਓRT #1൪ಡΈͨ͘ͳ͍ϥϊϕλΠτϧߟ... ίφϯ RTͨ͠ਓ ਓશһ ϑΥϩʔ #RTͨ͠ 4݄ ૬༿ ͜ͷը૾ ͨΒRT ύϯμ ´Д` Λߋ৽͠·ͨ͠ ͨ·͝ य़य़य़य़य़य़य़य़य़य़ य़य़य़य़य़य़य़... ;Θ;Θ Ψϯό ఆظ ࢟ͷ ϗϞ ෱ౡ Ί͠ ಈ෺ wwwwww ΊͬͪΌ ´ɾωɾʆ ؾܰʹ ʀ´Д ༳ Ε ஥ྑ͘ ͷ΍ͭ ·͔͡ ៉ྷ ָ͔ͬͨ͠ ʈωʈ ՄѪ͍ ֦ࢄر๬ ༏͍͠ وํ ͔࣌Β ϗϫΠτ தଜ ΍͹͍ ͝൧ ઌഐ ΄Μ· ࢥͬͯΔ ʄƅ ͘Μͷ ^q^ ƅ∀ƅ ૬ޓ λά ͓લ ͲΕ όΠτ ༦൧ ձ͍͍ͨ ը૾Λ ·Ͱʹ ͩΑʔ Πέϝϯ ݕࡧ ͜Μͳݕࡧ͸͍͔͕Ͱ͔͢ʁ ࠶Քಇ OR ޷͖ͳͷΛҰਓબͿΜ͡Ό OR #͜ͷ buzz-phraseΛؚΉ࠷৽ͷൃݴ mutuki_rei ΪϧΨϝογϡͷࠇϏΩχɾɾɾ^̿^ɹ#΄͍͠ύϯπڣΜͰtlΛύϯπͰຒΊਚͦ͘͏ͥ (1෼Ҏ಺લ) kuroroMMC @hosakanobuto ඇৗʹྑ͍จষͰ͕͢ɺޡࣈΛݟ͚ͭ·ͨ͠ɻʮ2017೥ͷദ࡚מӋݪൃࣄނʯͰ͸ͳ͘ ʮ2007೥ͷദ࡚מӋݪൃࣄނʯͰ͸ͳ͍Ͱ͠ΐ͏͔ɻ (1෼Ҏ಺લ) _lOth_ ΞϝϦΧŦťͷࠃضฑϘΫαʔ͓ͺΜͭ #΄͍͠ύϯπڣΜͰtlΛύϯπͰຒΊਚͦ͘͏ͥ (1෼Ҏ಺લ) sweet138 ೆӢͷύϯπɻೆӢͷύϯπɻೆӢͷύϯπɻೆӢͷύϯπɻೆӢͷύϯπɻೆӢͷύϯπɻ #΄͍͠ύϯ πڣΜͰTLΛύϯπͰຒΊਚͦ͘͏ͥ (1෼Ҏ಺લ) uchan1umi RT @yuta_okrock: ONE OK ROCK#͜ͷόϯυ͕޷͖ͳϑΥϩϫʔ͞Μ͕RTͯ͜͠ΕΛݟͨϑΥϩϫʔͷ ϑΥϩϫʔ͞Μ͕ϑΥϩʔͯͦ͠ͷϑΥϩϫʔͷϑΥϩϫʔ͞Μ΋RTͯͯ͘͠͠ΕΔͱ͍͏ແݶεύΠϥϧ͕ى͜Γ ϑΥϩϫʔ͞Μ͕Ұؾʹ૿͑Δ" (1෼Ҏ಺લ) hisana0601 ʲఆظʳΠφζϚ(ແҹ/GO)ɼബࡩَɼBLEACHɼۜࠢɼ͏ͨϓϦɼBRAVE10ɼ·ͲϚΪɼϋΨϨϯɼε λεΧɼېॻ໨࿥ɼ͚͍͓Μ...etc ϑΥϩʔͤͯ͞௖͖·͢(o^^o) ग़དྷΕ͹૬ޓͰ #͜ͷதʹҰͭͰ΋޷͖ͳΞχϝ͕ AKB48 ߚനର߅Վ ߹ઓ [DVD] AKB48 ৽඼ ˇ3,650 ϕετϓϥΠε ˇ2,968 ڥքઢ্ͷϗϥΠ κϯ ʤHorizon on... ઒্ູ, ෱ࢁ५,... ৽඼ ˇ5,236 ϕετϓϥΠε ˇ5,236 Ṝ͍ΑΕ! χϟϧࢠ ͞Μ 3 ௕ᖒ߶, Ѩ੅Ղ... ৽඼ ˇ5,439 ϕετϓϥΠε ˇ5,439 Ӊ஦ઓ؋ϠϚτ 2199 ग़ᔹ༟, ੁੜོ... ৽඼ ˇ5,236 ϕετϓϥΠε ˇ5,236

Slide 34

Slide 34 text

Web frontend w/Rails searcher node indexer node Twitter HTTP streaming crawler node Redis pub/sub HTTP API Buzztter Search Architecture Outline groonga DB (shared) Internal API server nroonga nroonga

Slide 35

Slide 35 text

“ΞϓϦέʔγϣϯʹಛԽͨ͠ γϯϓϧͳAPIͷ ݕࡧαʔό͕΄͍͠”

Slide 36

Slide 36 text

A library for building groonga powered nodes.

Slide 37

Slide 37 text

OSPPOHBͰͭ͘Δ HSPPOHBશจݕࡧ "1*αʔό औక໾$50ઃᒜ༸࣐ ZPKJTIJEBSB!FOJTIJUFDIDPN !EBSBTIJ — nroonga: a library for building groonga powered nodes. ೥݄೔౦ژOPEFֶԂݶ໨-JHIUOJOH5BML