<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Stop-the-world]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://takuya-a.net/blog/</link><image><url>https://takuya-a.net/blog/favicon.png</url><title>Stop-the-world</title><link>https://takuya-a.net/blog/</link></image><generator>Ghost 5.7</generator><lastBuildDate>Sun, 29 Mar 2026 14:40:01 GMT</lastBuildDate><atom:link href="https://takuya-a.net/blog/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[2025振り返り]]></title><description><![CDATA[2026年になりましたね。年末年始は年越しキャンプに行っていたため年を跨いでしまいましたが、1年間の振り返り記事を書いておきます。]]></description><link>https://takuya-a.net/blog/2025-look-back/</link><guid isPermaLink="false">695771ae5f764f0001940bc2</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Fri, 02 Jan 2026 07:44:22 GMT</pubDate><content:encoded><![CDATA[<p>2026&#x5E74;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x306D;&#x3002;<a href="https://x.com/takuya_b/status/2005902378567098704">&#x5E74;&#x672B;&#x5E74;&#x59CB;&#x306F;&#x5E74;&#x8D8A;&#x3057;&#x30AD;&#x30E3;&#x30F3;&#x30D7;&#x306B;&#x884C;&#x3063;&#x3066;&#x3044;&#x305F;</a>&#x305F;&#x3081;&#x5E74;&#x3092;&#x8DE8;&#x3044;&#x3067;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;1&#x5E74;&#x9593;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x8A18;&#x4E8B;&#x3092;&#x66F8;&#x3044;&#x3066;&#x304A;&#x304D;&#x307E;&#x3059;&#x3002;</p><p>&#x904E;&#x53BB;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x8A18;&#x4E8B;&#x306F;&#x3053;&#x3061;&#x3089;&#x3002;</p><ul><li><a href="https://www.takuya-a.net/blog/2024-look-back/">2024&#x632F;&#x308A;&#x8FD4;&#x308A;</a></li><li><a href="https://www.takuya-a.net/blog/2023-look-back/">2023&#x632F;&#x308A;&#x8FD4;&#x308A;</a></li><li><a href="https://takuya-a.net/blog/2022-look-back/">2022&#x632F;&#x308A;&#x8FD4;&#x308A;</a></li></ul><hr><h2 id="%E4%BB%95%E4%BA%8B">&#x4ED5;&#x4E8B;</h2><h3 id="ai%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%82%92%E5%A7%8B%E3%82%81%E3%81%9F">AI&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30EA;&#x30F3;&#x30B0;&#x3092;&#x59CB;&#x3081;&#x305F;</h3><p>3&#x6708;&#x306B;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x306E;&#x5B9F;&#x8A3C;&#x5B9F;&#x9A13;&#xFF08;PoC&#xFF09;&#x3092;&#x3084;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x3001;ML&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3068;2&#x4EBA;&#x3067;&#x3001;<a href="https://www.legalon-cloud.com/">LegalOn</a>&#x306E;&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x6A5F;&#x80FD;&#x306E;&#x30C7;&#x30E2;&#x3092;&#x958B;&#x767A;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF08;&#x88FD;&#x54C1;&#x958B;&#x767A;&#x30C1;&#x30FC;&#x30E0;&#x304C;&#x305D;&#x306E;&#x6D41;&#x308C;&#x3092;&#x5F15;&#x304D;&#x7D99;&#x304E;&#x3001;<a href="https://legalontech.jp/10198/">LegalOn Agents</a>&#x3068;&#x3057;&#x3066;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#xFF09;&#x3002;&#x305D;&#x306E;&#x5F8C;&#x3001;&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x7CFB;&#x306E;&#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x3092;&#x62C5;&#x5F53;&#x3057;&#x3066;&#x4ECA;&#x306B;&#x81F3;&#x308A;&#x307E;&#x3059;&#x3002;</p><p>&#x81EA;&#x5206;&#x306F;&#x3053;&#x3053;&#x6700;&#x8FD1;&#x305A;&#x3063;&#x3068;&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x306E;&#x9818;&#x57DF;&#x3092;&#x3084;&#x3063;&#x3066;&#x304D;&#x305F;&#x306E;&#x3067;&#x3001;&#x30B8;&#x30E7;&#x30D6;&#x30C1;&#x30A7;&#x30F3;&#x30B8;&#x306B;&#x8FD1;&#x3044;&#x611F;&#x3058;&#x3067;&#x3059;&#x3002;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001;&#x4ECA;&#x5E74;1&#x5E74;&#x306F;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x7CFB;&#x306E;&#x6280;&#x8853;&#x3092;&#x30AD;&#x30E3;&#x30C3;&#x30C1;&#x30A2;&#x30C3;&#x30D7;&#x306B;&#x660E;&#x3051;&#x66AE;&#x308C;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x3044;&#x308F;&#x3086;&#x308B;&#x30A2;&#x30F3;&#x30E9;&#x30FC;&#x30CB;&#x30F3;&#x30B0;&#x3068;&#x3044;&#x3046;&#x3084;&#x3064;&#x304B;&#x3082;&#x3002;</p><p>&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x306B;&#x8FD1;&#x3044;&#x3068;&#x3053;&#x308D;&#x306B;&#x306F;&#x8EAB;&#x3092;&#x7F6E;&#x304D;&#x3064;&#x3064;&#x3001;2026&#x5E74;&#x3082;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x306E;&#x958B;&#x767A;&#x3092;&#x3084;&#x3063;&#x3066;&#x3044;&#x304F;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p><h2 id="%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88">&#x30A2;&#x30A6;&#x30C8;&#x30D7;&#x30C3;&#x30C8;</h2><h3 id="%E3%83%87%E3%83%96%E3%82%B5%E3%83%9F%E3%81%AB%E7%99%BB%E5%A3%87%E3%81%97%E3%81%9F">&#x30C7;&#x30D6;&#x30B5;&#x30DF;&#x306B;&#x767B;&#x58C7;&#x3057;&#x305F;</h3><p>&#x53BB;&#x5E74;&#x306B;&#x516C;&#x52DF;&#x3067;&#x901A;&#x904E;&#x3057;&#x305F;<a href="https://event.shoeisha.jp/devsumi/20250213">Developers Summit 2025</a>&#x304C;2&#x6708;&#x306B;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;LegalOn&#x306E;&#x5E83;&#x5831;&#x306E;&#x65B9;&#x306B;&#x3082;&#x304B;&#x306A;&#x308A;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3044;&#x305F;&#x3060;&#x3044;&#x3066;&#x3001;&#x4F55;&#x3068;&#x304B;&#x5F62;&#x306B;&#x306F;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>&#x8A73;&#x7D30;&#x306A;&#x30EC;&#x30DD;&#x30FC;&#x30C8;&#x306F;&#x4F1A;&#x793E;&#x30D6;&#x30ED;&#x30B0;&#x306E;&#x65B9;&#x306B;&#x66F8;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x767A;&#x8868;&#x3057;&#x305F;&#x30B9;&#x30E9;&#x30A4;&#x30C9;&#x3078;&#x306E;&#x30EA;&#x30F3;&#x30AF;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p><ul><li><a href="https://tech.legalforce.co.jp/entry/developers-summit-2025">Developers Summit 2025&#x306B;&#x767B;&#x58C7;&#x3057;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F; - LegalOn Technologies Engineering Blog</a></li><li><a href="https://now.legalontech.jp/n/nea11e590df34">Developers Summit 2025&#x306B;&#x767B;&#x58C7;&#x3057;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#xFF5C;LegalOn Now</a></li></ul><p>CodeZine&#x3055;&#x3093;&#x306E;&#x8A18;&#x4E8B;&#x3082;&#x3053;&#x3061;&#x3089;&#x306B;&#x4E0A;&#x304C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x306E;&#x3067;&#x3001;&#x3088;&#x308D;&#x3057;&#x3051;&#x308C;&#x3070;&#x3069;&#x3046;&#x305E;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://codezine.jp/article/detail/21428"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x306E;&#x4FA1;&#x5024;&#x3092;&#x9AD8;&#x3081;&#x308B;&#x305F;&#x3081;&#x306B;&#x30B3;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x4EE5;&#x5916;&#x306B;&#x3067;&#x304D;&#x308B;&#x3053;&#x3068;&#x306F;&#xFF1F;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;4&#x3064;&#x306E;&#x5DE5;&#x592B;</div><div class="kg-bookmark-description">&#x300C;&#x8A00;&#x3063;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x304C;&#x4F1D;&#x308F;&#x3089;&#x306A;&#x3044;&#x300D;&#x300C;&#x5FD9;&#x3057;&#x305D;&#x3046;&#x3067;&#x8A71;&#x3057;&#x304B;&#x3051;&#x3065;&#x3089;&#x3044;&#x300D;&#x2015;&#x2015;&#x305D;&#x3093;&#x306A;&#x201C;&#x3059;&#x308C;&#x9055;&#x3044;&#x201D;&#x304C;&#x3001;&#x30C1;&#x30FC;&#x30E0;&#x958B;&#x767A;&#x306E;&#x8DB3;&#x3092;&#x5F15;&#x3063;&#x5F35;&#x3063;&#x3066;&#x306F;&#x3044;&#x306A;&#x3044;&#x3060;&#x308D;&#x3046;&#x304B;&#x3002;&#x672C;&#x30BB;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x3067;&#x306F;LegalOn Technologies&#x306E;&#x6D45;&#x91CE;&#x5353;&#x4E5F;&#x6C0F;&#x304C;&#x3001;&#x5C02;&#x9580;&#x7528;&#x8A9E;&#x306B;&#x3088;&#x308B;&#x30DF;&#x30B9;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x4E8B;&#x4F8B;&#x3084;&#x3001;&#x8077;&#x7A2E;&#x9593;&#x306E;&#x60C5;&#x5831;&#x683C;&#x5DEE;&#x3092;&#x57CB;&#x3081;&#x308B;&#x305F;&#x3081;&#x306B;&#x958B;&#x50AC;&#x3057;&#x305F;&#x52C9;&#x5F37;&#x4F1A;&#x3001;&#x5BFE;&#x8A71;&#x306E;&#x983B;&#x5EA6;&#x3092;&#x9AD8;&#x3081;&#x308B;&#x53D6;&#x308A;&#x7D44;&#x307F;&#x306A;&#x3069;&#x3092;&#x7D39;&#x4ECB;&#x3002;&#x5B9F;&#x8DF5;&#x306B;&#x57FA;&#x3065;&#x3044;&#x305F;&#x5177;&#x4F53;&#x7684;&#x306A;&#x5DE5;&#x592B;&#x304B;&#x3089;&#x3001;&#x7570;&#x8077;&#x7A2E;&#x3068;&#x306E;&#x9023;&#x643A;&#x3092;&#x30B9;&#x30E0;&#x30FC;&#x30BA;&#x306B;&#x3059;&#x308B;&#x305F;&#x3081;&#x306E;&#x30D2;&#x30F3;&#x30C8;&#x3092;&#x5F97;&#x3088;&#x3046;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://codezine.jp/apple-touch-icon.png?v2" alt><span class="kg-bookmark-author">CodeZine</span><span class="kg-bookmark-publisher">&#x590F;&#x91CE; &#x304B;&#x304A;&#x308B;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://codezine.jp/static/images/article/21428/21428_ogp.jpg" alt></div></a></figure><h3 id="ai%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E5%85%A5%E9%96%80%E3%81%AE%E7%A4%BE%E5%86%85%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E3%82%92%E3%82%84%E3%81%A3%E3%81%9F">AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x5165;&#x9580;&#x306E;&#x793E;&#x5185;&#x30BB;&#x30DF;&#x30CA;&#x30FC;&#x3092;&#x3084;&#x3063;&#x305F;</h3><p>&#x793E;&#x5185;&#x306E;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x3084;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x5411;&#x3051;&#x306B;&#x3001;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x306E;&#x5165;&#x9580;&#x8B1B;&#x5EA7;&#x3092;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;2024&#x5E74;&#x306B;<a href="https://tech.legalforce.co.jp/entry/introduction-to-search-and-recommender-systems-for-pdm">&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x6280;&#x8853;&#x306B;&#x3064;&#x3044;&#x3066;&#x306E;&#x5165;&#x9580;&#x8B1B;&#x5EA7;</a>&#x3092;&#x958B;&#x304D;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x305D;&#x308C;&#x306E;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x7248;&#x3068;&#x3082;&#x547C;&#x3079;&#x308B;&#x3088;&#x3046;&#x306A;&#x5185;&#x5BB9;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p><p>SNS&#x7D4C;&#x7531;&#x3067;&#x5E83;&#x307E;&#x3063;&#x305F;&#x305F;&#x3081;&#x304B;&#x3001;ITmedia&#x3055;&#x3093;&#x306B;&#x3082;&#x8A18;&#x4E8B;&#x306B;&#x3057;&#x3066;&#x3044;&#x305F;&#x3060;&#x3044;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p><ul><li><a href="https://www.itmedia.co.jp/aiplus/articles/2511/21/news103.html">AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x3092;&#x201C;&#x901F;&#x7FD2;&#x201D;&#x3067;&#x304D;&#x308B;&#x5165;&#x9580;&#x8CC7;&#x6599;&#x3001;&#x6CD5;&#x52D9;AI&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x4F01;&#x696D;&#x304C;&#x7121;&#x6599;&#x516C;&#x958B; - ITmedia AI&#xFF0B;</a></li></ul><p>2025&#x5E74;&#x306B;&#x304B;&#x306A;&#x308A;&#x306E;&#x6642;&#x9593;&#x3092;&#x5272;&#x3044;&#x3066;&#x30A4;&#x30F3;&#x30D7;&#x30C3;&#x30C8;&#x3057;&#x305F;&#x3001;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x95A2;&#x9023;&#x306E;&#x60C5;&#x5831;&#x3092;&#x6574;&#x7406;&#x3057;&#x3066;&#xFF08;&#x6280;&#x8853;&#x7684;&#x306A;&#x8A73;&#x7D30;&#x306F;&#x7701;&#x304D;&#x3064;&#x3064;&#xFF09;&#x307E;&#x3068;&#x3081;&#x305F;&#x306E;&#x3067;&#x3001;&#x500B;&#x4EBA;&#x7684;&#x306B;&#x3082;&#x826F;&#x3044;&#x5B66;&#x7FD2;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>&#x793E;&#x5185;&#x3067;&#x3082;&#x597D;&#x8A55;&#x3067;&#x3057;&#x305F;&#x3057;&#x3001;&#x5BFE;&#x5916;&#x7684;&#x306B;&#x3082;&#x305D;&#x3053;&#x305D;&#x3053;&#x5E83;&#x304F;&#x8A8D;&#x77E5;&#x3057;&#x3066;&#x3082;&#x3089;&#x3048;&#x305F;&#x306E;&#x3067;&#x3001;&#x4E09;&#x65B9;&#x3088;&#x3057;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001;&#x63D0;&#x6848;&#x3057;&#x3066;&#x826F;&#x304B;&#x3063;&#x305F;&#x53D6;&#x308A;&#x7D44;&#x307F;&#x3060;&#x3063;&#x305F;&#x306A;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tech.legalforce.co.jp/entry/aiagent-introduction"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x793E;&#x5185;&#x8CC7;&#x6599;&#x300C;&#x901F;&#x7FD2; AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x5165;&#x9580;&#x300D;&#x3092;&#x516C;&#x958B;&#x3057;&#x307E;&#x3059; - LegalOn Technologies Engineering Blog</div><div class="kg-bookmark-description">&#x3053;&#x3093;&#x306B;&#x3061;&#x306F;&#x3002;LegalOn Technologies&#x3067;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3092;&#x3057;&#x3066;&#x3044;&#x308B;&#x6D45;&#x91CE;&#xFF08;@takuya_b / @takuya_a&#xFF09;&#x3067;&#x3059;&#x3002;&#x6700;&#x8FD1;&#x306F;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x3068;&#x3044;&#x3046;&#x3088;&#x308A;&#x306F;AI&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3063;&#x307D;&#x3044;&#x3053;&#x3068;&#x3092;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; &#x3053;&#x306E;&#x305F;&#x3073;&#x3001;&#x793E;&#x5185;&#x306E;&#x5168;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x30FB;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x30FB;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30FB;EM&#x5411;&#x3051;&#x306B;&#x300C;&#x901F;&#x7FD2; AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x5165;&#x9580;&#x300D;&#x3068;&#x3044;&#x3046;&#x30BF;&#x30A4;&#x30C8;&#x30EB;&#x3067;&#x3001;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x958B;&#x767A;&#x306E;&#x793E;&#x5185;&#x30BB;&#x30DF;&#x30CA;&#x30FC;&#x3092;&#x62C5;&#x5F53;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x305D;&#x306E;&#x767A;&#x8868;&#x3067;&#x4F7F;&#x7528;&#x3057;&#x305F;&#x30B9;&#x30E9;&#x30A4;&#x30C9;&#x3092;&#x3001;&#x5F0A;&#x793E;&#x306E;Speaker Deck&#x306B;&#x516C;&#x958B;&#x3057;&#x307E;&#x3057;&#x305F;&#x306E;&#x3067;&#x5171;&#x6709;&#x3057;&#x307E;&#x3059;&#x3002; &#x6628;&#x5E74;&#x3001;&#x5F0A;&#x793E;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x300C;&#x793E;&#x5185;&#x8CC7;&#x6599;&#x300C;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x306E;&#x305F;&#x3081;&#x306E;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x5165;&#x9580;&#x300D;&#x3092;&#x516C;&#x958B;&#x3057;&#x307E;&#x3059;&#x300D;&#x306E;&#x4E2D;&#x3067;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x6280;&#x8853;&#x306E;&#x5165;&#x9580;&#x8B1B;&#x5EA7;&#x306E;&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://tech.legalforce.co.jp/icon/link" alt><span class="kg-bookmark-author">LegalOn Technologies Engineering Blog</span><span class="kg-bookmark-publisher">takuya-a</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://ogimage.blog.st-hatena.com/26006613532454869/17179246901322751036/1766720824" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://now.legalontech.jp/n/n448bd5cc7f03"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x307E;&#x308B;&#x3067;&#x798F;&#x5229;&#x539A;&#x751F;&#xFF01;&#x300C;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x300D;&#x3092;&#x6B63;&#x3057;&#x304F;&#x7406;&#x89E3;&#x3059;&#x308B;&#x305F;&#x3081;&#x306E;&#x793E;&#x5185;&#x30BB;&#x30DF;&#x30CA;&#x30FC;&#x3092;&#x3084;&#x3063;&#x305F;&#x3089;&#x53CD;&#x97FF;&#x3042;&#x3063;&#x305F;&#xFF5C;LegalOn Now</div><div class="kg-bookmark-description">&#x3053;&#x3093;&#x306B;&#x3061;&#x306F;&#xFF01;LegalOn Technologies&#x63A1;&#x7528;&#x62C5;&#x5F53;&#x306E;&#x5800;&#x6B21;&#x3067;&#x3059;&#x3002; 2025&#x5E74;11&#x6708;5&#x65E5;&#x3001;11&#x6708;13&#x65E5;&#x306B;&#x3001;PdM&#x30FB;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x30FB;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30FB;EM&#x3092;&#x5BFE;&#x8C61;&#x3068;&#x3057;&#x305F;&#x300C;&#x901F;&#x7FD2; AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x5165;&#x9580;&#x300D;&#x304C;&#x958B;&#x50AC;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#xFF01; &#x30FB;DAY1&#xFF08;11/5&#xFF09;&#xFF1A;PdM&#x30FB;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x5411;&#x3051; &#x30FB;DAY2&#xFF08;11/13&#xFF09;&#xFF1A;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30FB;EM&#x5411;&#x3051; &#x8B1B;&#x5E2B;&#x306F;&#x3001;&#x6211;&#x3089;&#x304C;Staff Software Engineer&#x306E;&#x6D45;&#x91CE;&#x5353;&#x4E5F;&#x3067;&#x3059;&#x3002; AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x306F;&#x3001;&#x3082;&#x306F;&#x3084;&#x5F53;&#x793E;&#x3067;&#x306F;&#x8033;&#x306B;&#x3057;&#x306A;&#x3044;&#x65E5;&#x304C;&#x306A;&#x3044;&#x3051;&#x308C;&#x3069;&#x3001;&#x7528;&#x8A9E;&#x3060;&#x3051;&#x5148;&#x884C;&#x3057;&#x3066;&#x7406;&#x89E3;&#x304C;&#x8FFD;&#x3044;&#x4ED8;&#x3044;&#x3066;&#x3044;&#x306A;&#x304B;&#x3063;&#x305F;&#x308A;&#x3001;&#x60C5;&#x5831;&#x304C;&#x591A;&#x3059;&#x304E;&#x3066;&#x6574;&#x7406;&#x3067;&#x304D;&#x3066;&#x306A;&#x3044;&#x4EBA;&#x3082;&#x591A;&#x3044;&#x306E;&#x3067;&#x306F;&#x306A;&#x3044;&#x3067;&#x3057;&#x3087;&#x3046;&#x304B;&#x3002; &#x305D;&#x3093;&#x306A;&#x4E2D;&#x3001;&#x77E5;&#x8B58;&#x3084;&#x7528;&#x8A9E;&#x3092;&#x6574;&#x7406;&#x3057;&#x5168;&#x54E1;&#x304C;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://s3-ap-northeast-1.amazonaws.com/poc-image/production/86c8f52131d4f61df43b9e4d121b2422e60a6a3589ca254fc27c306a8c7f.png" alt><span class="kg-bookmark-author">note&#xFF08;&#x30CE;&#x30FC;&#x30C8;&#xFF09;</span><span class="kg-bookmark-publisher">LegalOn Now</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.st-note.com/production/uploads/images/238724832/rectangle_large_type_2_15aff6b7bc71f3cf6bfab33017572274.png?fit=bounds&amp;quality=85&amp;width=1280" alt></div></a></figure><h3 id="%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88%E3%83%BB%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%98%E4%BA%8B">&#x305D;&#x306E;&#x4ED6;&#x306E;&#x30A2;&#x30A6;&#x30C8;&#x30D7;&#x30C3;&#x30C8;&#x30FB;&#x30A4;&#x30F3;&#x30BF;&#x30D3;&#x30E5;&#x30FC;&#x8A18;&#x4E8B;</h3><p>&#x793E;&#x5185;LT&#x4F1A;&#x3067;&#x300C;&#x306A;&#x305C;&#x6280;&#x8853;&#x30D6;&#x30ED;&#x30B0;&#x3092;&#x66F8;&#x304F;&#x306E;&#x304B;&#x300D;&#x3068;&#x3044;&#x3046;&#x30BF;&#x30A4;&#x30C8;&#x30EB;&#x3067;&#x767A;&#x8868;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x3053;&#x6700;&#x8FD1;&#x3001;&#x81EA;&#x5206;&#x304C;&#x3042;&#x307E;&#x308A;&#x66F8;&#x3051;&#x3066;&#x3044;&#x306A;&#x3044;&#x306E;&#x3067;&#x5B8C;&#x5168;&#x306B;&#x30D6;&#x30FC;&#x30E1;&#x30E9;&#x30F3;&#x306A;&#x306E;&#x3067;&#x3059;&#x304C;&#x2026;&#x2026;&#x3002;2026&#x5E74;&#x306F;&#x5C0F;&#x30CD;&#x30BF;&#x3067;&#x3082;&#x3044;&#x3044;&#x306E;&#x3067;&#x3001;&#x81EA;&#x5206;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x306B;&#x3082;&#x3061;&#x3087;&#x3044;&#x3061;&#x3087;&#x3044;&#x66F8;&#x3044;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#x3002;</p><ul><li><a href="https://now.legalontech.jp/n/ndcd0eaf03b23">1Q&#x304A;&#x75B2;&#x308C;&#x69D8;&#x3067;&#x3057;&#x305F;&#xFF01;&#x304A;&#x5BFF;&#x53F8;&#x3092;&#x56F2;&#x307F;&#x306A;&#x304C;&#x3089;&#x3001;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x3068;&#x898B;&#x76F4;&#x3057;&#x306E;&#x5927;&#x5207;&#x3055;&#x3092;&#x8A9E;&#x308B;LT&#x306B;&#xFF5C;LegalOn Now</a></li></ul><p>2023&#x5E74;&#x5EA6;&#x306B;&#x81EA;&#x5206;&#x304C;&#x30EA;&#x30FC;&#x30C9;&#x3057;&#x3066;&#x3044;&#x305F;&#x3001;LegalOn&#x306E;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x57FA;&#x76E4;&#x306E;&#x958B;&#x767A;&#x306B;&#x95A2;&#x3059;&#x308B;&#x30A4;&#x30F3;&#x30BF;&#x30D3;&#x30E5;&#x30FC;&#x8A18;&#x4E8B;&#x304C;&#x4E0A;&#x304C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x4ECA;&#x306E;&#x4F1A;&#x793E;&#x306B;&#x5165;&#x3063;&#x3066;&#x304B;&#x3089;&#x306E;&#x6D41;&#x308C;&#x304C;&#x6FC0;&#x3057;&#x3059;&#x304E;&#x3066;&#x3001;&#x3082;&#x3046;5&#x5E74;&#x304F;&#x3089;&#x3044;&#x524D;&#x306B;&#x611F;&#x3058;&#x308B;&#x3002;</p><ul><li><a href="https://tech.legalforce.co.jp/entry/legalon-behindthescenes-8">&#x7B2C;8&#x56DE;&#x300C;LegalOn&#x300D;&#x8A95;&#x751F;&#x306E;&#x88CF;&#x5074;&#xFF1A;&#x691C;&#x7D22;&#x7DE8; - LegalOn Technologies Engineering Blog</a></li></ul><h2 id="%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E6%B4%BB%E5%8B%95">&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x6D3B;&#x52D5;</h2><h3 id="%E6%A4%9C%E7%B4%A2%E6%8A%80%E8%A1%93%E5%8B%89%E5%BC%B7%E4%BC%9A">&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;</h3><p>&#x4ECA;&#x5E74;&#x3082; <a href="https://x.com/johtani">@johtani &#x3055;&#x3093;</a>&#x9054;&#x306E;&#x304A;&#x304B;&#x3052;&#x3067;&#x958B;&#x50AC;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x4ECA;&#x5E74;&#x306F;&#x691C;&#x7D22;&#x6280;&#x8853;&#x9818;&#x57DF;&#x304B;&#x3089;&#x96E2;&#x308C;&#x305F;&#x3068;&#x3044;&#x3046;&#x306E;&#x3082;&#x3042;&#x3063;&#x3066;&#x3001;&#x3042;&#x307E;&#x308A;&#x4E3B;&#x4F53;&#x7684;&#x306B;&#x30B3;&#x30DF;&#x30C3;&#x30C8;&#x3067;&#x304D;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x53CD;&#x7701;&#x3002;</p><ul><li><a href="https://search-tech.connpass.com/event/345134/">Search Engineering Tech Talk 2025 Winter - connpass</a></li><li><a href="https://search-tech.connpass.com/event/370754/">Search Engineering Tech Talk 2025 Autumn - connpass</a></li></ul><p>2026&#x5E74;&#x306B;&#x306F;&#x65E9;&#x901F;1&#x6708;&#x306B;<a href="https://cierpa.co.jp/">&#x30B7;&#x30A7;&#x30EB;&#x30D1;&#x30FB;&#x30A2;&#x30F3;&#x30C9;&#x30FB;&#x30AB;&#x30F3;&#x30D1;&#x30CB;&#x30FC;&#x3055;&#x3093;</a>&#x3067;&#x958B;&#x50AC;&#x4E88;&#x5B9A;&#x306A;&#x306E;&#x3067;&#x3001;&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#xFF01;&#xFF08;<a href="https://bit.ly/SpeakerSearchTechTalk">&#x30B9;&#x30D4;&#x30FC;&#x30AB;&#x30FC;&#x3082;&#x52DF;&#x96C6;&#x4E2D;</a>&#x3067;&#x3059;&#xFF01;&#xFF09;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://search-tech.connpass.com/event/378445/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Search Engineering Tech Talk 2026 Winter (2026/01/28 19:00&#x301C;)</div><div class="kg-bookmark-description"># &#x52C9;&#x5F37;&#x4F1A;&#x30FB;&#x61C7;&#x89AA;&#x4F1A;&#x3067;&#x306E;&#x98F2;&#x98DF;&#x306E;&#x63D0;&#x4F9B;&#x306E;&#x4E88;&#x5B9A;&#x306F;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;&#x4F1A;&#x5834;&#x3067;&#x306E;&#x98F2;&#x98DF;&#x306F;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x306E;&#x3067;&#x6301;&#x3061;&#x8FBC;&#x307F;&#x3067;&#x767A;&#x8868;&#x3092;&#x304A;&#x805E;&#x304D;&#x3044;&#x305F;&#x3060;&#x304F;&#x3053;&#x3068;&#x306F;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002; Search Engineering Tech Talk&#x7B2C;10&#x56DE;&#x76EE;&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002; &#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;&#x306E;&#x76EE;&#x7684;&#x306F;&#x3001;&#x300C;&#x691C;&#x7D22;&#x300D;/&#x300C;&#x691C;&#x7D22;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x300D;&#x306B;&#x307E;&#x3064;&#x308F;&#x308B;&#x6280;&#x8853;&#x3084;&#x624B;&#x6CD5;&#x306B;&#x95A2;&#x3057;&#x3066;&#x5171;&#x6709;&#x3067;&#x304D;&#x308B;&#x5834;&#x3092;&#x63D0;&#x4F9B;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002; &#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x3054;&#x3068;&#x306E;&#x52C9;&#x5F37;&#x4F1A;&#x306A;&#x3069;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306B;&#x306F;&#x95A2;&#x4FC2;&#x306A;&#x304F;&#x3001; &#x300C;&#x691C;&#x7D22;&#x300D;&#x3068;&#x3044;&#x3046;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3001;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;&#x4F5C;&#x308B;&#x4E0A;&#x3067;&#x5171;&#x901A;&#x306E;&#x89E3;&#x6C7A;&#x3059;&#x3079;&#x304D;&#x8AB2;&#x984C;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002; &#x3053;&#x308C;&#x3089;&#x306E;&#x8AB2;&#x984C;&#x3092;&#x307F;&#x3093;&#x306A;&#x304C;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x89E3;&#x6C7A;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x304B;&#x3068;&#x3044;&#x3063;&#x305F;&#x77E5;&#x8B58;&#x3092;&#x5171;&#x6709;&#x3067;&#x304D;&#x308B;&#x5834;&#x306B;&#x306A;&#x308C;&#x3070;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; # &#x30BF;&#x30A4;&#x30E0;&#x30C6;&#x30FC;&#x30D6;&#x30EB; ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://connpass.com/static/20251224.61d26a7/img/apple_touch_icon.png" alt><span class="kg-bookmark-author">connpass</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://media.connpass.com/thumbs/83/eb/83eb605830bdbba3436c4e1c2d18127e.png" alt></div></a></figure><h3 id="layerx%E3%81%95%E3%82%93%E3%81%A8%E3%81%AE%E5%90%88%E5%90%8C%E3%83%9F%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97">LayerX&#x3055;&#x3093;&#x3068;&#x306E;&#x5408;&#x540C;&#x30DF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;</h3><p>&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;&#x306E;&#x61C7;&#x89AA;&#x4F1A;&#x3067;&#x306E;LayerX&#x306E;<a href="https://x.com/takatorisatoshi">&#x9DF9;&#x53D6;&#x3055;&#x3093;</a>&#x3001;<a href="https://x.com/po3rin">pon&#x3055;&#x3093;</a>&#x3001;<a href="https://github.com/shibuiwilliam">&#x6F81;&#x4E95;&#x3055;&#x3093;</a>&#x3068;&#x306E;&#x4F1A;&#x8A71;&#x304B;&#x3089;&#x3001;2&#x793E;&#x5408;&#x540C;&#x3067;&#x306E;&#x30DF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x3092;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x691C;&#x7D22;&#x6280;&#x8853;&#x3082;&#x65B0;&#x3057;&#x3044;&#x5C40;&#x9762;&#x3092;&#x8FCE;&#x3048;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x3092;&#x808C;&#x3067;&#x611F;&#x3058;&#x3089;&#x308C;&#x308B;&#x3001;&#x826F;&#x3044;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x3067;&#x3057;&#x305F;&#x3002;&#x6B21;&#x56DE;&#x306F;LayerX&#x3055;&#x3093;&#x306E;&#x30AA;&#x30D5;&#x30A3;&#x30B9;&#x3067;&#x958B;&#x50AC;&#x3057;&#x305F;&#x3044;&#xFF01;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://now.legalontech.jp/n/n74b1936f92c3"><div class="kg-bookmark-content"><div class="kg-bookmark-title">LayerX&#x3055;&#x3093;&#x3068;&#x300C;LLM&#xFF06;Search MeetUp&#x300D;&#x3092;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF01;&#x767A;&#x8868;&#x8CC7;&#x6599;&#x3092;&#x516C;&#x958B;&#x3057;&#x307E;&#x3059;&#xFF5C;LegalOn Now</div><div class="kg-bookmark-description">&#x3053;&#x3093;&#x306B;&#x3061;&#x306F;&#xFF01;LegalOn Technologies&#x306E;&#x5800;&#x6B21;&#x3067;&#x3059;&#x3002; 2025&#x5E74;12&#x6708;9&#x65E5;&#xFF08;&#x706B;&#xFF09;&#x3001;&#x682A;&#x5F0F;&#x4F1A;&#x793E;LayerX&#x3055;&#x3093;&#x3068;&#x5408;&#x540C;&#x3067;&#x300E;LLM&#xFF06;Search MeetUp&#x300F;&#x3092;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF01; LLM&#x306E;&#x9032;&#x5316;&#x304C;&#x52A0;&#x901F;&#x3059;&#x308B;&#x4ECA;&#x3001;&#x691C;&#x7D22;&#x6280;&#x8853;&#x306F;&#x305D;&#x306E;&#x6027;&#x80FD;&#x3092;&#x6700;&#x5927;&#x9650;&#x306B;&#x5F15;&#x304D;&#x51FA;&#x3059;&#x305F;&#x3081;&#x306E;&#x91CD;&#x8981;&#x306A;&#x6280;&#x8853;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x540C;&#x3058;B2B SaaS&#x9818;&#x57DF;&#x306E;&#x30EA;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x30AB;&#x30F3;&#x30D1;&#x30CB;&#x30FC;&#x3068;&#x3057;&#x3066;&#x691C;&#x7D22;&#x6280;&#x8853;&#x306B;&#x6CE8;&#x529B;&#x3057;&#x3066;&#x3044;&#x308B;LayerX&#x3055;&#x3093;&#x3068;&#x30BF;&#x30C3;&#x30B0;&#x3092;&#x7D44;&#x307F;&#x3001;&#x304A;&#x4E92;&#x3044;&#x306E;&#x77E5;&#x898B;&#x3092;&#x5171;&#x6709;&#x3057;&#x5408;&#x3046;&#x30DF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x3092;&#x4F01;&#x753B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x751F;&#x6210;AI&#x6642;&#x4EE3;&#x306B;&#x304A;&#x3051;&#x308B;&#x691C;&#x7D22;&#x306E;&#x9032;&#x5C55;&#x3068;&#x5B9F;&#x52D9;&#x3078;&#x306E;&#x5FDC;&#x7528;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x4E21;&#x793E;&#x306E;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x304C;&#x8A71;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF01; LLM&#x3092;&#x5229;&#x7528;&#x3057;&#x305F;&#x691C;&#x7D22;&#x6A5F;&#x80FD;&#x306E;&#x6539;&#x5584; RAG&#x306E;&#x7CBE;&#x5EA6;&#x6539;&#x5584;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://s3-ap-northeast-1.amazonaws.com/poc-image/production/86c8f52131d4f61df43b9e4d121b2422e60a6a3589ca254fc27c306a8c7f.png" alt><span class="kg-bookmark-author">note&#xFF08;&#x30CE;&#x30FC;&#x30C8;&#xFF09;</span><span class="kg-bookmark-publisher">LegalOn Now</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.st-note.com/production/uploads/images/238728226/rectangle_large_type_2_9ac1da3c360994f74a7c87ff6c88ebc7.png?fit=bounds&amp;quality=85&amp;width=1280" alt></div></a></figure><h2 id="%E7%94%9F%E6%B4%BB%E3%83%BB%E8%B6%A3%E5%91%B3">&#x751F;&#x6D3B;&#x30FB;&#x8DA3;&#x5473;</h2><h3 id="mtg%E3%82%82%E4%B8%80%E5%BF%9C%E7%B6%9A%E3%81%91%E3%81%A6%E3%81%BE%E3%81%99">MtG&#x3082;&#x4E00;&#x5FDC;&#x7D9A;&#x3051;&#x3066;&#x307E;&#x3059;</h3><p>MTG Arena&#x306F;&#x307B;&#x3068;&#x3093;&#x3069;&#x8D77;&#x52D5;&#x3057;&#x306A;&#x304B;&#x3063;&#x305F;&#x3051;&#x3069;&#x3001;&#x7D19;&#x306E;&#x30C9;&#x30E9;&#x30D5;&#x30C8;&#x30FB;&#x30B7;&#x30FC;&#x30EB;&#x30C9;&#x30FB;&#x7D71;&#x7387;&#x8005;&#x306F;&#x5F15;&#x304D;&#x7D9A;&#x304D;&#x8EAB;&#x5185;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x3067;&#x7D9A;&#x3051;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p><ul><li>&#x30E1;&#x30EB;&#x30AB;&#x30EA;&#x6642;&#x4EE3;&#x306E;&#x540C;&#x50DA;&#x306E;&#x548C;&#x7530;&#x3055;&#x3093;&#x306E;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x3067;&#x30BB;&#x30C3;&#x30C8;&#x767A;&#x58F2;&#x3054;&#x3068;&#x306B;&#x30C9;&#x30E9;&#x30D5;&#x30C8;</li><li>LegalOn&#x793E;&#x5185;&#x3067;&#x7D71;&#x7387;&#x8005;&#x3001;&#x6642;&#x3005;&#x30B7;&#x30FC;&#x30EB;&#x30C9;</li><li>&#x306F;&#x3066;&#x306A;&#x6642;&#x4EE3;&#x306E;&#x53CB;&#x9054;&#x3084;&#x3001;&#x305D;&#x306E;&#x7E4B;&#x304C;&#x308A;&#x3067;&#x77E5;&#x308A;&#x5408;&#x3063;&#x305F;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x306E;&#x65B9;&#x3068;&#x3001;EDH&#x3084;&#x3089;&#x30B7;&#x30FC;&#x30EB;&#x30C9;&#x3084;&#x3089;</li></ul><p>&#x4ECA;&#x5E74;&#x306F;1&#x56DE;&#x304F;&#x3089;&#x3044;&#x7AF6;&#x6280;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x306B;&#x3082;&#x51FA;&#x3066;&#x307F;&#x305F;&#x3044;&#x306A;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x6642;&#x9593;&#x304C;&#x53D6;&#x308C;&#x305A;&#x65AD;&#x5FF5;&#x3002;&#x6765;&#x5E74;&#x3053;&#x305D;&#x3002;</p><h3 id="%E5%B1%B1%E3%81%AB%E3%81%82%E3%81%BE%E3%82%8A%E8%A1%8C%E3%81%91%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F">&#x5C71;&#x306B;&#x3042;&#x307E;&#x308A;&#x884C;&#x3051;&#x306A;&#x304B;&#x3063;&#x305F;</h3><p>&#x57FC;&#x7389;&#x306E;&#x4F4E;&#x5C71;&#x306B;&#x767B;&#x3063;&#x305F;&#x304F;&#x3089;&#x3044;&#x3067;&#x3001;&#x672C;&#x683C;&#x7684;&#x306A;&#x767B;&#x5C71;&#x306F;&#x30BC;&#x30ED;&#x3067;&#x3057;&#x305F;&#x3002;&#x307E;&#x305A;&#x306F;&#x4F53;&#x529B;&#x3092;&#x3064;&#x3051;&#x306D;&#x3070;&#x3002;&#x8C37;&#x5DDD;&#x5CB3;&#x3042;&#x305F;&#x308A;&#x306B;&#x767B;&#x3063;&#x3066;&#x307F;&#x305F;&#x3044;&#x3002;&#x3042;&#x3068;&#x3001;&#x305A;&#x3063;&#x3068;&#x68DA;&#x4E0A;&#x3052;&#x3057;&#x3066;&#x3044;&#x305F;&#x5271;&#x5CB3;&#x306E;&#x30EA;&#x30D9;&#x30F3;&#x30B8;&#x3082;&#x3002;</p><h3 id="%E8%87%AA%E8%BB%A2%E8%BB%8A%E3%82%82%E5%86%8D%E9%96%8B%E3%81%A7%E3%81%8D%E3%81%9A">&#x81EA;&#x8EE2;&#x8ECA;&#x3082;&#x518D;&#x958B;&#x3067;&#x304D;&#x305A;</h3><p>&#x30AA;&#x30C0;&#x30C3;&#x30AF;&#x30B9;&#x57FC;&#x7389;&#x306E;&#x79CB;&#x306E;&#x8D70;&#x884C;&#x4F1A;&#x306B;&#x53C2;&#x52A0;&#x3059;&#x308B;&#x4E88;&#x5B9A;&#x3067;&#x3057;&#x305F;&#x304C;&#x3001;&#x524D;&#x8FF0;&#x306E;&#x901A;&#x308A;&#x3001;&#x696D;&#x52D9;&#x304C;&#x5FD9;&#x3057;&#x3059;&#x304E;&#x3066;&#x6E96;&#x5099;&#x304C;&#x9593;&#x306B;&#x5408;&#x308F;&#x306A;&#x3044;&#x3068;&#x5224;&#x65AD;&#x3057;&#x3066;&#x65AD;&#x5FF5;&#xFF08;DNS&#xFF09;&#x3002;&#x6765;&#x5E74;&#x3001;&#x843D;&#x3061;&#x7740;&#x3044;&#x3066;&#x304B;&#x3089;&#x307E;&#x305F;&#x8003;&#x3048;&#x307E;&#x3059;&#x3002;</p><h3 id="%E6%9C%AC%E3%81%AF%E3%81%9F%E3%81%8F%E3%81%95%E3%82%93%E8%AA%AD%E3%82%81%E3%81%9F">&#x672C;&#x306F;&#x305F;&#x304F;&#x3055;&#x3093;&#x8AAD;&#x3081;&#x305F;</h3><p>&#x4ECA;&#x5E74;&#x306F;&#x672C;&#x3092;&#x3051;&#x3063;&#x3053;&#x3046;&#x8AAD;&#x3081;&#x307E;&#x3057;&#x305F;&#x3002;&#x304A;&#x98A8;&#x5442;&#x306B;<a href="https://www.amazon.co.jp/dp/B0CFPHTMDX">Kindle Paperwhite</a>&#x3092;&#x6301;&#x3061;&#x8FBC;&#x3093;&#x3067;&#x8AAD;&#x3080;&#x306E;&#x304C;&#x7FD2;&#x6163;&#x5316;&#x3055;&#x308C;&#x305F;&#x306E;&#x304C;&#x52B9;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p><ul><li><a href="https://bookplus.nikkei.com/atcl/catalog/23/10/13/01057/">&#x6226;&#x7565;&#x306E;&#x8981;&#x8AE6;</a></li><li><a href="https://www.oreilly.co.jp/books/9784814400737/">&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x99C6;&#x52D5;&#x8A2D;&#x8A08;&#x3092;&#x306F;&#x3058;&#x3081;&#x3088;&#x3046;</a></li><li><a href="https://bookplus.nikkei.com/atcl/catalog/23/04/07/00760/">&#x30B9;&#x30BF;&#x30C3;&#x30D5;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3000;&#x30DE;&#x30CD;&#x30B8;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x8D85;&#x3048;&#x308B;&#x30EA;&#x30FC;&#x30C0;&#x30FC;&#x30B7;&#x30C3;&#x30D7;</a></li><li><a href="https://www.hayakawa-online.co.jp/shop/g/g0000090410/">&#x30D5;&#x30A1;&#x30B9;&#x30C8;&#xFF06;&#x30B9;&#x30ED;&#x30FC;&#x3000;&#x2015;&#x3042;&#x306A;&#x305F;&#x306E;&#x610F;&#x601D;&#x306F;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x6C7A;&#x307E;&#x308B;&#x304B;&#xFF1F;&#x2015;</a></li><li><a href="https://gihyo.jp/book/2024/978-4-297-14530-9">LangChain&#x3068;LangGraph&#x306B;&#x3088;&#x308B;RAG&#x30FB;AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#xFF3B;&#x5B9F;&#x8DF5;&#xFF3D;&#x5165;&#x9580;</a></li><li><a href="https://www.oreilly.co.jp/books/9784814401017/">&#x30DE;&#x30EB;&#x30C1;&#x30C6;&#x30CA;&#x30F3;&#x30C8;SaaS&#x30A2;&#x30FC;&#x30AD;&#x30C6;&#x30AF;&#x30C1;&#x30E3;&#x306E;&#x69CB;&#x7BC9; &#x2015;&#x539F;&#x5247;&#x3001;&#x30D9;&#x30B9;&#x30C8;&#x30D7;&#x30E9;&#x30AF;&#x30C6;&#x30A3;&#x30B9;&#x3001;AWS&#x30A2;&#x30FC;&#x30AD;&#x30C6;&#x30AF;&#x30C1;&#x30E3;&#x30D1;&#x30BF;&#x30FC;&#x30F3;</a></li><li><a href="https://www.oreilly.co.jp/books/9784814401093/">Effective TypeScript &#x7B2C;2&#x7248;&#x2015;&#x578B;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x529B;&#x3092;&#x6700;&#x5927;&#x9650;&#x306B;&#x5F15;&#x304D;&#x51FA;&#x3059;83&#x9805;&#x76EE;</a></li><li><a href="https://www.diamond.co.jp/book/9784478118443.html">&#x300C;&#x8D77;&#x696D;&#x53C2;&#x8B00;&#x300D;&#x306E;&#x6226;&#x7565;&#x66F8;&#x2015;&#x2015;&#x30B9;&#x30BF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x3092;&#x6210;&#x529F;&#x306B;&#x5C0E;&#x304F;&#x300C;&#xFF15;&#x3064;&#x306E;&#x773C;&#x300D;&#x3068;&#xFF12;&#xFF13;&#x306E;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x30EF;&#x30FC;&#x30AF;</a></li><li><a href="https://www.oreilly.co.jp/books/9784814400911/">Tidy First?</a></li><li><a href="https://book.cm-marketing.jp/books/9784295411000/">&#x52AA;&#x529B;&#x306E;&#x5730;&#x56F3;</a></li><li><a href="https://publications.asahi.com/product/25529.html">&#x4E16;&#x754C;&#x306E;&#x30A8;&#x30EA;&#x30FC;&#x30C8;&#x304C;&#x5B9F;&#x8DF5;&#x3057;&#x3066;&#x3044;&#x308B;&#x8D85;&#x751F;&#x7523;&#x7684;&#x6642;&#x9593;&#x8853;&#x3000; &#x300C;&#x30BF;&#x30A4;&#x30E0;&#x30DC;&#x30AF;&#x30B7;&#x30F3;&#x30B0;&#x300D;&#x3067;&#x6642;&#x9593;&#x3042;&#x305F;&#x308A;&#x306E;&#x6210;&#x679C;&#x3092;&#x500D;&#x5897;&#x3055;&#x305B;&#x308B;</a></li><li><a href="https://www.kodansha.co.jp/book/products/0000363613">&#x73FE;&#x4EE3;&#x601D;&#x60F3;&#x5165;&#x9580;</a></li><li><a href="https://bookplus.nikkei.com/atcl/catalog/25/05/30/02053/">AI&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x9769;&#x547D;</a></li><li><a href="https://www.shoeisha.co.jp/book/detail/9784798175911">&#x65B0;&#x898F;&#x4E8B;&#x696D;&#x3092;&#x6210;&#x529F;&#x3055;&#x305B;&#x308B;PMF&#x306E;&#x6559;&#x79D1;&#x66F8;</a></li><li><a href="https://www.harpercollins.co.jp/hc/books/detail/10971">&#x30B8;&#x30E7;&#x30D6;&#x7406;&#x8AD6;&#x3000;&#x30A4;&#x30CE;&#x30D9;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x4E88;&#x6E2C;&#x53EF;&#x80FD;&#x306B;&#x3059;&#x308B;&#x6D88;&#x8CBB;&#x306E;&#x30E1;&#x30AB;&#x30CB;&#x30BA;&#x30E0;</a></li><li><a href="https://www.diamond.co.jp/book/9784478025819.html">&#x5ACC;&#x308F;&#x308C;&#x308B;&#x52C7;&#x6C17;</a></li><li><a href="https://str.toyokeizai.net/books/9784492555552/">&#x4EEE;&#x8AAC;&#x601D;&#x8003; BCG&#x6D41; &#x554F;&#x984C;&#x767A;&#x898B;&#x30FB;&#x89E3;&#x6C7A;&#x306E;&#x767A;&#x60F3;&#x6CD5;</a></li><li><a href="https://www.diamond.co.jp/book/9784478122259.html">&#x4E00;&#x70B9;&#x96C6;&#x4E2D;&#x8853; &#x9650;&#x3089;&#x308C;&#x305F;&#x6642;&#x9593;&#x3067;&#x6B21;&#x3005;&#x3068;&#x3084;&#x308A;&#x305F;&#x3044;&#x3053;&#x3068;&#x3092;&#x5B9F;&#x73FE;&#x3067;&#x304D;&#x308B;</a></li><li><a href="https://www.kenkyusha.co.jp/book/b10090583.html">&#x65E5;&#x672C;&#x8A9E;&#x30D1;&#x30E9;&#x30B0;&#x30E9;&#x30D5;&#x30FB;&#x30E9;&#x30A4;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x5165;&#x9580;: &#x8AAD;&#x307F;&#x624B;&#x3092;&#x8FF7;&#x308F;&#x305B;&#x306A;&#x3044;&#x305F;&#x3081;&#x306E;&#x66F8;&#x304F;&#x6280;&#x8853;</a></li></ul><p>Kindle&#x306A;&#x306E;&#x3067;&#x3001;&#x8F9E;&#x66F8;&#x3092;&#x5F15;&#x3044;&#x305F;&#x308A;&#x7FFB;&#x8A33;&#x3057;&#x306A;&#x304C;&#x3089;&#x8AAD;&#x3093;&#x3060;&#x308A;&#x304C;&#x96E3;&#x3057;&#x3044;&#x306E;&#x3067;&#x3001;&#x82F1;&#x8A9E;&#x3067;&#x66F8;&#x304B;&#x308C;&#x305F;&#x672C;&#x304C;&#x307B;&#x3068;&#x3093;&#x3069;&#x8AAD;&#x3081;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x304C;&#x8AB2;&#x984C;&#x3067;&#x3059;&#x3002;&#x6D0B;&#x66F8;&#x3060;&#x3051;&#x3067;&#x306A;&#x304F;&#x3001;&#x3057;&#x3063;&#x304B;&#x308A;&#x8AAD;&#x307F;&#x8FBC;&#x307F;&#x305F;&#x3044;&#x672C;&#x306F;&#x3084;&#x306F;&#x308A;PC&#x3067;&#x8AAD;&#x3080;&#x306E;&#x304C;&#x826F;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;</p><h3 id="nix%E3%81%AB%E3%82%88%E3%82%8B%E7%92%B0%E5%A2%83%E7%AE%A1%E7%90%86%E3%82%92%E5%A7%8B%E3%82%81%E3%81%9F">Nix&#x306B;&#x3088;&#x308B;&#x74B0;&#x5883;&#x7BA1;&#x7406;&#x3092;&#x59CB;&#x3081;&#x305F;</h3><p>&#x696D;&#x52D9;&#x7528;&#x306E;MacBook&#x306E;&#x66F4;&#x65B0;&#x3092;&#x6A5F;&#x306B;&#x3001;Nix&#x3067;&#x8A2D;&#x5B9A;&#x3084;&#x30D1;&#x30C3;&#x30B1;&#x30FC;&#x30B8;&#x7BA1;&#x7406;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x6B63;&#x653B;&#x6CD5;&#x3067;&#x3084;&#x308B;&#x3068;&#x5B66;&#x7FD2;&#x30B3;&#x30B9;&#x30C8;&#x304C;&#x304B;&#x306A;&#x308A;&#x9AD8;&#x3044;&#x306E;&#x304C;&#x969C;&#x58C1;&#x306A;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x30B3;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x4E00;&#x901A;&#x308A;&#x306E;&#x74B0;&#x5883;&#x304C;&#x4F5C;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/takuyaa/dotfiles"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - takuyaa/dotfiles</div><div class="kg-bookmark-description">Contribute to takuyaa/dotfiles development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">takuyaa</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/be989bbc3763b991e086264a507266f20489dcb214c4f5ac1dd3d59157f7aaa8/takuyaa/dotfiles" alt></div></a></figure><p>&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x4E00;&#x767A;&#x3067;&#x74B0;&#x5883;&#x304C;&#x307B;&#x307C;&#x518D;&#x73FE;&#x3067;&#x304D;&#x308B;&#x306E;&#x306F;&#x672C;&#x5F53;&#x306B;&#x9A5A;&#x304D;&#x3067;&#x3057;&#x305F;&#x3002;&#x307E;&#x305F;&#x3001;&#x8A2D;&#x5B9A;&#x304C;&#x4E00;&#x7B87;&#x6240;&#x3067;&#x7BA1;&#x7406;&#x3067;&#x304D;&#x308B;&#x306E;&#x306F;&#x8A8D;&#x77E5;&#x8CA0;&#x8377;&#x304C;&#x4F4E;&#x304F;&#x3001;&#x30B3;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x30A8;&#x30FC;&#x30B8;&#x30A7;&#x30F3;&#x30C8;&#x3068;&#x306E;&#x76F8;&#x6027;&#x3082;&#x629C;&#x7FA4;&#x3067;&#x3059;&#x3002;</p><p>&#x8A2D;&#x5B9A;&#x306E;&#x8FFD;&#x52A0;&#x3084;&#x30D1;&#x30C3;&#x30B1;&#x30FC;&#x30B8;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3082;&#x81EA;&#x7136;&#x8A00;&#x8A9E;&#x3067;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x7279;&#x306B;&#x3001;<a href="https://github.com/nixos/nixpkgs">Nixpkgs</a>&#x306B;&#x30D1;&#x30C3;&#x30B1;&#x30FC;&#x30B8;&#x304C;&#x3042;&#x308C;&#x3070;&#x305D;&#x308C;&#x3092;&#x3001;Homebrew&#x306B;&#x3057;&#x304B;&#x306A;&#x3051;&#x308C;&#x3070;&#x305D;&#x308C;&#x3092;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3057;&#x305F;&#x3044;&#x3001;&#x307F;&#x305F;&#x3044;&#x306A;&#x3053;&#x3068;&#x304C;&#x4E00;&#x8A00;&#x6307;&#x793A;&#x3059;&#x308B;&#x3060;&#x3051;&#x3067;&#x3067;&#x304D;&#x308B;&#x306E;&#x306F;&#x60F3;&#x50CF;&#x4EE5;&#x4E0A;&#x306B;&#x4FBF;&#x5229;&#x3067;&#x3059;&#x3002;</p><h3 id="%E6%9C%AC%E3%81%AE%E5%9F%B7%E7%AD%86%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%9F">&#x672C;&#x306E;&#x57F7;&#x7B46;&#x3092;&#x958B;&#x59CB;&#x3057;&#x305F;</h3><p>&#x3042;&#x308A;&#x304C;&#x305F;&#x3044;&#x3053;&#x3068;&#x306B;&#x3001;1&#x6708;&#x306B;&#x691C;&#x7D22;&#x6280;&#x8853;&#x306B;&#x95A2;&#x3059;&#x308B;&#x66F8;&#x7C4D;&#x306E;&#x304A;&#x8A71;&#x3092;&#x3044;&#x305F;&#x3060;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x304B;&#x306A;&#x308A;&#x8FF7;&#x3063;&#x305F;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x3048;&#x3044;&#x3084;&#x3067;&#x5F15;&#x304D;&#x53D7;&#x3051;&#x308B;&#x3053;&#x3068;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x4ECA;&#x306E;&#x3068;&#x3053;&#x308D;&#x3001;&#x696D;&#x52D9;&#x3068;&#x306F;&#x95A2;&#x4FC2;&#x306A;&#x304F;&#x30D7;&#x30E9;&#x30A4;&#x30D9;&#x30FC;&#x30C8;&#x306E;&#x6642;&#x9593;&#x3067;&#x3084;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x306A;&#x304B;&#x306A;&#x304B;&#x9032;&#x307F;&#x304C;&#x9045;&#x3044;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;2026&#x5E74;&#x4E2D;&#x306B;&#x4F55;&#x3068;&#x304B;&#x5F62;&#x306B;&#x3057;&#x305F;&#x3044;&#x3068;&#x8003;&#x3048;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p><h3 id="%E5%81%A5%E5%BA%B7%E9%9D%A2">&#x5065;&#x5EB7;&#x9762;</h3><p>&#x3053;&#x3053;&#x6570;&#x5E74;&#x3001;&#x5EA7;&#x3063;&#x305F;&#x307E;&#x307E;&#x306E;&#x59FF;&#x52E2;&#x304C;&#x9577;&#x304F;&#x3001;&#x904B;&#x52D5;&#x4E0D;&#x8DB3;&#x3082;&#x76F8;&#x307E;&#x3063;&#x3066;&#x8170;&#x75DB;&#x3084;&#x80A9;&#x3053;&#x308A;&#x306B;&#x305A;&#x3063;&#x3068;&#x60A9;&#x307E;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x6563;&#x6B69;&#x3092;&#x7FD2;&#x6163;&#x5316;&#x3057;&#x305F;&#x308A;&#x3001;&#x6574;&#x4F53;&#x306B;&#x306F;&#x901A;&#x3063;&#x305F;&#x308A;&#x306F;&#x3057;&#x3066;&#x307F;&#x3066;&#x3044;&#x308B;&#x3082;&#x306E;&#x306E;&#x3001;&#x629C;&#x672C;&#x7684;&#x306A;&#x6539;&#x5584;&#x3082;&#x898B;&#x8FBC;&#x3081;&#x305A;&#x3001;&#x696D;&#x52D9;&#x306B;&#x3082;&#x652F;&#x969C;&#x304C;&#x51FA;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>2026&#x5E74;&#x306F;&#x4F5C;&#x696D;&#x74B0;&#x5883;&#x306E;&#x898B;&#x76F4;&#x3057;&#x3068;&#x3001;&#x30E9;&#x30F3;&#x30CB;&#x30F3;&#x30B0;&#x30FB;&#x7B4B;&#x30C8;&#x30EC;&#x3042;&#x305F;&#x308A;&#x3092;&#x7FD2;&#x6163;&#x5316;&#x3059;&#x308B;&#x306E;&#x304C;&#x76EE;&#x6A19;&#x306B;&#x306A;&#x308A;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p><h2 id="%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</h2><p>&#x4ECA;&#x5E74;&#x306F;&#x307E;&#x3042;&#x307E;&#x3042;&#x5927;&#x5909;&#x306A;1&#x5E74;&#x3067;&#x3057;&#x305F;&#x3002;&#x4ED5;&#x4E8B;&#x3067;&#x6C42;&#x3081;&#x3089;&#x308C;&#x308B;&#x30ED;&#x30FC;&#x30EB;&#x304C;&#x5927;&#x304D;&#x304F;&#x5909;&#x308F;&#x3063;&#x305F;&#x305F;&#x3081;&#x3001;&#x81A8;&#x5927;&#x306A;&#x30A4;&#x30F3;&#x30D7;&#x30C3;&#x30C8;&#x3068;&#x696D;&#x52D9;&#x4E0A;&#x306E;&#x6210;&#x679C;&#x3092;&#x4E21;&#x7ACB;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x305D;&#x308C;&#x306B;&#x52A0;&#x3048;&#x3066;&#x3001;&#x30C7;&#x30D6;&#x30B5;&#x30DF;&#x3067;&#x306E;&#x767B;&#x58C7;&#x3084;&#x3089;&#x793E;&#x5185;&#x30BB;&#x30DF;&#x30CA;&#x30FC;&#x306E;&#x6E96;&#x5099;&#x3084;&#x3089;&#x3082;&#x3042;&#x308A;&#x3001;&#x305A;&#x3063;&#x3068;&#x50CD;&#x3044;&#x3066;&#x305F;&#x306A;&#x3042;&#x3068;&#x3044;&#x3046;&#x5370;&#x8C61;&#x3067;&#x3057;&#x305F;&#x3002;</p><p>&#x6765;&#x5E74;&#x306F;&#x3082;&#x3046;&#x5C11;&#x3057;&#x4ED5;&#x4E8B;&#x91CF;&#x3092;&#x6291;&#x3048;&#x3066;&#x3001;&#x5065;&#x5EB7;&#x9762;&#x3068;&#x30D7;&#x30E9;&#x30A4;&#x30D9;&#x30FC;&#x30C8;&#x306E;&#x512A;&#x5148;&#x5EA6;&#x3092;&#x4E0A;&#x3052;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#xFF08;&#x6BCE;&#x5E74;&#x8A00;&#x3063;&#x3066;&#x308B;&#x6C17;&#x304C;&#x3059;&#x308B;&#xFF09;&#x3002;</p><p>&#x3067;&#x306F;&#x3067;&#x306F;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[2024振り返り]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x3042;&#x3051;&#x307E;&#x3057;&#x3066;&#x304A;&#x3081;&#x3067;&#x3068;&#x3046;&#x3054;&#x3056;&#x3044;&#x307E;&#x3059;&#x3002;&#x3060;&#x3044;&#x3076;&#x9045;&#x304F;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;2024&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x3067;&#x3059;&#x3002;</p>
<p>&#x53BB;&#x5E74;&#x307E;&#x3067;&#x306E;&#x632F;&#x308A;&#x8FD4;</p>]]></description><link>https://takuya-a.net/blog/2024-look-back/</link><guid isPermaLink="false">6779fd1be2c6290001115ce5</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Sun, 05 Jan 2025 08:11:32 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x3042;&#x3051;&#x307E;&#x3057;&#x3066;&#x304A;&#x3081;&#x3067;&#x3068;&#x3046;&#x3054;&#x3056;&#x3044;&#x307E;&#x3059;&#x3002;&#x3060;&#x3044;&#x3076;&#x9045;&#x304F;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;2024&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x3067;&#x3059;&#x3002;</p>
<p>&#x53BB;&#x5E74;&#x307E;&#x3067;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x306F;&#x3053;&#x3061;&#x3089;&#xFF1A;</p>
<ul>
<li><a href="https://www.takuya-a.net/blog/2023-look-back/">2023&#x632F;&#x308A;&#x8FD4;&#x308A;</a></li>
<li><a href="https://takuya-a.net/blog/2022-look-back/">2022&#x632F;&#x308A;&#x8FD4;&#x308A;</a></li>
</ul>
<h2 id="%E7%94%9F%E6%B4%BB">&#x751F;&#x6D3B;</h2>
<h3 id="%E6%8A%95%E8%B3%87%E3%82%92%E5%A7%8B%E3%82%81%E3%81%9F">&#x6295;&#x8CC7;&#x3092;&#x59CB;&#x3081;&#x305F;</h3>
<p>&#x65B0;NISA&#xFF1F;&#x3063;&#x3066;&#x3084;&#x3064;&#x3092;&#x3084;&#x3063;&#x3066;&#x304A;&#x304F;&#x3068;&#x3044;&#x3044;&#x3089;&#x3057;&#x3044;&#x306E;&#x3067;&#x7A4D;&#x7ACB;&#x306E;&#x8A2D;&#x5B9A;&#x3068;&#x304B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;SBI&#x306E;UI&#x304C;&#x96E3;&#x3057;&#x3059;&#x304E;&#x308B;&#x3002;Discord&#x3067;&#x753B;&#x9762;&#x5171;&#x6709;&#x3057;&#x306A;&#x304C;&#x3089;&#x8A2D;&#x5B9A;&#x65B9;&#x6CD5;&#x3092;&#x6559;&#x3048;&#x3066;&#x3082;&#x3089;&#x3063;&#x3066;&#x306A;&#x3093;&#x3068;&#x304B;&#x8A2D;&#x5B9A;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x5143;&#x540C;&#x50DA;&#x306E;<a href="https://x.com/t_snzk">t_&#x304F;&#x3093;</a>&#x306B;&#x611F;&#x8B1D;&#x3002;&#x3053;&#x3093;&#x3069;&#x713C;&#x8089;&#x304A;&#x3054;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%82%B3%E3%83%BC%E3%83%92%E3%83%BC">&#x30B3;&#x30FC;&#x30D2;&#x30FC;</h3>
<p>&#x8C46;&#x4E73;&#x3092;&#x8CB7;&#x3063;&#x3066;&#x304D;&#x3066;&#x30BD;&#x30A4;&#x30E9;&#x30C6;&#x3092;&#x4F5C;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x4F53;&#x8CEA;&#x7684;&#x306B;&#x671D;&#x306B;&#xFF08;&#x725B;&#x4E73;&#x306E;&#xFF09;&#x30E9;&#x30C6;&#x3092;&#x98F2;&#x3080;&#x3068;&#x304A;&#x8179;&#x3092;&#x58CA;&#x3057;&#x304C;&#x3061;&#x306A;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x30BD;&#x30A4;&#x30E9;&#x30C6;&#x3060;&#x3068;&#x5927;&#x4E08;&#x592B;&#x3002;&#x6700;&#x521D;&#x306F;&#x7121;&#x8ABF;&#x6574;&#x8C46;&#x4E73;&#x3092;&#x8CB7;&#x3063;&#x3066;&#x304D;&#x3066;&#x8A66;&#x3057;&#x305F;&#x304C;&#x3001;&#x3042;&#x3063;&#x3055;&#x308A;&#x3057;&#x3059;&#x304E;&#x3066;&#x3044;&#x3066;&#x30A4;&#x30DE;&#x30A4;&#x30C1;&#x3002;&#x8ABF;&#x6574;&#x8C46;&#x4E73;&#x306E;&#x307B;&#x3046;&#x304C;&#x7D76;&#x5BFE;&#x304A;&#x3044;&#x3057;&#x3044;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/soy_latte.jpg" alt="soy_latte" loading="lazy"></p>
<p>&#x30E9;&#x30C6;&#x30A2;&#x30FC;&#x30C8;&#x306F;&#x4E0A;&#x9054;&#x3057;&#x306A;&#x304B;&#x3063;&#x305F;&#x3002;</p>
<h3 id="mixi2">mixi2</h3>
<p>mixi2&#x304C;&#x59CB;&#x307E;&#x308A;&#x307E;&#x3057;&#x305F;&#x306D;&#x3002;&#x6700;&#x8FD1;SNS&#x304C;&#x5897;&#x3048;&#x3059;&#x304E;&#x3066;&#x3069;&#x3046;&#x4F7F;&#x3044;&#x5206;&#x3051;&#x3066;&#x3044;&#x304F;&#x306E;&#x304C;&#x3044;&#x3044;&#x306E;&#x304B;&#x60A9;&#x3093;&#x3067;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3042;&#x3001;&#x306F;&#x3066;&#x306A;&#x5352;&#x696D;&#x751F;&#x306E;&#x305F;&#x3081;&#x306E;<a href="https://mixi.social/@takuyaa/posts/bf45f2ba-ebdc-4755-bf52-1c3a115ffe31">ex-hatena&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x3092;&#x3064;&#x304F;&#x308A;&#x307E;&#x3057;&#x305F;</a>&#xFF08;&#x73FE;&#x5F79;&#x3082;OK&#xFF09;&#x3002;&#x3044;&#x3064;&#x304B;&#x30B3;&#x30DF;&#x30E5;&#x3067;&#x30AA;&#x30D5;&#x4F1A;&#x3057;&#x305F;&#x3044;&#x3002;</p>
<h2 id="%E8%B6%A3%E5%91%B3">&#x8DA3;&#x5473;</h2>
<h3 id="%E3%83%9D%E3%82%B1%E3%82%AB%E3%82%92%E5%A7%8B%E3%82%81%E3%81%9F">&#x30DD;&#x30B1;&#x30AB;&#x3092;&#x59CB;&#x3081;&#x305F;</h3>
<p><a href="https://tcg.pokemon.com/en-us/tcgl/">Pok&#xE9;mon TCG Live&#xFF08;&#x901A;&#x79F0; PTCGL&#xFF09;</a> &#x304B;&#x3089;&#x30DD;&#x30B1;&#x30AB;&#x3092;&#x59CB;&#x3081;&#x307E;&#x3057;&#x305F;&#x3002;PTCGL&#x306F;MTG Arena&#x3068;&#x306F;&#x9055;&#x3063;&#x3066;&#x3058;&#x3083;&#x3093;&#x3058;&#x3083;&#x3093;&#x30AB;&#x30FC;&#x30C9;&#x3092;&#x914D;&#x3063;&#x3066;&#x304F;&#x308C;&#x308B;&#x306E;&#x3067;&#x3001;&#x307B;&#x3068;&#x3093;&#x3069;&#x304A;&#x91D1;&#x3092;&#x304B;&#x3051;&#x306A;&#x304F;&#x3066;&#x3082;tier 1&#x30C7;&#x30C3;&#x30AD;&#x3067;&#x904A;&#x3079;&#x308B;&#x306E;&#x3067;&#x6700;&#x9AD8;&#x3002;</p>
<p>PTCGL&#x306F;&#x30A2;&#x30E1;&#x30EA;&#x30AB;&#x30FB;&#x30AB;&#x30CA;&#x30C0;&#x3067;&#x3057;&#x304B;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x63D0;&#x4F9B;&#x3055;&#x308C;&#x3066;&#x3044;&#x306A;&#x3044;&#x305F;&#x3081;&#x3001;VPN&#x304C;&#x5FC5;&#x8981;&#x3067;&#x3059;&#x3002;&#x901A;&#x5E38;&#x306F;&#x6708;&#x984D;500&#x5186;&#x301C;1000&#x5186;&#x304F;&#x3089;&#x3044;&#x306E;VPN&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;&#x5951;&#x7D04;&#x3059;&#x308B;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x305D;&#x306E;&#x8CBB;&#x7528;&#x3092;&#x30B1;&#x30C1;&#x308B;&#x305F;&#x3081;&#x306B;us-west1&#xFF08;&#x30D0;&#x30FC;&#x30B8;&#x30CB;&#x30A2;&#xFF09;&#x306B;&#x7121;&#x6599;&#x306E;GCE&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x7ACB;&#x3066;&#x3066;&#x305D;&#x3053;&#x306B;Tailscale&#x3092;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3057;&#x3001; PTCGL&#x3092;&#x30D7;&#x30EC;&#x30A4;&#x3059;&#x308B;&#x3068;&#x304D;&#x306F;&#x305D;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x7D4C;&#x7531;&#x3067;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30CD;&#x30C3;&#x30C8;&#x306B;&#x51FA;&#x3066;&#x3044;&#x304F;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3092;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://www.notion.so/PTCGL-VPN-44420d88b9bc4e11951dc0ee4f651b28?pvs=21">PTCGL VPN&#x8A2D;&#x5B9A;</a></li>
</ul>
<p>&#x7D19;&#x3067;&#x3082;<a href="https://www.pokemon-card.com/products/sv/svj.html">&#x30EA;&#x30B6;&#x30FC;&#x30C9;&#x30F3;ex&#x306E;&#x69CB;&#x7BC9;&#x6E08;&#x307F;&#x30C7;&#x30C3;&#x30AD;</a>&#x304B;&#x3089;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x7D44;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;&#x793E;&#x5185;&#x306E;&#x5927;&#x4F1A;&#x306B;&#x3082;&#x51FA;&#x5834;&#x3067;&#x304D;&#x3066;&#x3088;&#x304B;&#x3063;&#x305F;&#x3002;</p>
<h3 id="%E3%83%9D%E3%82%B1%E3%83%9D%E3%82%B1%E3%82%82%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99">&#x30DD;&#x30B1;&#x30DD;&#x30B1;&#x3082;&#x3084;&#x3063;&#x3066;&#x307E;&#x3059;</h3>
<p><a href="https://www.pokemontcgpocket.com/ja/">Pok&#xE9;mon Trading Card Game Pocket</a>&#x3053;&#x3068;&#x30DD;&#x30B1;&#x30DD;&#x30B1;&#x3092;&#x59CB;&#x3081;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x3063;&#x3061;&#x306F;&#x30B9;&#x30DE;&#x30FC;&#x30C8;&#x30D5;&#x30A9;&#x30F3;&#x3067;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;5&#x5206;&#xFF5E;10&#x5206;&#x304F;&#x3089;&#x3044;&#x3067;&#x904A;&#x3079;&#x308B;&#x306E;&#x3067;&#x4F11;&#x61A9;&#x6642;&#x9593;&#x3068;&#x304B;&#x79FB;&#x52D5;&#x6642;&#x9593;&#x306B;&#x904A;&#x3079;&#x308B;&#x306E;&#x304C;&#x826F;&#x3044;&#x3002;&#x5BFE;&#x4EBA;&#x6226;&#x3067;&#x306F;&#x30DF;&#x30E5;&#x30A6;&#x30C4;&#x30FC;ex&#x306E;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x64E6;&#x308A;&#x7D9A;&#x3051;&#x3066;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x5E7B;&#x306E;&#x5CF6;&#x74B0;&#x5883;&#x3067;&#x65B0;&#x3057;&#x304F;&#x51FA;&#x3066;&#x304D;&#x305F;&#x30BB;&#x30EC;&#x30D3;&#x30A3;ex&#x3068;&#x30AE;&#x30E3;&#x30E9;&#x30C9;&#x30B9;ex&#x304C;&#x304D;&#x3064;&#x3044;&#x3002;&#x5BFE;&#x4EBA;&#x6226;278&#x52DD;&#x3067;&#x3001;300&#x52DD;&#x304C;&#x898B;&#x3048;&#x3066;&#x304D;&#x305F;&#x3002;&#x3088;&#x304B;&#x3063;&#x305F;&#x3089;&#x30D5;&#x30EC;&#x30F3;&#x30C9;&#x767B;&#x9332;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/pokepoke.png" alt="pokepoke" loading="lazy"></p>
<h3 id="%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%EF%BC%9A%E3%82%B6%E3%83%BB%E3%82%AE%E3%83%A3%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0">&#x30DE;&#x30B8;&#x30C3;&#x30AF;&#xFF1A;&#x30B6;&#x30FB;&#x30AE;&#x30E3;&#x30B6;&#x30EA;&#x30F3;&#x30B0;</h3>
<p>&#x76F8;&#x5909;&#x308F;&#x3089;&#x305A;&#x30EA;&#x30DF;&#x30C6;&#x30C3;&#x30C9;&#xFF08;<a href="https://mtg-jp.com/gameplay/format/sealed.html">&#x30B7;&#x30FC;&#x30EB;&#x30C9;</a>&#x30FB;<a href="https://mtg-jp.com/gameplay/format/draft.html">&#x30C9;&#x30E9;&#x30D5;&#x30C8;</a>&#xFF09;&#x3070;&#x3063;&#x304B;&#x308A;&#x3084;&#x3063;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<p>&#x524D;&#x8077;&#x306E;&#x540C;&#x50DA;&#x304C;&#x4E3B;&#x50AC;&#x3059;&#x308B;&#x30EA;&#x30DF;&#x30C6;&#x4F1A;&#x306B;&#x53C2;&#x52A0;&#x3055;&#x305B;&#x3066;&#x3082;&#x3089;&#x3046;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x521D;&#x56DE;&#x306F;<a href="https://mtg-jp.com/products/0000280/">&#x30D6;&#x30EB;&#x30FC;&#x30E0;&#x30D0;&#x30ED;&#x30A6;</a>&#x306E;&#x30B7;&#x30FC;&#x30EB;&#x30C9;&#x3067;0-3&#x3001;&#x3064;&#x307E;&#x308A;&#x5168;&#x6557;&#x3057;&#x305F;&#x3093;&#x3067;&#x3059;&#x304C;&#x3001;&#x6700;&#x8FD1;&#x3084;&#x3063;&#x305F;&#x30D5;&#x30A1;&#x30A6;&#x30F3;&#x30C7;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x30BA;&#x306E;&#x30C9;&#x30E9;&#x30D5;&#x30C8;&#x3067;&#x306F;&#x3001;Arena&#x3067;&#x3057;&#x3063;&#x304B;&#x308A;&#x7DF4;&#x7FD2;&#x3057;&#x3066;&#x3044;&#x3063;&#x305F;&#x306E;&#x3068;&#x30D4;&#x30C3;&#x30AF;&#x306E;&#x904B;&#x304C;&#x7570;&#x5E38;&#x306B;&#x826F;&#x304F;&#x3066;&#x512A;&#x52DD;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x904B;&#x306B;&#x6075;&#x307E;&#x308C;&#x305F;&#x7D50;&#x679C;&#x3067;&#x306F;&#x3042;&#x308C;&#x3069;&#x3001;&#x7AF6;&#x6280;&#x30DE;&#x30B8;&#x30C3;&#x30AF;&#x3092;&#x3057;&#x3063;&#x304B;&#x308A;&#x3084;&#x3063;&#x3066;&#x3044;&#x308B;&#x4EBA;&#x305F;&#x3061;&#x306E;&#x4E2D;&#x3067;&#x52DD;&#x3066;&#x305F;&#x306E;&#x306F;&#x5C11;&#x3057;&#x81EA;&#x4FE1;&#x304C;&#x3064;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/mtg_fdn.jpg" alt="mtg_fdn" loading="lazy"></p>
<p>&#x3042;&#x3068;&#x306F;&#x4F1A;&#x793E;&#x306E;&#x4EBA;&#x305F;&#x3061;&#x3084;&#x53CB;&#x9054;&#x3068;&#x7D71;&#x7387;&#x8005;&#x3092;&#x4F55;&#x56DE;&#x304B;&#x3084;&#x3063;&#x305F;&#x304F;&#x3089;&#x3044;&#x3002;2025&#x5E74;&#x306F;&#x3082;&#x3063;&#x3068;&#x7D71;&#x7387;&#x8005;&#x3068;&#x69CB;&#x7BC9;&#x3082;&#x3084;&#x3063;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#x3002;</p>
<h3 id="%E3%83%89%E3%83%A9%E3%83%9E%E3%83%BB%E3%82%A2%E3%83%8B%E3%83%A1">&#x30C9;&#x30E9;&#x30DE;&#x30FB;&#x30A2;&#x30CB;&#x30E1;</h3>
<p>Netflix&#x9650;&#x5B9A;&#x3067;&#x3059;&#x304C;&#x3001;&#x300C;&#x4E09;&#x4F53;&#x300D;&#x3068;&#x300C;&#x5730;&#x9762;&#x5E2B;&#x305F;&#x3061;&#x300D;&#x3088;&#x304B;&#x3063;&#x305F;&#x3067;&#x3059;&#x306D;&#x3002;</p>
<p><a href="https://www.netflix.com/title/81024821?s=a&amp;trkid=13747225&amp;trg=cp">Watch 3 Body Problem | Netflix Official Site</a></p>
<p><a href="https://www.netflix.com/title/81574118?s=a&amp;trkid=13747225&amp;trg=cp">Watch Tokyo Swindlers | Netflix Official Site</a></p>
<p>&#x30A2;&#x30CB;&#x30E1;&#x306F;&#x30A2;&#x30AA;&#x306E;&#x30CF;&#x30B3;&#x3092;&#x89B3;&#x3066;&#x3044;&#x308B;&#x3051;&#x3069;&#x3001;&#x9752;&#x6625;&#x306E;&#x7729;&#x3057;&#x3055;&#x3067;&#x4F53;&#x304C;&#x6EB6;&#x3051;&#x3066;&#x3057;&#x307E;&#x3044;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;&#x3059;&#x307E;&#x3093;&#x304C;&#x305D;&#x306E;&#x77F3;&#x3092;&#x3057;&#x307E;&#x3063;&#x3066;&#x304F;&#x308C;&#x3093;&#x304B;&#x3001;&#x308F;&#x3057;&#x306B;&#x306F;&#x5F37;&#x3059;&#x304E;&#x308B;&#x2026;&#x2026;&#x3002;</p>
<p><a href="https://www.netflix.com/title/81663323?s=a&amp;trkid=13747225&amp;trg=cp&amp;clip=81918813">Watch Blue Box | Netflix Official Site</a></p>
<h2 id="%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E6%B4%BB%E5%8B%95%E3%83%BB%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88">&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x6D3B;&#x52D5;&#x30FB;&#x30A2;&#x30A6;&#x30C8;&#x30D7;&#x30C3;&#x30C8;</h2>
<h3 id="%E6%A4%9C%E7%B4%A2%E6%8A%80%E8%A1%93%E5%8B%89%E5%BC%B7%E4%BC%9A">&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;</h3>
<p>&#x4ECA;&#x5E74;&#x3082;&#x7121;&#x4E8B;&#x306B;&#x7D9A;&#x3051;&#x3089;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://search-tech.connpass.com/event/318126/">Search Engineering Tech Talk 2024 Spring - connpass</a></li>
<li><a href="https://search-tech.connpass.com/event/331560/">Search Engineering Tech Talk 2024 Summer - connpass</a></li>
</ul>
<p>&#x3068;&#x3044;&#x3063;&#x3066;&#x3082;&#x5927;&#x8C37;&#x3055;&#x3093;&#x305F;&#x3061;&#x4ED6;&#x306E;&#x30B9;&#x30BF;&#x30C3;&#x30D5;&#x306E;&#x304A;&#x304B;&#x3052;&#x306A;&#x306E;&#x3067;&#x3059;&#x304C;&#x3002;&#x6539;&#x3081;&#x3066;&#x30B9;&#x30BF;&#x30C3;&#x30D5;&#x3084;&#x30B9;&#x30D4;&#x30FC;&#x30AB;&#x30FC;&#x3001;&#x305D;&#x3057;&#x3066;&#x53C2;&#x52A0;&#x8005;&#x306E;&#x307F;&#x306A;&#x3055;&#x3093;&#x306B;&#x611F;&#x8B1D;&#x3002;</p>
<h3 id="oss">OSS</h3>
<p><a href="https://github.com/cookiecutter/cookiecutter">Cookiecutter</a> &#x3068; <a href="https://github.com/copier-org/copier">copier</a> &#x306E; Python &#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x30C6;&#x30F3;&#x30D7;&#x30EC;&#x30FC;&#x30C8;&#x3092;&#x305D;&#x308C;&#x305E;&#x308C;&#x4F5C;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3069;&#x3061;&#x3089;&#x3082; <a href="https://docs.astral.sh/uv/">uv</a> &#x30D9;&#x30FC;&#x30B9;&#x3067;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://github.com/takuyaa/cookiecutter-python-project">https://github.com/takuyaa/cookiecutter-python-project</a></li>
<li><a href="https://github.com/takuyaa/copier-uv-python-project">https://github.com/takuyaa/copier-uv-python-project</a></li>
</ul>
<p>copier &#x306E;&#x65B9;&#x304C;&#x5F8C;&#x767A;&#x3060;&#x3051;&#x3042;&#x3063;&#x3066;&#x6D17;&#x7DF4;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x5370;&#x8C61;&#x3067;&#x3059;&#x3002;</p>
<p>2024&#x5E74;&#x306F;&#x4EEE;&#x60F3;&#x74B0;&#x5883;&#x542B;&#x3081;&#x3001;uv &#x3060;&#x3051;&#x3067;&#x5B8C;&#x7D50;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x6570;&#x56DE;&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3092;&#x53E9;&#x304F;&#x3060;&#x3051;&#x3067; Python &#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x304C;&#x30BB;&#x30C3;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x3067;&#x304D;&#x308B;&#x306E;&#x3067;&#x91CD;&#x5B9D;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="react%E3%82%92%E8%A7%A6%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F">React&#x3092;&#x89E6;&#x3063;&#x3066;&#x307F;&#x305F;</h3>
<p>&#x30E2;&#x30C0;&#x30F3;&#x306A;&#x30B9;&#x30BF;&#x30C3;&#x30AF;&#x3067; React &#x306E;&#x30C1;&#x30E5;&#x30FC;&#x30C8;&#x30EA;&#x30A2;&#x30EB;&#xFF08;&#x3044;&#x308F;&#x3086;&#x308B;3&#x76EE;&#x4E26;&#x3079;&#xFF09;&#x3092;&#x3084;&#x3063;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://github.com/takuyaa/react-tutorial-tic-tac-toe">https://github.com/takuyaa/react-tutorial-tic-tac-toe</a></li>
</ul>
<p><a href="https://github.com/RicardoValdovinos/vite-react-boilerplate">https://github.com/RicardoValdovinos/vite-react-boilerplate</a> &#x3092;&#x30D9;&#x30FC;&#x30B9;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;<a href="https://vite.dev/">Vite</a> &#x306E;&#x4F53;&#x9A13;&#x304C;&#x3088;&#x304B;&#x3063;&#x305F;&#x306E;&#x304C;&#x5370;&#x8C61;&#x306B;&#x6B8B;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="ir-reading">IR Reading</h3>
<p>&#x4ECA;&#x5E74;&#x3082; <a href="https://sigirtokyo.github.io/post/2024-06-15-irreading_2024spring/">IR Reading &#xFF08;2024&#x6625;&#xFF09;</a>&#x3067;&#x767A;&#x8868;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;Multi-index hybrid query &#x3068;&#x3044;&#x3046;&#x554F;&#x984C;&#x8A2D;&#x5B9A;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;multi-way merge &#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x9AD8;&#x901F;&#x5316;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x8AD6;&#x6587;&#x3067;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1kPedP8g9O7DYNEhn_It8q44y8Vb9m06Z5jZNwR5KK_A/edit#slide=id.p">IR Reading 2024 Spring: OneSparse: A Unified System for Multi-index Vector Search - Google &#x30B9;&#x30E9;&#x30A4;&#x30C9;</a></li>
</ul>
<p><a href="https://sigirtokyo.github.io/post/2024-11-09-irreading_2024fall/">IR Reading 2024&#x79CB;</a>&#x306E;&#x307B;&#x3046;&#x3082;&#x8074;&#x8B1B;&#x3067;&#x53C2;&#x52A0;&#x3055;&#x305B;&#x3066;&#x3044;&#x305F;&#x3060;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x30A2;&#x30AB;&#x30C7;&#x30DF;&#x30A2;&#x306E;&#x7A7A;&#x6C17;&#x611F;&#x3092;&#x611F;&#x3058;&#x3089;&#x308C;&#x308B;&#x8CB4;&#x91CD;&#x306A;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x306A;&#x306E;&#x3067;&#x3001;&#x3053;&#x306E;&#x307E;&#x307E;&#x6C38;&#x9060;&#x306B;&#x7D9A;&#x3044;&#x3066;&#x307B;&#x3057;&#x3044;&#x3002;</p>
<h3 id="%E7%A4%BE%E5%86%85lt%E4%BC%9A">&#x793E;&#x5185;LT&#x4F1A;</h3>
<p><a href="https://now.legalontech.jp/n/n2219999f5799">&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x4E3B;&#x50AC;&#x306E;LT&#xFF08;Lightning Talk&#xFF09;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x300C;Tech All-in&#x300D;&#x3092;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF01;&#xFF5C;LegalOn Now</a></p>
<p>&#x793E;&#x5185;&#x3067;LT&#x4F1A;&#x3092;&#x3084;&#x308B;&#x3068;&#x3044;&#x3046;&#x306E;&#x3067;&#x3001;<a href="https://kind.sigs.k8s.io/">kind (Kubernetes in Docker)</a> &#x3068;&#x3044;&#x3046;&#x30C4;&#x30FC;&#x30EB;&#x306B;&#x3064;&#x3044;&#x3066;&#x8A71;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;15&#x5206;&#x304F;&#x3089;&#x3044;&#x8A71;&#x3057;&#x305F;&#x306E;&#x3067;LT&#x3067;&#x306F;&#x306A;&#x3044;&#x6C17;&#x306F;&#x3059;&#x308B;&#x3002;&#x4E0A;&#x304C;&#x3063;&#x3066;&#x304D;&#x305F;&#x8A18;&#x4E8B;&#x3092;&#x898B;&#x3066;&#x307F;&#x305F;&#x3089;&#x300C;&#x306A;&#x306B;&#x308F;&#x306E;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30EA;&#x30F3;&#x30B0;&#x30B9;&#x30DA;&#x30B7;&#x30E3;&#x30EA;&#x30B9;&#x30C8;&#x300D;&#x3068;&#x3044;&#x3046;&#x65B0;&#x3057;&#x3044;&#x4E8C;&#x3064;&#x540D;&#x304C;&#x3064;&#x3044;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<h3 id="%E3%83%96%E3%83%AD%E3%82%B0">&#x30D6;&#x30ED;&#x30B0;</h3>
<p>&#x30D6;&#x30ED;&#x30B0;&#x306F;2&#x4EF6;&#x3060;&#x3051;&#x3002;2025&#x5E74;&#x306F;&#x77ED;&#x304F;&#x3066;&#x3044;&#x3044;&#x304B;&#x3089;&#x3082;&#x3063;&#x3068;&#x8A18;&#x4E8B;&#x51FA;&#x3057;&#x305F;&#x3044;&#x3002;</p>
<ul>
<li><a href="https://tech.legalforce.co.jp/entry/introduction-to-search-and-recommender-systems-for-pdm">&#x793E;&#x5185;&#x8CC7;&#x6599;&#x300C;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x306E;&#x305F;&#x3081;&#x306E;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x5165;&#x9580;&#x300D;&#x3092;&#x516C;&#x958B;&#x3057;&#x307E;&#x3059; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://takuya-a.net/blog/rabitq-and-bbq-for-ann-quantization/">&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306B;&#x304A;&#x3051;&#x308B;&#x65B0;&#x3057;&#x3044;&#x30D3;&#x30C3;&#x30C8;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x3001;RaBitQ&#x3068;BBQ</a></li>
</ul>
<p>&#x30C1;&#x30FC;&#x30E0;&#x3068;&#x3057;&#x3066;&#x306F;&#x4EE5;&#x4E0B;&#x306E;12&#x8A18;&#x4E8B;&#x304C;&#x51FA;&#x305B;&#x307E;&#x3057;&#x305F;&#xFF08;&#x3059;&#x3054;&#x3044;&#xFF01;&#xFF09;&#x3002;</p>
<ul>
<li><a href="https://tech.legalforce.co.jp/entry/2024/01/29/163748">4&#x5E74;&#x3076;&#x308A;&#x306E;&#x958B;&#x50AC;&#xFF01;&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A; - 2023 - &#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x30EC;&#x30DD;&#x30FC;&#x30C8;&#xFF06;&#x30A4;&#x30F3;&#x30BF;&#x30D3;&#x30E5;&#x30FC; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://now.legalontech.jp/n/ne442d46056f2?magazine_key=md3da895c5489">&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;~2024 Spring~ &#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x30EC;&#x30DD;&#x30FC;&#x30C8;&#xFF5C;LegalOn Now</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/2024/03/25/111445">Jaccard&#x4FC2;&#x6570;&#x306B;&#x57FA;&#x3065;&#x304F;&#x985E;&#x4F3C;&#x6587;&#x66F8;&#x691C;&#x7D22;&#x306E;&#x9AD8;&#x901F;&#x5316;&#x6280;&#x6CD5; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/2024/05/31/140717">Lucene/Elasticsearch &#x306E; Character Filter &#x3067;&#x30E6;&#x30CB;&#x30B3;&#x30FC;&#x30C9;&#x6B63;&#x898F;&#x5316;&#x3059;&#x308B;&#x3068;&#x30C8;&#x30FC;&#x30AF;&#x30F3;&#x306E;&#x30AA;&#x30D5;&#x30BB;&#x30C3;&#x30C8;&#x304C;&#x30BA;&#x30EC;&#x308B;&#x30D0;&#x30B0;&#x3078;&#x306E; Workaround - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/dataflow-practical-python-setup">Dataflow &#x5B9F;&#x8DF5;&#x958B;&#x767A;&#x30BB;&#x30C3;&#x30C8;&#x30A2;&#x30C3;&#x30D7; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/dataflow-indexer-data-consistency-improvement">Dataflow Indexer &#x30C7;&#x30FC;&#x30BF;&#x6574;&#x5408;&#x6027;&#x62C5;&#x4FDD;&#x3068;&#x6027;&#x80FD;&#x6539;&#x5584; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/wakate-57">&#x60C5;&#x5831;&#x79D1;&#x5B66;&#x82E5;&#x624B;&#x306E;&#x4F1A;&#x3067;&#x767A;&#x8868;&#x3057;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/lot-search-hackathon">&#x30BC;&#x30ED;&#x304B;&#x3089;&#x59CB;&#x3081;&#x308B;&#x793E;&#x5185;&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://now.legalontech.jp/n/n12451bf08833?magazine_key=md3da895c5489">&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x30C1;&#x30FC;&#x30E0;&#x304C;&#x793E;&#x5185;&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;&#x3092;&#x3084;&#x3063;&#x3066;&#x307F;&#x305F;&#x3089;&#x3001;&#x3081;&#x3061;&#x3083;&#x304F;&#x3061;&#x3083;&#x6709;&#x610F;&#x7FA9;&#x3060;&#x3063;&#x305F;&#x8A71;&#xFF5C;LegalOn Now</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/2024/11/08/153939">&#x30EA;&#x30E2;&#x30FC;&#x30C8;&#x30C1;&#x30FC;&#x30E0;&#x3068;&#x3057;&#x3066;&#x6210;&#x9577;&#x3057;&#x3001;&#x751F;&#x7523;&#x6027;&#x3092;&#x4E0A;&#x3052;&#x308B;&#x305F;&#x3081;&#x306E;&#x6311;&#x6226;&#x306E;&#x8ECC;&#x8DE1; - LegalOn Technologies Engineering Blog</a></li>
<li><a href="https://now.legalontech.jp/n/n291354f2a509?magazine_key=md3da895c5489">&#x5927;&#x624B;EC&#x304B;&#x3089;LegalOn&#x3078;&#xFF01; toC, toB&#x4E21;&#x65B9;&#x3092;&#x7D4C;&#x9A13;&#x3057;&#x305F;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x304C;&#x305D;&#x308C;&#x305E;&#x308C;&#x306E;&#x9B45;&#x529B;&#x3092;&#x8A9E;&#x308B;&#xFF5C;LegalOn Now</a></li>
<li><a href="https://tech.legalforce.co.jp/entry/2024/12/19/161757">SIGIR-AP 2024 &#x30B9;&#x30DD;&#x30F3;&#x30B5;&#x30FC;&#x53C2;&#x52A0;&#x30EC;&#x30DD;&#x30FC;&#x30C8; - LegalOn Technologies Engineering Blog</a></li>
</ul>
<h3 id="%E3%83%87%E3%83%96%E3%82%B5%E3%83%9F2025%EF%BC%88%E4%BA%88%E5%AE%9A%EF%BC%89">&#x30C7;&#x30D6;&#x30B5;&#x30DF;2025&#xFF08;&#x4E88;&#x5B9A;&#xFF09;</h3>
<p>&#x4F1A;&#x793E;&#x3067;&#x51FA;&#x3057;&#x305F;&#x516C;&#x52DF;&#x304C;&#x901A;&#x3063;&#x3066;&#x3001;2025&#x5E74;2&#x6708;&#x306E;&#x30C7;&#x30D6;&#x30B5;&#x30DF;2025&#x3067;&#x767B;&#x58C7;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x308C;&#x307E;&#x3067;&#x53C2;&#x52A0;&#x3057;&#x305F;&#x3053;&#x3068;&#x306A;&#x304B;&#x3063;&#x305F;&#x3093;&#x3067;&#x3059;&#x304C;&#x3001;&#x304B;&#x306A;&#x308A;&#x5927;&#x304D;&#x3044;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x307F;&#x305F;&#x3044;&#x306A;&#x306E;&#x3067;&#x3001;&#x3059;&#x3067;&#x306B;&#x7DCA;&#x5F35;&#x3057;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://event.shoeisha.jp/devsumi/20250213/session/5522">&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x306E;&#x4FA1;&#x5024;&#x3092;&#x9AD8;&#x3081;&#x308B;&#x305F;&#x3081;&#x306B;&#x30B3;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x4EE5;&#x5916;&#x306B;&#x3067;&#x304D;&#x308B;&#x3053;&#x3068;&#xFF5E;&#x5171;&#x901A;&#x8A00;&#x8A9E;&#x3067;&#x3064;&#x304F;&#x308B;&#x7570;&#x8077;&#x7A2E;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#xFF5E; - Developers Summit 2025</a></li>
</ul>
<h2 id="%E4%BB%95%E4%BA%8B">&#x4ED5;&#x4E8B;</h2>
<h3 id="%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC%E3%82%92%E7%B5%8C%E9%A8%93%E3%81%97%E3%81%9F">&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30EA;&#x30F3;&#x30B0;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x3092;&#x7D4C;&#x9A13;&#x3057;&#x305F;</h3>
<p>&#x524D;&#x4EFB;&#x8005;&#x306E;&#x9000;&#x8077;&#x306B;&#x4F34;&#x3044;&#x3001;2&#x6708;&#x304B;&#x3089;EM&#x306E;&#x8077;&#x8CAC;&#x3092;&#x62C5;&#x3046;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3082;&#x3068;&#x3082;&#x3068;&#x30C6;&#x30C3;&#x30AF;&#x30EA;&#x30FC;&#x30C9;&#x306E;&#x8CAC;&#x52D9;&#x3082;&#x8CA0;&#x3063;&#x3066;&#x3044;&#x305F;&#x306E;&#x3067;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x56F3;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x3067;&#x3044;&#x3046;&#x3068;&#x3053;&#x308D;&#x306E;&#x771F;&#x3093;&#x4E2D;&#x306E;&#x9818;&#x57DF;&#x306B;&#x3044;&#x305F;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/engineering_leadership.png" alt="engineering_leadership" loading="lazy"></p>
<p>&#x5B9F;&#x969B;&#x3001;&#x77ED;&#x671F;&#x7684;&#x306A;&#x7DE0;&#x3081;&#x5207;&#x308A;&#x306B;&#x8FFD;&#x308F;&#x308C;&#x308B;&#x4ED5;&#x4E8B;&#x3067;&#x30B9;&#x30B1;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x304C;&#x57CB;&#x3081;&#x5C3D;&#x304F;&#x3055;&#x308C;&#x3001;&#x4E2D;&#x9577;&#x671F;&#x7684;&#x306A;&#x30D3;&#x30B8;&#x30E7;&#x30F3;&#x3092;&#x8003;&#x3048;&#x305F;&#x308A;&#x3059;&#x308B;&#x306E;&#x306F;&#x96E3;&#x3057;&#x304B;&#x3063;&#x305F;&#x3002;&#x305D;&#x306E;&#x307E;&#x307E;&#x71C3;&#x3048;&#x5C3D;&#x304D;&#x308B;&#x53EF;&#x80FD;&#x6027;&#x3082;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;EM&#x306E;&#x30ED;&#x30FC;&#x30EB;&#x3092;&#x5F15;&#x304D;&#x5265;&#x304C;&#x3057;&#x3066;&#x304F;&#x308C;&#x305F;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x306B;&#x306F;&#x611F;&#x8B1D;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>EM&#x3092;&#x7D4C;&#x9A13;&#x3067;&#x304D;&#x305F;&#x3053;&#x3068;&#x81EA;&#x4F53;&#x306F;&#x3088;&#x304B;&#x3063;&#x305F;&#x3068;&#x611F;&#x3058;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x30DE;&#x30CD;&#x30FC;&#x30B8;&#x30E3;&#x30FC;&#x306E;&#x7ACB;&#x5834;&#x304B;&#x3089;&#x3067;&#x306A;&#x3044;&#x3068;&#x898B;&#x3048;&#x306A;&#x3044;&#x8996;&#x70B9;&#x307F;&#x305F;&#x3044;&#x306A;&#x3082;&#x306E;&#x306F;&#x7372;&#x5F97;&#x3067;&#x304D;&#x305F;&#x6C17;&#x304C;&#x3057;&#x307E;&#x3059;&#x3002;&#x87BA;&#x65CB;&#x968E;&#x6BB5;&#x3092;1&#x5468;&#x767B;&#x3063;&#x305F;&#x611F;&#x899A;&#x304C;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://findy-code.io/engineer-lab/songmu-henry">OSS&#x306A;&#x3069;&#x304B;&#x3089;&#x5B66;&#x3093;&#x3060;&#x30D2;&#x30E5;&#x30FC;&#x30DE;&#x30F3;&#x30B9;&#x30AD;&#x30EB;&#x3068;&#x7D4C;&#x9A13;&#x3092;&#x6B66;&#x5668;&#x306B;&#x3002;&#x4EBA;&#x751F;&#x6700;&#x5927;&#x306E;&#x632B;&#x6298;&#x3092;&#x8D8A;&#x3048;&#x3066;&#x306A;&#x304A;&#x3082;&#x6B69;&#x3080;&#x87BA;&#x65CB;&#x306E;&#x30AD;&#x30E3;&#x30EA;&#x30A2; - Findy Engineer Lab</a></li>
</ul>
<h3 id="%E6%96%B0%E8%A6%8F%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%92%E3%83%AD%E3%83%BC%E3%83%B3%E3%83%81%E3%81%97%E3%81%9F">&#x65B0;&#x898F;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x3092;&#x30ED;&#x30FC;&#x30F3;&#x30C1;&#x3057;&#x305F;</h3>
<p>&#x53BB;&#x5E74;&#x306E;&#x6625;&#x3054;&#x308D;&#x304B;&#x3089;&#x958B;&#x767A;&#x3092;&#x9032;&#x3081;&#x3066;&#x3044;&#x305F;&#x65B0;&#x898F;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;<a href="https://www.legalon-cloud.com/">LegalOn Cloud</a>&#x3092;4&#x6708;&#x306B;&#x30ED;&#x30FC;&#x30F3;&#x30C1;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x81EA;&#x5206;&#x306F;&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x57FA;&#x76E4;&#x5168;&#x4F53;&#x306E;&#x958B;&#x767A;&#x306E;&#x30EA;&#x30FC;&#x30C9;&#x3092;&#x3084;&#x3063;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x95A2;&#x9023;&#x3059;&#x308B;5&#x3064;&#x4EE5;&#x4E0A;&#x306E;&#x30C1;&#x30FC;&#x30E0;&#x3068;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3057;&#x306A;&#x304C;&#x3089;&#x77ED;&#x671F;&#x9593;&#x3067;&#x30D5;&#x30EB;&#x30B9;&#x30AF;&#x30E9;&#x30C3;&#x30C1;&#x306E;&#x5927;&#x898F;&#x6A21;&#x65B0;&#x898F;&#x958B;&#x767A;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x3001;&#x304B;&#x306A;&#x308A;&#x30C1;&#x30E3;&#x30EC;&#x30F3;&#x30B8;&#x30F3;&#x30B0;&#x306A;&#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x3067;&#x75FA;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#x4EBA;&#x751F;&#x3067;2&#x756A;&#x76EE;&#x304F;&#x3089;&#x3044;&#x306B;&#x5927;&#x5909;&#x3060;&#x3063;&#x305F;&#x3002;&#x3053;&#x306E;&#x985B;&#x672B;&#x306F;&#x305D;&#x306E;&#x3046;&#x3061;&#x4F1A;&#x793E;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x306B;&#x3067;&#x3082;&#x66F8;&#x304D;&#x305F;&#x3044;&#x3002;</p>
<h1 id="%E3%81%BE%E3%81%A8%E3%82%81">&#x307E;&#x3068;&#x3081;</h1>
<p>&#x4ED5;&#x4E8B;&#x3057;&#x304B;&#x3057;&#x3066;&#x306A;&#x3044;1&#x5E74;&#x3060;&#x3063;&#x305F;&#x3088;&#x3046;&#x306A;&#x5370;&#x8C61;&#x304C;&#x3042;&#x3063;&#x305F;&#x3051;&#x3069;&#x3001;&#x610F;&#x5916;&#x3068;&#x3044;&#x308D;&#x3044;&#x308D;&#x3084;&#x3063;&#x3066;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>2025&#x5E74;&#x3082;&#x3044;&#x308D;&#x3044;&#x308D;&#x3084;&#x3063;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;&#x305D;&#x308C;&#x3067;&#x306F;&#x3002;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://newsletter.pragmaticengineer.com/p/engineering-leadership-skillset-overlaps">https://newsletter.pragmaticengineer.com/p/engineering-leadership-skillset-overlaps</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[近似最近傍探索における新しいビット量子化手法、RaBitQとBBQ]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Elasticsearch 8.16 &#x3067; <strong>Better Binary Quantization (BBQ)</strong> &#x3068;&#x3044;&#x3046;&#x3001;&#x65B0;&#x3057;&#x3044;&#x5BC6;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x30BF;&#x30A4;&#x30D7;&#x304C;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dense-vector.html">Dense vector field type | Elasticsearch Guide | Elastic</a></li>
<li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/release-notes-8.16.0.html#feature-8.16.0">Elasticsearch version 8.16.0</a></li></ul>]]></description><link>https://takuya-a.net/blog/rabitq-and-bbq-for-ann-quantization/</link><guid isPermaLink="false">676ac13ee2c6290001115b52</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Thu, 26 Dec 2024 06:17:01 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Elasticsearch 8.16 &#x3067; <strong>Better Binary Quantization (BBQ)</strong> &#x3068;&#x3044;&#x3046;&#x3001;&#x65B0;&#x3057;&#x3044;&#x5BC6;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x30BF;&#x30A4;&#x30D7;&#x304C;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dense-vector.html">Dense vector field type | Elasticsearch Guide | Elastic</a></li>
<li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/release-notes-8.16.0.html#feature-8.16.0">Elasticsearch version 8.16.0 New features | Elasticsearch Guide | Elastic</a></li>
<li><a href="https://github.com/elastic/elasticsearch/pull/114439">Adding new experimental bbq index types by benwtrent &#xB7; Pull Request #114439 &#xB7; elastic/elasticsearch &#xB7; GitHub</a></li>
</ul>
<p>Elasticsearch &#x3067;&#x306F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5404;&#x6B21;&#x5143;&#x306E; <code>int8</code> &#x3084; <code>int4</code> &#x3078;&#x306E;&#x91CF;&#x5B50;&#x5316;&#x3092;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;BBQ &#x3067;&#x306F;&#x30D3;&#x30C3;&#x30C8;&#x306B;&#x307E;&#x3067;&#x91CF;&#x5B50;&#x5316;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x3055;&#x3089;&#x306A;&#x308B;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30B5;&#x30A4;&#x30BA;&#x306E;&#x524A;&#x6E1B;&#x3068;&#x8FD1;&#x4F3C;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306E;&#x9AD8;&#x901F;&#x5316;&#x3092;&#x56F3;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x307E;&#x305A; BBQ &#x306E;&#x5143;&#x306B;&#x306A;&#x3063;&#x305F; RaBitQ<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> &#x3068;&#x3044;&#x3046;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x3092;&#x89E3;&#x8AAC;&#x3057;&#x307E;&#x3059;&#x3002;&#x305D;&#x306E;&#x3042;&#x3068;&#x3001;Elasticsearch &#x306B;&#x304A;&#x3051;&#x308B; BBQ &#x306E;&#x5B9F;&#x88C5;&#x306B;&#x3064;&#x3044;&#x3066;&#x8AAC;&#x660E;&#x3057;&#x3001;RaBitQ &#x3068; BBQ &#x306E;&#x9055;&#x3044;&#x306B;&#x3064;&#x3044;&#x3066;&#x89E6;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x306F;<a href="https://qiita.com/advent-calendar/2024/search">&#x60C5;&#x5831;&#x691C;&#x7D22;&#x30FB;&#x691C;&#x7D22;&#x6280;&#x8853; Advent Calendar 2024</a> &#x306E; 25 &#x65E5;&#x76EE;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22; (ANN)</a>
<ul>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">ANN &#x306E;&#x554F;&#x984C;&#x8A2D;&#x5B9A;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x8A00;&#x8A9E;&#x30E2;&#x30C7;&#x30EB;&#x3068;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x57CB;&#x3081;&#x8FBC;&#x307F;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">ANN &#x306E;&#x91CD;&#x8981;&#x6027;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">ANN &#x3068;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ)</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x8EE2;&#x7F6E;&#x30D5;&#x30A1;&#x30A4;&#x30EB; (IVF)</a></li>
</ul>
</li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RaBitQ</a>
<ul>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RaBitQ &#x306E;&#x6982;&#x8981;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B63;&#x898F;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x591A;&#x6B21;&#x5143;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x8A08;&#x7B97;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x306E;&#x63A8;&#x5B9A;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RabitQ &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x306E;&#x8FD1;&#x4F3C;&#x8A08;&#x7B97;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">SIMD &#x306B;&#x3088;&#x308B;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x306E;&#x9AD8;&#x901F;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x306E;&#x6700;&#x9069;&#x5316;&#x306E;&#x5177;&#x4F53;&#x4F8B;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RaBitQ &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RaBitQ &#x3068; ANN</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">RaBitQ &#x306E;&#x62E1;&#x5F35;</a></li>
</ul>
</li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ</a>
<ul>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">Elasticsearch &#x3067;&#x306E;&#x5229;&#x7528;&#x65B9;&#x6CD5;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ &#x306B;&#x3088;&#x308B;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ &#x3067;&#x306E;&#x8DDD;&#x96E2;&#x63A8;&#x5B9A;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ &#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x69CB;&#x7BC9;&#x306E;&#x5B9F;&#x88C5;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">BBQ &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;</a></li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;</a></li>
</ul>
</li>
<li><a href="https://www.notion.so/RaBitQ-BBQ-15dc4c59e02680ecb033f10b60eb5009?pvs=21">&#x307E;&#x3068;&#x3081;</a></li>
</ul>
<h2 id="%E8%BF%91%E4%BC%BC%E6%9C%80%E8%BF%91%E5%82%8D%E6%8E%A2%E7%B4%A2-ann">&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22; (ANN)</h2>
<p>RaBitQ &#x306E;&#x524D;&#x306B;&#x3001;&#x305D;&#x306E;&#x80CC;&#x666F;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306B;&#x3064;&#x3044;&#x3066;&#x7C21;&#x5358;&#x306B;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="ann-%E3%81%AE%E5%95%8F%E9%A1%8C%E8%A8%AD%E5%AE%9A">ANN &#x306E;&#x554F;&#x984C;&#x8A2D;&#x5B9A;</h3>
<p>&#x3042;&#x308B;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C;&#x4E0E;&#x3048;&#x3089;&#x308C;&#x305F;&#x3068;&#x304D;&#x306B;&#x3001;&#x305D;&#x308C;&#x304B;&#x3089;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x63A2;&#x3059;&#x30BF;&#x30B9;&#x30AF;&#x3092;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22; (NN query; nearest neighbor query) &#x3068;&#x3044;&#x3044;&#x307E;&#x3059;&#x3002;&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x3068;&#x306F;&#x3001;NN &#x306E;&#x3088;&#x3046;&#x306B; exact &#x306B;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x63A2;&#x3059;&#x306E;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001;&#x3042;&#x308B;&#x7A0B;&#x5EA6;&#x306E;&#x8AA4;&#x5DEE;&#x3092;&#x8A31;&#x5BB9;&#x3059;&#x308B;&#x3082;&#x306E;&#x3067;&#x3059;&#x3002;</p>
<p>D &#x6B21;&#x5143;&#x306E;&#x30E6;&#x30FC;&#x30AF;&#x30EA;&#x30C3;&#x30C9;&#x7A7A;&#x9593;&#x3092;&#x8003;&#x3048;&#x307E;&#x3059;&#x3002;<strong>&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22; (ANN query; approximate nearest neighbor query)</strong> &#x3068;&#x306F;&#x3001;</p>
<ul>
<li>&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $q$ &#x306B;&#x5BFE;&#x3057;&#x3066;</li>
<li>$N$ &#x500B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x96C6;&#x5408;&#x304B;&#x3089;</li>
<li>$K$ &#x500B;&#x306E;&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x53D6;&#x5F97; (retrieve) &#x3059;&#x308B;</li>
</ul>
<p>&#x3068;&#x3044;&#x3046;&#x554F;&#x984C;&#x8A2D;&#x5B9A;&#x3067;&#x3059;&#x3002;ANN query &#x306F;&#x5358;&#x306B; <strong>ANN</strong> &#x3068;&#x547C;&#x3070;&#x308C;&#x308B;&#x3053;&#x3068;&#x3082;&#x3088;&#x304F;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;&#x305D;&#x306E;&#x305F;&#x3081;&#x3001;&#x4EE5;&#x4E0B;&#x3067;&#x306F; ANN &#x3068;&#x8868;&#x8A18;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E8%A8%80%E8%AA%9E%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF">&#x8A00;&#x8A9E;&#x30E2;&#x30C7;&#x30EB;&#x3068;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x57CB;&#x3081;&#x8FBC;&#x307F;</h3>
<p>&#x5358;&#x8A9E;&#x3084;&#x6587;&#x3001;&#x6587;&#x7AE0;&#x306A;&#x3069;&#x3001;&#x3042;&#x3089;&#x3086;&#x308B;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x8A00;&#x8A9E;&#x30E2;&#x30C7;&#x30EB; (LM; language model) &#x306B;&#x3088;&#x308A;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x5909;&#x63DB;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3092;<strong>&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x57CB;&#x3081;&#x8FBC;&#x307F; (vector embeddings)</strong> &#x3068;&#x547C;&#x3073;&#x307E;&#x3059;&#x3002;&#x81EA;&#x7136;&#x8A00;&#x8A9E;&#x51E6;&#x7406; (NLP; natural language processing) &#x3067;&#x306F;&#x901A;&#x5E38;&#x3001;100 &#x304B;&#x3089; 1000 &#x6B21;&#x5143;&#x7A0B;&#x5EA6;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x5909;&#x63DB;&#x3057;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x9AD8;&#x6B21;&#x5143;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x7A7A;&#x9593;&#x306B;&#x57CB;&#x3081;&#x8FBC;&#x307E;&#x308C;&#x305F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x3053;&#x3068;&#x3092;&#x3001;&#x5358;&#x306B;&#x57CB;&#x3081;&#x8FBC;&#x307F; (embeddings) &#x3068;&#x547C;&#x3076;&#x3053;&#x3068;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x8FD1;&#x5E74;&#x306E;LM &#x306E;&#x6025;&#x901F;&#x306A;&#x767A;&#x5C55;&#x306B;&#x3088;&#x308A;&#x3001;&#x300C;&#x8CEA;&#x306E;&#x3088;&#x3044;&#x300D;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x57CB;&#x3081;&#x8FBC;&#x307F;&#x304C;&#x7C21;&#x5358;&#x306B;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001;<strong>&#x57CB;&#x3081;&#x8FBC;&#x307E;&#x308C;&#x305F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x7A7A;&#x9593;&#x4E0A;&#x3067;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x540C;&#x58EB;&#x306F;&#x610F;&#x5473;&#x304C;&#x8FD1;&#x3044;</strong>&#x3068;&#x307F;&#x306A;&#x305B;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002;&#x3053;&#x306E;&#x6027;&#x8CEA;&#x306F;&#x60C5;&#x5831;&#x691C;&#x7D22; (information retrieval) &#x306A;&#x3069;&#x306E;&#x30BF;&#x30B9;&#x30AF;&#x306B;&#x304A;&#x3044;&#x3066;&#x91CD;&#x8981;&#x306A;&#x610F;&#x5473;&#x3092;&#x679C;&#x305F;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="ann-%E3%81%AE%E9%87%8D%E8%A6%81%E6%80%A7">ANN &#x306E;&#x91CD;&#x8981;&#x6027;</h3>
<p>&#x30C7;&#x30FC;&#x30BF;&#x304C;1&#x6B21;&#x5143;&#x3067;&#x3042;&#x308C;&#x3070;&#x3001; <a href="https://en.wikipedia.org/wiki/B-tree">B-tree</a> &#x306A;&#x3069;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3067;&#x52B9;&#x7387;&#x7684;&#x306B;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x5316;&#x30FB;&#x691C;&#x7D22;&#x3067;&#x304D;&#x307E;&#x3059;&#x304C;&#x3001;&#x591A;&#x6B21;&#x5143;&#x306B;&#x306A;&#x308B;&#x3068;&#x96E3;&#x3057;&#x304F;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x3055;&#x3089;&#x306B;&#x9AD8;&#x6B21;&#x5143;&#x3001;&#x305F;&#x3068;&#x3048;&#x3070;&#x81EA;&#x7136;&#x8A00;&#x8A9E;&#x51E6;&#x7406;&#x3067;&#x4F7F;&#x7528;&#x3055;&#x308C;&#x308B;&#x3088;&#x3046;&#x306A; 1000 &#x6B21;&#x5143;&#x30AF;&#x30E9;&#x30B9;&#x306B;&#x306A;&#x308B;&#x3068;&#x3001;<a href="https://en.wikipedia.org/wiki/K-d_tree">kd-tree</a> &#x306E;&#x3088;&#x3046;&#x306A;&#x591A;&#x6B21;&#x5143;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3082;&#x5F79;&#x306B;&#x7ACB;&#x3061;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<p>&#x305D;&#x3053;&#x3067;&#x4E00;&#x5B9A;&#x306E;&#x8AA4;&#x5DEE;&#x304C;&#x751F;&#x3058;&#x308B;&#x3053;&#x3068;&#x3092;&#x8A8D;&#x3081;&#x3001;&#x5B9F;&#x969B;&#x306F;&#x3082;&#x3063;&#x3068;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C;&#x3042;&#x308B;&#x3051;&#x308C;&#x3069;&#x3001;<strong>&#x3060;&#x3044;&#x305F;&#x3044;&#x8FD1;&#x3044; (approximate nearest neighbor)</strong> &#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x8FD4;&#x305B;&#x3070; OK &#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x306B;&#x3057;&#x307E;&#x3057;&#x3087;&#x3046;&#x3001;&#x3068;&#x3044;&#x3046;&#x554F;&#x984C;&#x8A2D;&#x5B9A;&#x304C; ANN &#x3067;&#x3059;&#x3002;</p>
<p>NN query &#x304B;&#x3089; ANN query &#x306B;&#x554F;&#x984C;&#x3092;&#x7DE9;&#x548C; (relax) &#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x9AD8;&#x6B21;&#x5143;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x691C;&#x7D22;&#x3092;&#x9AD8;&#x901F;&#x306B;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x4F8B;&#x3048;&#x3070;&#x3001;FAISS&#x3001;Annoy&#x3001;FLANN&#x3001;ScaNN&#x3001;NGT&#x3001;DiskANN &#x3068;&#x3044;&#x3063;&#x305F;&#x624B;&#x6CD5;&#xFF08;&#x5B9F;&#x88C5;&#xFF09;&#x304C;&#x6709;&#x540D;&#x3067;&#x3059;&#x3002;&#x3053;&#x308C;&#x3089;&#x306E;&#x624B;&#x6CD5;&#x306F;&#x3001;&#x7CBE;&#x5EA6; (recall) &#x3092;&#x3042;&#x308B;&#x7A0B;&#x5EA6;&#x4FDD;&#x3061;&#x306A;&#x304C;&#x3089;&#x9AD8;&#x901F;&#x306B; ANN &#x306E; K &#x500B;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x691C;&#x7D22;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x4ED6;&#x306B;&#x3082;&#x3001; <a href="https://github.com/erikbern/ann-benchmarks">ann-benchmarks</a><sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup> &#x3068;&#x3044;&#x3046;&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x306B;&#x306F;&#x3001;ANN &#x306E;&#x30E1;&#x30B8;&#x30E3;&#x30FC;&#x306A;&#x624B;&#x6CD5;&#x3068;&#x305D;&#x306E;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;&#x7D50;&#x679C;&#x304C;&#x307E;&#x3068;&#x307E;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>ANN &#x306F;&#x73FE;&#x5728;&#x3082;&#x6D3B;&#x767A;&#x306B;&#x7814;&#x7A76;&#x958B;&#x767A;&#x3055;&#x308C;&#x3001;&#x65E5;&#x9032;&#x6708;&#x6B69;&#x3067;&#x305D;&#x306E;&#x7CBE;&#x5EA6;&#x3068;&#x901F;&#x5EA6;&#x304C;&#x5411;&#x4E0A;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;ANN &#x306B;&#x8208;&#x5473;&#x3092;&#x3082;&#x3063;&#x305F;&#x65B9;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x30B9;&#x30E9;&#x30A4;&#x30C9;<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>&#x304C;&#x3088;&#x304F;&#x307E;&#x3068;&#x307E;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x53C2;&#x8003;&#x306B;&#x3059;&#x308B;&#x3068;&#x3088;&#x3044;&#x3067;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<ul>
<li><a href="https://speakerdeck.com/matsui_528/jin-si-zui-jin-bang-tan-suo-falsezui-qian-xian">&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306E;&#x6700;&#x524D;&#x7DDA; - Speaker Deck</a></li>
</ul>
<h3 id="ann-%E3%81%A8%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E9%87%8F%E5%AD%90%E5%8C%96">ANN &#x3068;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</h3>
<p>&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22; (ANN) &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x306F;&#x3001;&#x3059;&#x3079;&#x3066;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x4FDD;&#x6301;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x3054;&#x3068;&#x306B;&#x300C;&#x6B21;&#x5143;&#x6570; x &#x30B9;&#x30AB;&#x30E9;&#x30FC;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30B5;&#x30A4;&#x30BA; (e.g., <code>float32</code>)&#x300D;&#x306E;&#x5BB9;&#x91CF;&#x304C;&#x5FC5;&#x8981;&#x306B;&#x306A;&#x308A;&#x3001;&#x52B9;&#x7387;&#x7684;&#x3068;&#x306F;&#x8A00;&#x3048;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<p>&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;<strong>&#x91CF;&#x5B50;&#x5316; (quantization)</strong> &#x306F;&#x3001;&#x4E00;&#x822C;&#x306B;&#x306F; <code>float32</code> &#x3084; <code>float64</code> &#x306E;&#x914D;&#x5217;&#x3067;&#x8868;&#x73FE;&#x3055;&#x308C;&#x308B;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x3001; <code>int8</code> &#x3084; <code>int4</code> &#x306A;&#x3069;&#x306E;&#x30B3;&#x30F3;&#x30D1;&#x30AF;&#x30C8;&#x306A;&#x6574;&#x6570;&#x8868;&#x73FE;&#x7B49;&#x306B;&#x5909;&#x63DB;&#x3059;&#x308B;&#x624B;&#x6CD5;&#x3067;&#x3059;&#x3002;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x91CF;&#x5B50;&#x5316;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x30E1;&#x30E2;&#x30EA;&#x3084;&#x30C7;&#x30A3;&#x30B9;&#x30AF;&#x306E;&#x4F7F;&#x7528;&#x91CF;&#x3092;&#x6291;&#x3048;&#x3001;&#x307E;&#x305F; <a href="https://ja.wikipedia.org/wiki/SIMD">SIMD</a> &#x306B;&#x3088;&#x3063;&#x3066;&#x691C;&#x7D22;&#x51E6;&#x7406;&#x306E;&#x9AD8;&#x901F;&#x5316;&#x3092;&#x72D9;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x91CF;&#x5B50;&#x5316;&#x306B;&#x95A2;&#x9023;&#x3059;&#x308B;&#x4EE3;&#x8868;&#x7684;&#x306A; ANN &#x306E;&#x9AD8;&#x901F;&#x5316;&#x624B;&#x6CD5;&#x3068;&#x3057;&#x3066;&#x3001;&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ) &#x3068;&#x8EE2;&#x7F6E;&#x30D5;&#x30A1;&#x30A4;&#x30EB; (IVF) &#x304C;&#x3088;&#x304F;&#x77E5;&#x3089;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001;&#x91CF;&#x5B50;&#x5316;&#x3068;&#x306F;&#x76F4;&#x63A5;&#x95A2;&#x4FC2;&#x306F;&#x306A;&#x3044;&#x3067;&#x3059;&#x304C;&#x3001;&#x5225;&#x306E; ANN &#x9AD8;&#x901F;&#x5316;&#x624B;&#x6BB5;&#x3068;&#x3057;&#x3066; HNSW &#x3068;&#x3044;&#x3046;&#x30B0;&#x30E9;&#x30D5;&#x30D9;&#x30FC;&#x30B9;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x624B;&#x6CD5;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x308C;&#x3089;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x4EE5;&#x4E0B;&#x306E;&#x8CC7;&#x6599;<sup class="footnote-ref"><a href="#fn3" id="fnref3:1">[3:1]</a></sup>&#x306B;&#x8A73;&#x3057;&#x304F;&#x307E;&#x3068;&#x307E;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://speakerdeck.com/matsui_528/jin-si-zui-jin-bang-tan-suo-falsezui-qian-xian">&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306E;&#x6700;&#x524D;&#x7DDA; - Speaker Deck</a></li>
</ul>
<h3 id="%E7%9B%B4%E7%A9%8D%E9%87%8F%E5%AD%90%E5%8C%96-pq">&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ)</h3>
<p>&#x4EE3;&#x8868;&#x7684;&#x306A;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x306E;&#x4E00;&#x3064;&#x306B;&#x3001;<strong>&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ)</strong> &#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p><strong>&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x91CF;&#x5B50;&#x5316; (VQ; vector quantization)</strong> &#x306F;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x96C6;&#x5408;&#x3092;&#x4E8B;&#x524D;&#x8A08;&#x7B97;&#x3057;&#x305F; K &#x500B;&#x306E;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3067;&#x4EE3;&#x8868;&#x3059;&#x308B;&#x53E4;&#x5178;&#x7684;&#x306A;&#x624B;&#x6CD5;&#x3067;&#x3059;&#x3002;VQ &#x3067;&#x306F;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6700;&#x3082;&#x8FD1;&#x3044;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E; ID &#x3067;&#x8868;&#x73FE;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p><strong>&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ; product quantization)</strong><sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> &#x306F;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B21;&#x5143;&#x3092; M &#x500B;&#x306B;&#x5206;&#x5272;&#x3057;&#x3066;&#x3001;&#x305D;&#x308C;&#x3089;&#x306E;&#x30B9;&#x30E9;&#x30A4;&#x30B9;&#x3092;&#x305D;&#x308C;&#x305E;&#x308C; VQ &#x3059;&#x308B;&#x65B9;&#x6CD5;&#x3067;&#x3059;&#x3002;&#x3053;&#x306E; M &#x500B;&#x306E;&#x4EE3;&#x8868;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x306E; ID&#xFF09;&#x306E;&#x96C6;&#x5408;&#x3092;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x3068;&#x547C;&#x3073;&#x307E;&#x3059;&#x3002;PQ &#x3067;&#x306F;&#x3001;&#x5206;&#x5272;&#x3057;&#x305F; M &#x500B;&#x3054;&#x3068;&#x306B;&#x8FD1;&#x3044;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3092;&#x63A2;&#x3057;&#x3001;&#x305D;&#x308C;&#x3089; M &#x500B;&#x306E; ID &#x3067;&#x8868;&#x73FE;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E8%BB%A2%E7%BD%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB-ivf">&#x8EE2;&#x7F6E;&#x30D5;&#x30A1;&#x30A4;&#x30EB; (IVF)</h3>
<p>&#x307E;&#x305F;&#x3001;&#x76F4;&#x7A4D;&#x91CF;&#x5B50;&#x5316; (PQ) &#x3068;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x3066;&#x691C;&#x7D22;&#x3092;&#x52B9;&#x7387;&#x5316;&#x3059;&#x308B;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x3057;&#x3066;&#x3001;&#x8EE2;&#x7F6E;&#x30D5;&#x30A1;&#x30A4;&#x30EB; (IVF) &#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p><strong>&#x8EE2;&#x7F6E;&#x30D5;&#x30A1;&#x30A4;&#x30EB; (IVF; inverted file)</strong> &#x3082;&#x3057;&#x304F;&#x306F; <strong>IVFADC (Inverted File with Asymmetric Distance Computation)</strong><sup class="footnote-ref"><a href="#fn4" id="fnref4:1">[4:1]</a></sup> &#x3068;&#x306F;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x7684;&#x306A;&#x88DC;&#x52A9;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3001;&#x304A;&#x3088;&#x3073;&#x305D;&#x308C;&#x3092;&#x5229;&#x7528;&#x3057;&#x305F;ANN &#x306E;&#x9AD8;&#x901F;&#x5316;&#x624B;&#x6CD5;&#x3067;&#x3059;&#x3002;IVF &#x3067;&#x306F;&#x307E;&#x305A;&#x3001;&#x7A7A;&#x9593;&#x3092;&#x3044;&#x304F;&#x3064;&#x304B;&#x306B;&#x5206;&#x5272;&#x3057;&#x3001;&#x305D;&#x308C;&#x305E;&#x308C;&#x306E;&#x90E8;&#x5206;&#x7A7A;&#x9593;&#x3092;&#x4EE3;&#x8868;&#x3059;&#x308B;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3092;&#x7528;&#x610F;&#x3057;&#x307E;&#x3059;&#x3002;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C;&#x4E0E;&#x3048;&#x3089;&#x308C;&#x305F;&#x3068;&#x304D;&#x306B;&#x3001;&#x3069;&#x306E;&#x90E8;&#x5206;&#x7A7A;&#x9593;&#x306B;&#x5165;&#x308B;&#x304B;&#xFF08;&#xFF1D;&#x3069;&#x306E;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x304C;&#x8FD1;&#x3044;&#x304B;&#xFF09;&#x3092;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x7C97;&#x91CF;&#x5B50;&#x5316;&#x5668; (coarse quantizer) &#x3082;&#x4E8B;&#x524D;&#x306B;&#x6E96;&#x5099;&#x3057;&#x3066;&#x304A;&#x304D;&#x307E;&#x3059; <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>&#x3002;</p>
<p>IVF &#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x4EE3;&#x8868;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#xFF09;&#x3092;&#x30AD;&#x30FC;&#x3068;&#x3057;&#x305F;&#x8EE2;&#x7F6E;&#x30EA;&#x30B9;&#x30C8;&#x306B;&#x307E;&#x3068;&#x3081;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn4" id="fnref4:2">[4:2]</a></sup>&#x3002;IVF &#x3067;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x691C;&#x7D22;&#x3059;&#x308B;&#x3068;&#x304D;&#x306B;&#x306F;&#x3001;&#x307E;&#x305A;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x8A08;&#x7B97;&#x3057;&#x3001;&#x305D;&#x306E;&#x8EE2;&#x7F6E;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x53D6;&#x5F97;&#x3057;&#x307E;&#x3059;&#x3002;&#x305D;&#x306E;&#x3042;&#x3068;&#x5F97;&#x3089;&#x308C;&#x305F;&#x8EE2;&#x7F6E;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x8D70;&#x67FB;&#x3057;&#x3001;&#x6700;&#x7D42;&#x7684;&#x306A;&#x6700;&#x8FD1;&#x508D;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x8A08;&#x7B97;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/IVF.png" alt="Herve Jegou, Matthijs Douze, and Cordelia Schmid. 2011. Product Quantization for Nearest Neighbor Search. IEEE Trans. Pattern Anal. Mach. Intell. 33, 1 (January 2011), 117&#x2013;128. https://doi.org/10.1109/TPAMI.2010.57" loading="lazy"></p>
<h2 id="rabitq">RaBitQ</h2>
<p><strong>RaBitQ</strong><sup class="footnote-ref"><a href="#fn1" id="fnref1:1">[1:1]</a></sup> &#x306F;&#x3001;Jianyang Gao &amp; Cheng Long &#x306B;&#x3088;&#x3063;&#x3066;&#x63D0;&#x6848;&#x3055;&#x308C;&#x305F;&#x3001;&#x65B0;&#x3057;&#x3044; ANN &#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x3067;&#x3059;&#x3002;&#x3053;&#x306E;&#x65B9;&#x6CD5;&#x306F;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5404;&#x6B21;&#x5143;&#x3092;1&#x30D3;&#x30C3;&#x30C8;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30B5;&#x30A4;&#x30BA;&#x3092;&#x5C0F;&#x3055;&#x304F;&#x3057;&#x3001;&#x307E;&#x305F;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x3084; SIMD &#x3092;&#x6D3B;&#x7528;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x691C;&#x7D22;&#x51E6;&#x7406;&#x3092;&#x9AD8;&#x901F;&#x5316;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;RaBitQ &#x306E;&#x8AD6;&#x6587;&#x3067;&#x306F;&#x3001;PQ &#x3068;&#x6BD4;&#x8F03;&#x3057;&#x305F;&#x3068;&#x304D;&#x306E;&#x512A;&#x4F4D;&#x6027;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x8AAC;&#x660E;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="rabitq-%E3%81%AE%E6%A6%82%E8%A6%81">RaBitQ &#x306E;&#x6982;&#x8981;</h3>
<p>RaBitQ &#x306E;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3092;&#x3001;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x69CB;&#x7BC9;&#xFF09;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x304B;&#x3089;&#x306E;&#x691C;&#x7D22;&#xFF09;&#x306B;&#x5206;&#x3051;&#x3066;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x3059;&#x3002;&#x8AD6;&#x6587;<sup class="footnote-ref"><a href="#fn1" id="fnref1:2">[1:2]</a></sup>&#x306B;&#x5408;&#x308F;&#x305B;&#x3066;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x8868;&#x8A18;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<table>
<thead>
<tr>
<th><strong>&#x8868;&#x8A18;</strong></th>
<th><strong>&#x8AAC;&#x660E;</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>$\bm{o_r}$</td>
<td>&#x5143;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x6B63;&#x898F;&#x5316;&#x30FB;&#x91CF;&#x5B50;&#x5316;&#x524D;&#xFF09;</td>
</tr>
<tr>
<td>$\bm{q_r}$</td>
<td>&#x5143;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x6B63;&#x898F;&#x5316;&#x30FB;&#x91CF;&#x5B50;&#x5316;&#x524D;&#xFF09;</td>
</tr>
<tr>
<td>$\bm{o}$</td>
<td>&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;</td>
</tr>
<tr>
<td>$\bm{q}$</td>
<td>&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;</td>
</tr>
<tr>
<td>$\bm{c}$</td>
<td>&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#xFF08;&#x4E2D;&#x5FC3;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF09;</td>
</tr>
<tr>
<td>$C$</td>
<td>&#x91CF;&#x5B50;&#x5316;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#xFF08;&#x96C6;&#x5408;&#xFF09;</td>
</tr>
<tr>
<td>$C_{rand}$</td>
<td>&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x3092;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5316;&#x3057;&#x305F;&#x3082;&#x306E;</td>
</tr>
<tr>
<td>$\overline{\bm{x}}$</td>
<td>&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x306E;&#x4E2D;&#x304B;&#x3089;&#x9078;&#x3076;&#xFF09;</td>
</tr>
<tr>
<td>$\overline{\bm{o}}$</td>
<td>&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x306E;&#x4E2D;&#x304B;&#x3089;&#x9078;&#x3076;&#xFF09;&#x3001;&#x3064;&#x307E;&#x308A; $\overline{\bm{o}} = P \overline{\bm{x}}$</td>
</tr>
<tr>
<td>$\overline{\bm{x}}_b$</td>
<td>&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o}$ &#x3092;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x8868;&#x73FE;&#x306B;&#x3057;&#x305F;&#x3082;&#x306E;</td>
</tr>
<tr>
<td>$\bm{q}\rq$</td>
<td>&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71;&#x306E;&#x9006;&#x884C;&#x5217; $P^{-1}$ &#x3067;&#x5909;&#x63DB;&#x3057;&#x305F;&#x3082;&#x306E;&#xFF08; $\bm{q}\rq = P^{-1} \bm{q}$ &#xFF09;</td>
</tr>
<tr>
<td>$\overline{\bm{q}}$</td>
<td>&#x5909;&#x63DB;&#x5F8C;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{q}\rq$ &#x3092;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x3082;&#x306E;</td>
</tr>
<tr>
<td>$\overline{\bm{q}}_u$</td>
<td>$\overline{\bm{q}}$ &#x306E;&#x7B26;&#x53F7;&#x306A;&#x3057;&#x6574;&#x6570;&#x8868;&#x73FE;</td>
</tr>
</tbody>
</table>
<p>RaBitQ &#x3067;&#x306F;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;$\bm{o_r}$ &#x306E;&#x96C6;&#x5408;&#xFF09;&#x3092;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x30FB;&#x30A4;&#x30F3;&#x30C7;&#x30AD;&#x30B7;&#x30F3;&#x30B0;&#x3057;&#x307E;&#x3059;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#xFF09;&#x3002;</p>
<ol>
<li>&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x3092;&#x8A08;&#x7B97;&#x3057;&#x3001;&#x3059;&#x3079;&#x3066;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6B63;&#x898F;&#x5316;&#xFF08;$\bm{o_r}$ &#x3092; $\bm{o}$ &#x306B;&#x3059;&#x308B;&#xFF09;</li>
<li>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x306A;&#x76F4;&#x4EA4;&#x884C;&#x5217; $P$ &#x3092;&#x30B5;&#x30F3;&#x30D7;&#x30EA;&#x30F3;&#x30B0;&#x3057;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x3092;&#x69CB;&#x7BC9;</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{x}}_b$ &#x3092;&#x8A08;&#x7B97;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x4E2D;&#x304B;&#x3089;&#x9078;&#x3076;&#xFF09;</li>
<li>&#x4EE5;&#x4E0B;&#x3092;&#x4E8B;&#x524D;&#x8A08;&#x7B97;
<ol>
<li>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3068;&#x306E;&#x8DDD;&#x96E2; $\Vert \bm{o}_r - \bm{c} \Vert$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{o}\rangle$</li>
</ol>
</li>
</ol>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/rabitq_index.png" alt="RaBitQ Index Phase" loading="lazy"></p>
<p>&#x69CB;&#x7BC9;&#x3055;&#x308C;&#x305F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x3001;&#x691C;&#x7D22;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3067;&#x884C;&#x3044;&#x307E;&#x3059;&#xFF08;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#xFF09;&#x3002;</p>
<ol>
<li>&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6B63;&#x898F;&#x5316;&#x30FB;&#x5909;&#x63DB;</li>
<li>1.&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x91CF;&#x5B50;&#x5316;</li>
<li>&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x4EE5;&#x4E0B;&#x3092;&#x8A08;&#x7B97;
<ol>
<li>$\frac{\langle \bm{\overline{o}}, \bm{q}\rangle}{\langle \bm{\overline{o}}, \bm{o}\rangle}$ &#x3092;&#x8A08;&#x7B97;&#xFF08;$\langle \bm{o}, \bm{q}\rangle$ &#x306E;&#x8FD1;&#x4F3C;&#x5024;&#x3068;&#x3057;&#x3066;&#x4F7F;&#x7528;&#x3059;&#x308B;&#x3002;&#x5F8C;&#x8FF0;&#xFF09;</li>
<li>&#x5143;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;&#x306E;&#x63A8;&#x5B9A;&#x5024;&#x3092;&#x8A08;&#x7B97;</li>
</ol>
</li>
</ol>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/rabitq_query.png" alt="RaBitQ Query Phase" loading="lazy"></p>
<p>&#x305D;&#x308C;&#x3067;&#x306F;&#x3001;RaBitQ &#x306E;&#x5404;&#x30B9;&#x30C6;&#x30C3;&#x30D7;&#x3092;&#x8A73;&#x3057;&#x304F;&#x898B;&#x3066;&#x3044;&#x304D;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;&#x307E;&#x305A;&#x3001;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x3067;&#x3082;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x3067;&#x3082;&#x5171;&#x901A;&#x3067;&#x4F7F;&#x7528;&#x3055;&#x308C;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308B;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B63;&#x898F;&#x5316;&#x3068;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306B;&#x3088;&#x308B;&#x91CF;&#x5B50;&#x5316;&#x306B;&#x3064;&#x3044;&#x3066;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96">&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B63;&#x898F;&#x5316;</h3>
<p>&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{x}_1, \cdots, \bm{x}_k$ &#x306E;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x306F;&#x4EE5;&#x4E0B;&#x3067;&#x8A08;&#x7B97;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \bm{c} = \frac{1}{k} (\bm{x}_1 + \cdots + \bm{x}_k) \]</p>
<p>RaBitQ &#x3067;&#x306F;&#x307E;&#x305A;&#x3001;&#x4E0E;&#x3048;&#x3089;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x5168;&#x4F53;&#x304B;&#x3089;&#x3001;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x3092;&#x4E8B;&#x524D;&#x306B;&#x8A08;&#x7B97;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x305D;&#x306E;&#x5F8C;&#x3001;&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o}_r$ &#x306B;&#x5BFE;&#x3057;&#x3066;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x6B63;&#x898F;&#x5316;&#x3055;&#x308C;&#x305F;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o}$ &#x3092;&#x5F97;&#x307E;&#x3059;&#xFF1A;</p>
<p>\[ \bm{o} := \frac{\bm{o}_r - \bm{c}}{\|\bm{o}_r - \bm{c}\|} \]</p>
<p>&#x3053;&#x306E;&#x69D8;&#x5B50;&#x3092;&#x53EF;&#x8996;&#x5316;&#x3057;&#x305F;&#x3082;&#x306E;&#x304C;&#x4EE5;&#x4E0B;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup>&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/normalization-2.gif" alt="Vector normalization" loading="lazy"></p>
<h3 id="%E5%A4%9A%E6%AC%A1%E5%85%83%E3%82%B3%E3%83%BC%E3%83%89%E3%83%96%E3%83%83%E3%82%AF">&#x591A;&#x6B21;&#x5143;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;</h3>
<p>&#x6B21;&#x306B;&#x3001;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x91CF;&#x5B50;&#x5316;&#x3059;&#x308B;&#x3053;&#x3068;&#x3092;&#x8003;&#x3048;&#x307E;&#x3059;&#x3002;&#x4EE3;&#x8868;&#x70B9;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#xFF09;&#x306E;&#x96C6;&#x5408;&#xFF1D;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x3092;&#x8003;&#x3048;&#x3001;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x305D;&#x308C;&#x306B;&#x6700;&#x3082;&#x8FD1;&#x3044;&#x4EE3;&#x8868;&#x70B9;&#x3067;&#x8868;&#x73FE;&#xFF08;&#x8FD1;&#x4F3C;&#xFF09;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x3063;&#x3066;&#x91CF;&#x5B50;&#x5316;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F;&#x3001;&#x5358;&#x4F4D;&#x7403;&#x9762;&#x4E0A;&#x306B;&#x5E83;&#x304C;&#x3063;&#x3066;&#x5206;&#x5E03;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x671F;&#x5F85;&#x3055;&#x308C;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn7" id="fnref7">[7]</a></sup>&#x3002;&#x3088;&#x3063;&#x3066;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x3082;&#x3001;&#x5358;&#x4F4D;&#x7403;&#x9762;&#x4E0A;&#x306B;&#x4E00;&#x69D8;&#x306B;&#x5206;&#x5E03;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x69CB;&#x6210;&#x3057;&#x307E;&#x3059;&#x3002;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x8981;&#x7D20;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#xFF09;&#x306F;&#x5358;&#x4F4D;&#x7403;&#x9762;&#x4E0A;&#x306E;&#x70B9;&#x306A;&#x306E;&#x3067;&#x3001;&#x5358;&#x4F4D;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3067;&#x3042;&#x308B;&#x3053;&#x3068;&#x306B;&#x6CE8;&#x610F;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x7A7A;&#x9593;&#x306E;&#x6B21;&#x5143;&#x3092; $D$ &#x3068;&#x3057;&#x305F;&#x3068;&#x304D;&#x3001;&#x81EA;&#x7136;&#x306A;&#x69CB;&#x6210;&#x3068;&#x3057;&#x3066;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x3092;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x3064;&#x304F;&#x308B;&#x3053;&#x3068;&#x304C;&#x8003;&#x3048;&#x3089;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p>\[ C := \lbrace +\frac{1}{\sqrt{D}}, -\frac{1}{\sqrt{D}} \rbrace ^D \]</p>
<p>&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x69CB;&#x6210;&#x3057;&#x305F;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306F;&#x3001;&#x5177;&#x4F53;&#x7684;&#x306B;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306F; $2^D$ &#x500B;&#x306E;&#x8981;&#x7D20;&#x3092;&#x3082;&#x3061;&#x307E;&#x3059;&#xFF09;&#x3002;</p>
<ul>
<li>1&#x6B21;&#x5143;: $\lbrace +1, -1 \rbrace$</li>
<li>2&#x6B21;&#x5143;: $\lbrace \lparen +\frac{1}{\sqrt{2}}, +\frac{1}{\sqrt{2}} \rparen, \lparen +\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}} \rparen, \lparen -\frac{1}{\sqrt{2}}, +\frac{1}{\sqrt{2}} \rparen, \lparen -\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}} \rparen, \rbrace$</li>
<li>3&#x6B21;&#x5143;: $\lbrace \lparen +\frac{1}{\sqrt{3}}, +\frac{1}{\sqrt{3}}, +\frac{1}{\sqrt{3}} \rparen, \dots, \lparen -\frac{1}{\sqrt{3}}, -\frac{1}{\sqrt{3}}, -\frac{1}{\sqrt{3}} \rparen \rbrace$</li>
</ul>
<p>2&#x6B21;&#x5143;&#x306E;&#x3068;&#x304D;&#x306E;&#x4F8B;&#x3092;&#x8003;&#x3048;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;2&#x6B21;&#x5143;&#x306E;&#x5834;&#x5408;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $\lbrace \lparen +\frac{1}{\sqrt{2}}, +\frac{1}{\sqrt{2}} \rparen, \lparen +\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}} \rparen, \lparen -\frac{1}{\sqrt{2}}, +\frac{1}{\sqrt{2}} \rparen, \lparen -\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}} \rparen, \rbrace$ &#x306E;&#x4E2D;&#x304B;&#x3089;&#x3001;&#x3082;&#x3063;&#x3068;&#x3082;&#x8FD1;&#x3044;&#x4EE3;&#x8868;&#x70B9;&#x3092;&#x9078;&#x3076;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x5E7E;&#x4F55;&#x5B66;&#x7684;&#x306B;&#x8003;&#x3048;&#x308B;&#x3068;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;4&#x8C61;&#x9650;&#xFF08;&#x9818;&#x57DF;&#xFF09;&#x306E;&#x305D;&#x308C;&#x305E;&#x308C;&#x306B;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x4EE3;&#x8868;&#x70B9;&#x304C;&#x5BFE;&#x5FDC;&#x3057;&#x3066;&#x3044;&#x308B;&#x3068;&#x6349;&#x3048;&#x3089;&#x308C;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn8" id="fnref8">[8]</a></sup>&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/quantize.gif" alt="Vector quantization" loading="lazy"></p>
<p>3&#x6B21;&#x5143;&#x306E;&#x5834;&#x5408;&#x306F;&#x9818;&#x57DF;&#x304C;8&#x500B;&#x306B;&#x5897;&#x3048;&#x308B;&#x3060;&#x3051;&#x3067;&#x3001;&#x540C;&#x69D8;&#x306B;&#x5404;&#x9818;&#x57DF;&#x306E;&#x300C;&#x4E2D;&#x5FC3;&#x300D;&#x306B;&#x4EE3;&#x8868;&#x70B9;&#x304C;&#x4F4D;&#x7F6E;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;4&#x6B21;&#x5143;&#x4EE5;&#x4E0A;&#x306B;&#x306A;&#x308B;&#x3068;&#x60F3;&#x50CF;&#x3059;&#x308B;&#x306E;&#x304C;&#x96E3;&#x3057;&#x304F;&#x306F;&#x306A;&#x308A;&#x307E;&#x3059;&#x304C;&#x540C;&#x69D8;&#x3067;&#x3059;&#x3002;</p>
<p>&#x3055;&#x3066;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x3092;&#x69CB;&#x6210;&#x3059;&#x308B;&#x3068;&#x304D;&#x3001;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C;&#x5358;&#x4F4D;&#x7403;&#x9762;&#x4E0A;&#x306B;&#x5E83;&#x304C;&#x3063;&#x3066;&#x5206;&#x5E03;&#x3059;&#x308B;&#x3053;&#x3068;&#x3092;&#x4EEE;&#x5B9A;&#x3057;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x3057;&#x304B;&#x3057;&#x3001;&#x6063;&#x610F;&#x7684;&#x306B;&#x4F5C;&#x6210;&#x3057;&#x305F;&#x4EBA;&#x5DE5;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x3082;&#x306A;&#x3044;&#x9650;&#x308A;&#x3001;&#x5B9F;&#x969B;&#x306B;&#x306F;&#x504F;&#x308A;&#x304C;&#x3042;&#x308B;&#x3053;&#x3068;&#x304C;&#x60F3;&#x5B9A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x504F;&#x308A;&#x3092;&#x6271;&#x3046;&#x305F;&#x3081;&#x306B;&#x3001;RaBitQ &#x3067;&#x306F;&#x3001;&#x4E0A;&#x8A18;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x76F4;&#x4EA4;&#x5C04;&#x5F71;&#x3092;&#x8003;&#x3048;&#x3001;&#x305D;&#x308C;&#x3092;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x3068;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E3%81%AE%E8%A8%88%E7%AE%97">&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x8A08;&#x7B97;</h3>
<p>RaBitQ &#x3067;&#x306F;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x306E;&#x5404;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x306A;<strong>&#x76F4;&#x4EA4;&#x884C;&#x5217; (orthogonal matrix)</strong> $P$ &#x3067;&#x5909;&#x63DB;&#x3057;&#x305F;&#x3082;&#x306E;&#x3092;&#x6700;&#x7D42;&#x7684;&#x306A;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x3068;&#x3057;&#x307E;&#x3059;&#xFF1A;</p>
<p>\[ C_{rand} := \lbrace P \bm{x} | \bm{x} \in C \rbrace \]</p>
<p>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x3068;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x3092;&#x6E80;&#x305F;&#x3059;&#x3088;&#x3046;&#x306A;&#x6B63;&#x65B9;&#x884C;&#x5217; R &#x306E;&#x3053;&#x3068;&#x3067;&#x3057;&#x305F;&#x3002;</p>
<p>\[ R^T R = R R^T = I \]</p>
<p>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306E;&#x6027;&#x8CEA;&#x3068;&#x3057;&#x3066;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x3082;&#x306E;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<ol>
<li>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306E;&#x9006;&#x884C;&#x5217;&#x306F;&#x8EE2;&#x7F6E;&#x884C;&#x5217;&#x3067;&#x3042;&#x308B;: $R^{-1} = R^T$
<ul>
<li>&#x884C;&#x5217; $A$ &#x306E;&#x9006;&#x884C;&#x5217;&#x3068;&#x306F; $AB = BA = I$ &#x3092;&#x6E80;&#x305F;&#x3059;&#x3088;&#x3046;&#x306A;&#x884C;&#x5217; B &#x306E;&#x3053;&#x3068;&#x3002;</li>
<li>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306E;&#x5B9A;&#x7FA9;&#x304B;&#x3089; $R^T = R^{-1}$ &#x3067;&#x3042;&#x308B;&#x3002;</li>
</ul>
</li>
<li>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306F;&#x30CE;&#x30EB;&#x30E0;&#x3092;&#x4E0D;&#x5909;&#x306B;&#x4FDD;&#x3064;&#x5909;&#x63DB;&#x3067;&#x3042;&#x308B;: $\Vert R \bm{u} \Vert = \Vert \bm{u} \Vert$
<ul>
<li>R &#x3092;&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x3001; u &#x3092;&#x4EFB;&#x610F;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x3057;&#x305F;&#x3068;&#x304D;&#x3001; $\Vert R\bm{u} \Vert^2 = \langle R\bm{u}, R\bm{u} \rangle = \langle \bm{u}, R^T R\bm{u} \rangle = \langle \bm{u},\bm{u} \rangle = \Vert\bm{u}\Vert^2$&#x3002;</li>
<li>&#x3088;&#x3063;&#x3066; $\Vert Ru\Vert = \Vert u \Vert$&#x3002;</li>
</ul>
</li>
<li>&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306B;&#x3088;&#x308B;&#x5909;&#x63DB;&#x306F;&#x5185;&#x7A4D;&#x3092;&#x4E0D;&#x5909;&#x306B;&#x4FDD;&#x3064;: $\langle R\bm{u}, R\bm{v} \rangle = \langle \bm{u}, \bm{v} \rangle$
<ul>
<li>R &#x3092;&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x3001; u, v &#x3092;&#x4EFB;&#x610F;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x3057;&#x305F;&#x3068;&#x304D;&#x3001; $\langle R\bm{u}, R\bm{v} \rangle = \langle \bm{u}, R^T R\bm{v} \rangle = \langle \bm{u},\bm{v} \rangle$</li>
</ul>
</li>
</ol>
<p>$P$ &#x306F;&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306A;&#x306E;&#x3067;&#x3001;&#x5358;&#x4F4D;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{x} \in C$ &#x3092;&#x5909;&#x63DB;&#x3057;&#x305F; $P\bm{x} \in C_{rand}$ &#x3082;&#x307E;&#x305F;&#x5358;&#x4F4D;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#xFF08;&#x4E0A;&#x8A18;&#x306E;&#x6027;&#x8CEA;&#x300C;&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306F;&#x30CE;&#x30EB;&#x30E0;&#x3092;&#x4E0D;&#x5909;&#x306B;&#x4FDD;&#x3064;&#x5909;&#x63DB;&#x3067;&#x3042;&#x308B;&#x300D;&#x3088;&#x308A;&#xFF09;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001; $C_{rand}$ &#x4E0A;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#xFF09;&#x306F;&#x5358;&#x4F4D;&#x8D85;&#x7403;&#x9762;&#x4E0A;&#x306B;&#x5206;&#x5E03;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x307E;&#x305F;&#x3001;&#x6027;&#x8CEA;&#x300C;&#x76F4;&#x4EA4;&#x884C;&#x5217;&#x306B;&#x3088;&#x308B;&#x5909;&#x63DB;&#x306F;&#x5185;&#x7A4D;&#x3092;&#x4E0D;&#x5909;&#x306B;&#x4FDD;&#x3064;&#x300D;&#x306B;&#x3088;&#x308A;&#x3001;&#x3053;&#x306E;&#x76F4;&#x4EA4;&#x884C;&#x5217; $P$ &#x306B;&#x3088;&#x308B;&#x5C04;&#x5F71;&#x3067;&#x306F;&#x4EFB;&#x610F;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x9593;&#x306E;&#x5185;&#x7A4D;&#xFF08;&#x8DDD;&#x96E2;&#xFF09;&#x304C;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x76F4;&#x4EA4;&#x5C04;&#x5F71;&#x306B;&#x3088;&#x308B;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5909;&#x63DB;&#x306F;&#x3001;1&#x7A2E;&#x306E; <a href="https://arxiv.org/abs/2103.00564">Johnson-Lindenstrauss Transformation</a><sup class="footnote-ref"><a href="#fn9" id="fnref9">[9]</a></sup><sup class="footnote-ref"><a href="#fn10" id="fnref10">[10]</a></sup> &#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn11" id="fnref11">[11]</a></sup>&#x3002;</p>
<p>&#x3053;&#x306E;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x76F4;&#x4EA4;&#x884C;&#x5217; $P$ &#x306F;&#x3001;&#x5404;&#x8981;&#x7D20;&#x3092;&#x4E71;&#x6570;&#x3067;&#x521D;&#x671F;&#x5316;&#x3057;&#x305F;&#x884C;&#x5217;&#x3092; QR &#x5206;&#x89E3;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;RabitQ &#x3067;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;<a href="https://github.com/gaoj0017/RaBitQ/blob/43319950270b2181c8104a29a2e54f736798d037/data/rabitq.py#L12-L15">&#x5B9F;&#x88C5;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;</a><sup class="footnote-ref"><a href="#fn12" id="fnref12">[12]</a></sup>&#x3002;</p>
<pre><code class="language-python">G = np.random.randn(D, D).astype(&apos;float32&apos;)
Q, _ = np.linalg.qr(G)
return Q
</code></pre>
<p>&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x306F;&#x3001; $\lbrace +\frac{1}{\sqrt{D}}, -\frac{1}{\sqrt{D}} \rbrace ^D$ &#x306E;&#x3088;&#x3046;&#x306B;&#x3042;&#x308B;&#x610F;&#x5473;&#x6063;&#x610F;&#x7684;&#x306B;&#x69CB;&#x6210;&#x3057;&#x305F;&#x3082;&#x306E;&#x3067;&#x3057;&#x305F;&#x3002;&#x3053;&#x306E; $P$ &#x306E;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x6027;&#x306B;&#x3088;&#x308A;&#x3001;&#x6C7A;&#x5B9A;&#x6027;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C$ &#x306E; preference &#x3092;&#x6392;&#x9664;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>$P$ &#x306F;&#x3001;&#x3042;&#x3089;&#x3086;&#x308B;&#x5909;&#x63DB;&#x306E;&#x4E2D;&#x304B;&#x3089;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x306B;&#x30B5;&#x30F3;&#x30D7;&#x30EA;&#x30F3;&#x30B0;&#x3057;&#x305F;&#x3082;&#x306E;&#x3067;&#x3059;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001; $P$ &#x306B;&#x3088;&#x308A;&#x5909;&#x63DB;&#x3055;&#x308C;&#x305F;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x306F;&#x3001;&#x5358;&#x4F4D;&#x8D85;&#x7403;&#x9762;&#x4E0A;&#x306B;&#x4E00;&#x69D8;&#x306B;&#xFF08;&#x7B49;&#x78BA;&#x7387;&#x3067;&#xFF09;&#x5206;&#x5E03;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3088;&#x3063;&#x3066;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x504F;&#x308A;&#x304C;&#x3042;&#x3063;&#x305F;&#x3068;&#x3057;&#x3066;&#x3082;&#x3001;&#x91CF;&#x5B50;&#x5316;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x5316;&#xFF09;&#x3057;&#x305F;&#x969B;&#x3001;&#x3088;&#x308A;&#x591A;&#x69D8;&#x306A;&#x30B3;&#x30FC;&#x30C9;&#x3078;&#x3068;&#x5206;&#x6563;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x671F;&#x5F85;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x8A73;&#x7D30;&#x306F;&#x5143;&#x8AD6;&#x6587;<sup class="footnote-ref"><a href="#fn1" id="fnref1:3">[1:3]</a></sup>&#x306E; Section 3.1 &#x3092;&#x53C2;&#x7167;&#x3057;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002;</p>
<h3 id="%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E9%87%8F%E5%AD%90%E5%8C%96">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</h3>
<p>&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x306E;&#x8A08;&#x7B97;&#x304C;&#x7D42;&#x308F;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;&#x305D;&#x306E;&#x4E2D;&#x304B;&#x3089;&#xFF08;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#xFF09;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o}$ &#x306B;&#x6700;&#x3082;&#x8FD1;&#x3044;&#x3082;&#x306E;&#x3092;&#x63A2;&#x3057;&#x3001;&#x305D;&#x308C;&#x3092;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x8868;&#x73FE;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#xFF09;&#x3068;&#x3057;&#x307E;&#x3059;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306E;3&#x756A;&#x76EE;&#x306E;&#x30B9;&#x30C6;&#x30C3;&#x30D7;&#x306B;&#x76F8;&#x5F53;&#xFF09;&#x3002;</p>
<p>&#x30E6;&#x30FC;&#x30AF;&#x30EA;&#x30C3;&#x30C9;&#x8DDD;&#x96E2;&#x304C;&#x6700;&#x3082;&#x8FD1;&#x3044;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x63A2;&#x3059;&#x3053;&#x3068;&#x306F;&#x3001;&#x5185;&#x7A4D;&#x304C;&#x6700;&#x3082;&#x5927;&#x304D;&#x304F;&#x306A;&#x308B;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x63A2;&#x3059;&#x3053;&#x3068;&#x3068;&#x540C;&#x5024;&#x3067;&#x3059;&#x3002;&#x305D;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092; $\overline{\bm{o}} = P \overline{\bm{x}} \in C_{rand}$ &#x3068;&#x3057;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{o}}$ &#x306E; $P$ &#x3067;&#x306E;&#x5C04;&#x5F71;&#x524D;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C; $\overline{\bm{x}} \in C$ &#x3067;&#x3059;&#x3002;&#x3053;&#x308C;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x66F8;&#x3051;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{align*} \overline{\bm{x}} &amp;= \argmin_{\bm{x} \in C} \Vert \bm{o} - P \bm{x} \Vert^2 \\ &amp;= \argmin_{\bm{x} \in C} (\Vert \bm{o} \Vert^2 + \Vert P \bm{x} \Vert^2 - 2 \langle \bm{o}, P\bm{x} \rangle) \\ &amp;= \argmin_{\bm{x} \in C} (2 - 2 \langle \bm{o}, P \bm{x} \rangle) \\ &amp;= \argmax_{\bm{x} \in C} \langle \bm{o}, P \bm{x} \rangle \end{align*} \]</p>
<p>&#x3064;&#x307E;&#x308A;&#x3001; $\langle \bm{o}, P \bm{x} \rangle$ &#x304C;&#x6700;&#x5927;&#x306B;&#x306A;&#x308B;&#x3088;&#x3046;&#x306A; $\bm{x}$ &#x3092;&#x6C42;&#x3081;&#x305F;&#x3044;&#x308F;&#x3051;&#x3067;&#x3059;&#x3002;&#x3053;&#x308C;&#x306F;&#x3055;&#x3089;&#x306B;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5909;&#x5F62;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \langle \bm{o}, P \bm{x} \rangle = \langle P^{-1} \bm{o}, P^{-1} P \bm{x} \rangle = \langle P^{-1}\bm{o}, \bm{x} \rangle \]</p>
<p>&#x4EBA;&#x5DE5;&#x7684;&#x306B;&#x69CB;&#x6210;&#x3057;&#x305F;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x8981;&#x7D20; $\bm{x} \in C$ &#x306E;&#x5404;&#x6B21;&#x5143;&#x306E;&#x5024;&#x306F; $\pm 1 / \sqrt{D}$ &#x3067;&#x3057;&#x305F;&#x3002;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $P^{-1} \bm{o}$ &#x3068;&#x306E;&#x5185;&#x7A4D;&#x304C;&#x6700;&#x5927;&#x306B;&#x306A;&#x308B;&#x3088;&#x3046;&#x306A; $\bm{x}$ &#x3092;&#x6C7A;&#x3081;&#x308B;&#x306B;&#x306F;&#x3001;<strong>&#x305F;&#x3060;&#x30D9;&#x30AF;&#x30C8;&#x30EB;</strong> $P^{-1} \bm{o}$ <strong>&#x306E;&#x5404;&#x6B21;&#x5143;&#x306E;&#x5024;&#x306E;&#x7B26;&#x53F7;&#x3060;&#x3051;&#x3092;&#x898B;&#x308C;&#x3070;&#x3088;&#x3044;</strong>&#x3053;&#x3068;&#x304C;&#x308F;&#x304B;&#x308A;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn13" id="fnref13">[13]</a></sup>&#x3002;&#x305D;&#x308C;&#x3089;&#x306E;&#x7B26;&#x53F7;&#x3055;&#x3048;&#x308F;&#x304B;&#x308C;&#x3070;&#x3001; $\overline{\bm{x}}$ &#x3092;&#x305F;&#x3060;1&#x3064;&#x306B;&#x6C7A;&#x5B9A;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3088;&#x3063;&#x3066;&#x3001;&#x3053;&#x308C;&#x3089;&#x306E;&#x7B26;&#x53F7;&#x306E;&#x5217;&#xFF08;&#x9577;&#x3055; $D$ &#xFF09;&#x3092; $\overline{\bm{x}}_{b} \in \{ 0, 1 \}^D$ &#x3068;&#x8868;&#x3057;&#x3001;&#x3053;&#x308C;&#x3092;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x4FDD;&#x5B58;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>RaBitQ &#x3067;&#x306F;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F;&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x8868;&#x73FE;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; $D$ &#x30D3;&#x30C3;&#x30C8;&#x307E;&#x3067;&#x5C0F;&#x3055;&#x304F;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001; $\overline{\bm{x}} = ( 2 \overline{\bm{x}}_b - \bm{1}_D ) / \sqrt{D}$ &#x306B;&#x3088;&#x3063;&#x3066;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{x}}_b$ &#x304B;&#x3089;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{x}}$ &#x3092;&#x5FA9;&#x5143;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E8%B7%9D%E9%9B%A2">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;</h3>
<p>&#x3055;&#x3066;&#x3001;&#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306E;&#x554F;&#x984C;&#x306F;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o_r}$ &#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{q_r}$ &#x306E;&#x30E6;&#x30FC;&#x30AF;&#x30EA;&#x30C3;&#x30C9;&#x8DDD;&#x96E2; $\Vert \bm{o_r} - \bm{q_r} \Vert^2$ &#x304C;&#x5C0F;&#x3055;&#x3044;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x63A2;&#x3059;&#x3053;&#x3068;&#x3067;&#x3057;&#x305F;&#x3002;&#x3053;&#x308C;&#x306F;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30CE;&#x30EB;&#x30E0;&#x306E;&#x6027;&#x8CEA; $\Vert \bm{x} - \bm{y}\Vert^2 = \Vert \bm{x} |^2 + \Vert \bm{y} \Vert^2 - 2 \cdot \langle \bm{x}, \bm{y} \rangle$ &#x3092;&#x4F7F;&#x3046;&#x3068;&#x3001;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x3092;&#x4F7F;&#x3063;&#x3066;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5C55;&#x958B;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{align} \Vert \bm{o_r} - \bm{q_r} \Vert^2 &amp;= \Vert (\bm{o_r} - \bm{c}) - (\bm{q_r} - \bm{c}) \Vert^2 \\ &amp;= \Vert \bm{o_r} - \bm{c} \Vert^2 + \Vert \bm{q_r} - \bm{c}\Vert^2 - 2 \cdot \langle \bm{o_r} - \bm{c}, \bm{q_r} - \bm{c} \rangle \end{align} \]</p>
<p>&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B63;&#x898F;&#x5316;&#x306E;&#x3068;&#x3053;&#x308D;&#x3067;&#x8FF0;&#x3079;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; $\bm{o} := \frac{\bm{o_r} - \bm{c}}{\Vert\bm{o_r} - \bm{c}\Vert}$ &#x3067;&#x3057;&#x305F;&#x3002;&#x307E;&#x305F;&#x3001;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F;&#x540C;&#x69D8;&#x306B; $\bm{q} := \frac{\bm{q_r} - \bm{c}}{\Vert\bm{q_r} - \bm{c}\Vert}$ &#x3068;&#x66F8;&#x3051;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3089;&#x306E;&#x5185;&#x7A4D;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x66F8;&#x3051;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{align} \langle \bm{o}, \bm{q} \rangle &amp;= \langle \frac{\bm{o_r} - \bm{c}}{\Vert \bm{o_r} - \bm{c} \Vert}, \frac{\bm{q_r} - \bm{c}}{\Vert \bm{q_r} - \bm{c} \Vert} \rangle \\ &amp;= \frac{\langle \bm{o_r} - \bm{c}, \bm{q_r} - \bm{c} \rangle}{\Vert \bm{o_r} - \bm{c} \Vert \cdot \Vert \bm{q_r} - \bm{c} \Vert} \end{align} \]</p>
<p>(3) &#x5F0F;&#x304B;&#x3089; (4) &#x5F0F;&#x3078;&#x306E;&#x5C55;&#x958B;&#x306B;&#x306F;&#x3001;&#x5185;&#x7A4D;&#x306E;&#x6027;&#x8CEA; $\langle a \bm{x}, \bm{y} \rangle = a \langle \bm{x}, \bm{y} \rangle$ &#x3092;&#x4F7F;&#x7528;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x306E;&#x95A2;&#x4FC2;&#x6027;&#xFF08; (4) &#x5F0F;&#xFF09;&#x3092;&#x4F7F;&#x3046;&#x3068;&#x3001; (2) &#x5F0F;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5909;&#x5F62;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{equation} \Vert \bm{o_r} - \bm{q_r} \Vert^2 = \Vert \bm{o_r} - \bm{c} \Vert^2 + \Vert \bm{q_r} - \bm{c} \Vert^2 - 2 \cdot \Vert \bm{o_r} - \bm{c} \Vert \cdot \Vert \bm{q_r} - \bm{c} \Vert \cdot \langle \bm{o}, \bm{q} \rangle \end{equation} \]</p>
<p>&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o_r}$ &#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{q_r}$ &#x306E;&#x30E6;&#x30FC;&#x30AF;&#x30EA;&#x30C3;&#x30C9;&#x8DDD;&#x96E2; $\Vert \bm{o_r} - \bm{q_r}\Vert^2$ &#x306F;&#x3001;&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x30B3;&#x30F3;&#x30DD;&#x30FC;&#x30CD;&#x30F3;&#x30C8;&#x306B;&#x5206;&#x96E2;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>(5) &#x5F0F;&#x306E;&#x6700;&#x521D;&#x3068;&#x6700;&#x5F8C;&#x306E;&#x9805;&#x306B;&#x3042;&#x3089;&#x308F;&#x308C;&#x308B; $\Vert \bm{o_r} - \bm{c}\Vert$ &#x306F;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E;&#x8DDD;&#x96E2;&#x3067;&#x3059;&#x3002;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x69CB;&#x7BC9;&#x6642;&#x306B;&#x8A08;&#x7B97;&#x6E08;&#x307F;&#x306E;&#x305F;&#x3081;&#x3001;&#x3053;&#x308C;&#x306F;&#x4E8B;&#x524D;&#x306B;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;<strong>&#x4E8B;&#x524D;&#x8A08;&#x7B97;&#x3057;&#x305F; $\Vert \bm{o_r} - \bm{c} \Vert$ &#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3068;&#x4E00;&#x7DD2;&#x306B;&#x4FDD;&#x5B58;&#x3057;&#x3066;&#x304A;&#x304D;&#x307E;&#x3059;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306E;4&#x756A;&#x76EE;&#xFF09;</strong>&#x3002;&#x307E;&#x305F;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E;&#x8DDD;&#x96E2; $\Vert \bm{q_r} - \bm{c} \Vert$ &#x306F;&#x691C;&#x7D22;&#x6642;&#x306B;1&#x56DE;&#x3060;&#x3051;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x3044;&#x305F;&#x3081;&#x3001;&#x554F;&#x984C;&#x306B;&#x306F;&#x306A;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<p>&#x3067;&#x306F;&#x3001;&#x6700;&#x5F8C;&#x306E;&#x30B3;&#x30F3;&#x30DD;&#x30FC;&#x30CD;&#x30F3;&#x30C8;&#x3067;&#x3042;&#x308B;&#x5185;&#x7A4D; $\langle \bm{o}, \bm{q} \rangle$ &#x3092; RaBitQ &#x304C;&#x3069;&#x3046;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x304B;&#x3092;&#x898B;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%86%85%E7%A9%8D%E3%81%AE%E6%8E%A8%E5%AE%9A">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x306E;&#x63A8;&#x5B9A;</h3>
<p>RabitQ &#x3067;&#x306F;&#x3001;&#x5185;&#x7A4D; $\langle \bm{o}, \bm{q} \rangle$ &#x306E;&#x63A8;&#x5B9A;&#x5024;&#x3068;&#x3057;&#x3066; $\frac{\langle \overline{\bm{o}}, \bm{q} \rangle}{\langle \overline{\bm{o}}, \bm{o} \rangle}$ &#x3092;&#x4F7F;&#x7528;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o}$ &#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{q}$ &#x304C;&#x5171;&#x7DDA; (colinear) &#x3067;&#x3042;&#x308B;&#x3001;&#x3064;&#x307E;&#x308A; $\bm{o} = \bm{q}$ &#x3082;&#x3057;&#x304F;&#x306F; $\bm{o} = - \bm{q}$ &#x3067;&#x3042;&#x308B;&#x3068;&#x304D;&#x3001; $\langle \overline{\bm{o}}, \bm{q} \rangle = \langle \overline{\bm{o}}, \bm{o} \rangle \cdot \langle \bm{o}, \bm{q} \rangle$ &#x304C;&#x6210;&#x308A;&#x7ACB;&#x3061;&#x307E;&#x3059;&#xFF08;&#x5171;&#x7DDA;&#x3067;&#x3042;&#x308C;&#x3070;&#x4EFB;&#x610F;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x6210;&#x308A;&#x7ACB;&#x3064;&#xFF09;&#x3002;&#x3053;&#x306E;&#x5834;&#x5408;&#x3001;&#x5185;&#x7A4D; $\langle \bm{o}, \bm{q} \rangle$ &#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x7C21;&#x5358;&#x306B;&#x89E3;&#x3051;&#x3066;&#x3001;</p>
<p>\[ \begin{equation} \langle \bm{o}, \bm{q} \rangle = \frac{\langle \overline{\bm{o}}, \bm{q} \rangle}{\langle \overline{\bm{o}}, \bm{o} \rangle} \end{equation} \]</p>
<p>&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3092;&#x63A8;&#x5B9A;&#x5024;&#x3068;&#x3057;&#x3066;&#x4F7F;&#x3044;&#x307E;&#x3059;&#x3002;&#x5171;&#x7DDA;&#x3067;&#x306A;&#x3044;&#x3068;&#x304D;&#x306B;&#x306F;&#x3082;&#x3061;&#x308D;&#x3093;&#x8AA4;&#x5DEE;&#x304C;&#x51FA;&#x307E;&#x3059;&#x304C;&#x3001;&#x3053;&#x306E;&#x8AA4;&#x5DEE;&#x306F; $O(1 / \sqrt{D})$ &#x4EE5;&#x4E0B;&#xFF08; $D$ &#x306F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x30FB;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6B21;&#x5143;&#x6570;&#xFF09;&#x3067;&#x3042;&#x308A;&#x3001;&#x304B;&#x3064; unbiased<sup class="footnote-ref"><a href="#fn14" id="fnref14">[14]</a></sup> &#x306B;&#x306A;&#x308B;&#x3053;&#x3068;&#x304C;&#x8AD6;&#x6587;&#x4E2D;<sup class="footnote-ref"><a href="#fn1" id="fnref1:4">[1:4]</a></sup>&#x306E; Section 3.2 &#x3067;&#x8A3C;&#x660E;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p><strong>$\langle \overline{\bm{o}}, \bm{o} \rangle$ &#x306F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3060;&#x3051;&#x304B;&#x3089;&#x4E8B;&#x524D;&#x306B;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x308B;&#x305F;&#x3081;&#x3001;&#x3053;&#x308C;&#x3082;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x4FDD;&#x5B58;&#x3057;&#x3066;&#x304A;&#x304D;&#x307E;&#x3059;&#xFF08;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306E;4&#x756A;&#x76EE;&#x306E;&#x30B9;&#x30C6;&#x30C3;&#x30D7;&#xFF09;</strong><sup class="footnote-ref"><a href="#fn15" id="fnref15">[15]</a></sup>&#x3002; $\langle \overline{\bm{o}}, \bm{q} \rangle$ &#x306E;&#x8A08;&#x7B97;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x5F8C;&#x8FF0;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="rabitq-%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%83%95%E3%82%A7%E3%82%A4%E3%82%BA">RabitQ &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;</h3>
<p>&#x3053;&#x3053;&#x3067;&#x3001;RabitQ &#x3067;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;&#x30FB;&#x30A4;&#x30F3;&#x30C7;&#x30AD;&#x30B7;&#x30F3;&#x30B0;&#x3092;&#x307E;&#x3068;&#x3081;&#x3066;&#x304A;&#x304D;&#x307E;&#x3057;&#x3087;&#x3046;&#xFF08;&#x518D;&#x63B2;&#xFF09;&#x3002;</p>
<ol>
<li>&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x3092;&#x8A08;&#x7B97;&#x3057;&#x3001;&#x3059;&#x3079;&#x3066;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6B63;&#x898F;&#x5316;&#xFF08;$\bm{o_r}$ &#x3092; $\bm{o}$ &#x306B;&#x3059;&#x308B;&#xFF09;</li>
<li>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x306A;&#x76F4;&#x4EA4;&#x884C;&#x5217; $P$ &#x3092;&#x30B5;&#x30F3;&#x30D7;&#x30EA;&#x30F3;&#x30B0;&#x3057;&#x3001;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF; $C_{rand}$ &#x3092;&#x69CB;&#x7BC9;</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{x}}_b$ &#x3092;&#x8A08;&#x7B97;&#xFF08;&#x30B3;&#x30FC;&#x30C9;&#x30D6;&#x30C3;&#x30AF;&#x306E;&#x4E2D;&#x304B;&#x3089;&#x9078;&#x3076;&#xFF09;</li>
<li>&#x4EE5;&#x4E0B;&#x3092;&#x4E8B;&#x524D;&#x8A08;&#x7B97;
<ol>
<li>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3068;&#x306E;&#x8DDD;&#x96E2; $\Vert \bm{o}_r - \bm{c} \Vert$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{o}\rangle$ &#xFF08;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30F3;&#xFF09;</li>
</ol>
</li>
</ol>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/rabitq_index.png" alt="RaBitQ Index Phase" loading="lazy"></p>
<p>&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x60C5;&#x5831;&#x3092;&#x4FDD;&#x5B58;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li>&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{x}}_b$ &#xFF08;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3054;&#x3068;&#x306B; $D$ &#x30D3;&#x30C3;&#x30C8;&#xFF09;</li>
<li>&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3068;&#x306E;&#x8DDD;&#x96E2; $\Vert \bm{o}_r - \bm{c}\Vert$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{o}\rangle$ &#xFF08;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30F3;&#xFF09;</li>
</ul>
<h3 id="%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%86%85%E7%A9%8D%E3%81%AE%E8%BF%91%E4%BC%BC%E8%A8%88%E7%AE%97">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x306E;&#x8FD1;&#x4F3C;&#x8A08;&#x7B97;</h3>
<p>&#x3055;&#x3066;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#xFF08;(6) &#x5F0F;&#xFF09;&#x3092;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x306F;&#x3001;&#x6B8B;&#x308B; $\langle \overline{\bm{o}}, \bm{q} \rangle$ &#x3092;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x304F;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x308C;&#x306F;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71; $P$ &#x3092;&#x4F7F;&#x3046;&#x3068;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5909;&#x5F62;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{equation} \langle \overline{\bm{o}}, \bm{q} \rangle = \langle P \overline{\bm{x}}, \bm{q} \rangle = \langle P^{-1} P \overline{\bm{x}}, P^{-1} \bm{q} \rangle = \langle \overline{\bm{x}}, \bm{q}\rq \rangle \end{equation} \]</p>
<p>&#x3053;&#x3053;&#x3067;&#x3001; $\overline{\bm{x}}$ &#x306F;&#x91CF;&#x5B50;&#x5316;&#x5F8C;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3067;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001;&#x4FBF;&#x5229;&#x306E;&#x305F;&#x3081;&#x306B; $\bm{q}\rq = P^{-1} \bm{q}$ &#x3068;&#x304A;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<h3 id="%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E9%87%8F%E5%AD%90%E5%8C%96">&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</h3>
<p>&#x3082;&#x3068;&#x3082;&#x3068; (6) &#x5F0F;&#x306F;&#x8FD1;&#x4F3C;&#x3067;&#x3059;&#x304B;&#x3089;&#x3001; (7) &#x5F0F;&#x3082;&#x6B63;&#x78BA;&#x306A;&#x5024;&#x3092;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x306F;&#x306A;&#x304F;&#x3001;&#x4E00;&#x5B9A;&#x306E;&#x8AA4;&#x5DEE;&#x3092;&#x8A31;&#x5BB9;&#x3057;&#x305F;&#x8FD1;&#x4F3C;&#x5024;&#x3067;&#x4EE3;&#x7528;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;RaBitQ &#x3067;&#x306F; $\bm{q}\rq$ &#x306E;&#x4EE3;&#x308F;&#x308A;&#x306B;&#x3001;&#x305D;&#x308C;&#x3092;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x3082;&#x306E;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x8A08;&#x7B97;&#x3092;&#x52B9;&#x7387;&#x5316;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x305F;&#x3060;&#x3057; 1 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001;&#x8AA4;&#x5DEE;&#x3092;&#x6291;&#x3048;&#x308B;&#x305F;&#x3081;&#x306B; $B_q$ &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x307E;&#x3059;&#xFF08;&#x975E;&#x5BFE;&#x79F0;&#x306A;&#x91CF;&#x5B50;&#x5316;&#xFF09;&#x3002;</p>
<p>$\bm{q}\rq$ &#x3092;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x3082;&#x306E;&#x3092; $\overline{\bm{q}}$ &#x3068;&#x3057;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;&#x524D;&#x306E;&#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3067; $\langle \overline{\bm{x}}, \bm{q}\rq \rangle$ &#x3092;&#x8A08;&#x7B97;&#x3057;&#x305F;&#x3044;&#x3068;&#x3044;&#x3046;&#x8A71;&#x3092;&#x3057;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001; $\langle \overline{\bm{x}}, \overline{\bm{q}} \rangle$ &#x3092;&#x3053;&#x306E;&#x8FD1;&#x4F3C;&#x3068;&#x3057;&#x3066;&#x4F7F;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li>$v_l \coloneqq \min_{1 \leq i \leq D} \bm{q}\rq[i]$ &#xFF08; $\bm{q}\rq$ &#x306E;&#x6700;&#x5C0F;&#x5024;&#xFF09;</li>
<li>$v_r \coloneqq \max_{1 \leq i \leq D} \bm{q}\rq[i]$&#xFF08; $\bm{q}\rq$ &#x306E;&#x6700;&#x5927;&#x5024;&#xFF09;</li>
<li>$\Delta \coloneqq (v_r - v_l) / (2^{B_q} - 1)$ &#xFF08;&#x91CF;&#x5B50;&#x5316;&#x306E;&#x523B;&#x307F;&#x5E45;&#xFF09;</li>
<li>$u_i$ &#x3092; $[0, 1]$ &#x306E;&#x4E00;&#x69D8;&#x5206;&#x5E03;&#x304B;&#x3089;&#x30B5;&#x30F3;&#x30D7;&#x30EA;&#x30F3;&#x30B0;&#x3057;&#x305F;&#x5024;</li>
</ul>
<p>&#x3068;&#x3057;&#x305F;&#x3068;&#x304D;&#x3001;RaBitQ &#x3067;&#x306F; $\overline{\bm{q}}$ &#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{q}}_u$ &#xFF08;&#x306E; $i$ &#x756A;&#x76EE;&#x306E;&#x8981;&#x7D20;&#xFF09;&#x3092;&#x4EE5;&#x4E0B;&#x306E;&#x5F0F;&#x3067;&#x8A08;&#x7B97;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{equation} \overline{\bm{q}}_u [i] \coloneqq \lfloor \frac{\bm{q}\rq[i] - v_l}{\Delta} + u_i \rfloor \end{equation} \]</p>
<p>&#x3053;&#x306E;&#x8A08;&#x7B97;&#x306F;&#x76F4;&#x611F;&#x7684;&#x306B;&#x306F;&#x3001;&#x96E2;&#x6563;&#x5316;&#x3059;&#x308B;&#x3068;&#x304D;&#x306B;&#x300C;&#x5DE6;&#x300D;&#x306E;&#x96E2;&#x6563;&#x5024;&#x306B;&#x3059;&#x308B;&#x304B;&#x300C;&#x53F3;&#x300D;&#x306E;&#x96E2;&#x6563;&#x5024;&#x306B;&#x3059;&#x308B;&#x304B;&#x3092; 1/2 &#x306E;&#x78BA;&#x7387;&#x3067;&#x9078;&#x3093;&#x3067;&#x3044;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x3053;&#x3046;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x308A;&#x3001;&#x5024;&#x306E;&#x5206;&#x5E03;&#x306B;&#x4F9D;&#x5B58;&#x305B;&#x305A;&#x306B; unbiased &#x306B;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn16" id="fnref16">[16]</a></sup>&#x3002;</p>
<p>&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{q}}_u$ &#x304B;&#x3089; $\overline{\bm{q}}$ &#x3092;&#x5FA9;&#x5143;&#x3059;&#x308B;&#x306B;&#x306F;&#x3001; $\overline{\bm{q}} = \Delta \cdot \overline{\bm{q}}_u + v_l \cdot \bm{1}_D$ &#xFF08; $\bm{1}_D$ &#x306F;&#x3059;&#x3079;&#x3066; 1 &#x304C;&#x7ACB;&#x3063;&#x3066;&#x3044;&#x308B;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#xFF09;&#x3068;&#x3059;&#x308C;&#x3070;OK&#x3067;&#x3059;&#x3002;</p>
<p>&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x6570; $B_q$ &#x3092; $\Theta (\log \log D)$ &#x3068;&#x3057;&#x305F;&#x3068;&#x304D;&#x3001;&#x9AD8;&#x3044;&#x78BA;&#x7387;&#x3067;&#x8FD1;&#x4F3C;&#x306B;&#x3088;&#x308B;&#x91CF;&#x5B50;&#x5316;&#x8AA4;&#x5DEE; $| \langle \overline{\bm{x}}, \bm{q}\rq \rangle - \langle \overline{\bm{x}}, \overline{\bm{q}} \rangle |$ &#x304C; $O(1/ \sqrt{D})$ &#x306B;&#x53CE;&#x307E;&#x308B;&#x3053;&#x3068;&#x304C;&#x8AD6;&#x6587;&#x4E2D;&#x3067;&#x8A3C;&#x660E;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF08;Theorem 3.3<sup class="footnote-ref"><a href="#fn1" id="fnref1:5">[1:5]</a></sup>&#xFF09;&#x3002;&#x307E;&#x305F;&#x5B9F;&#x9A13;&#x7684;&#x306B;&#x3082;&#x3001; $D = 128$ &#xFF08;SIFT&#x30C7;&#x30FC;&#x30BF;&#x30BB;&#x30C3;&#x30C8;&#xFF09;&#x3084; $D = 960$ &#xFF08;GIST&#x30C7;&#x30FC;&#x30BF;&#x30BB;&#x30C3;&#x30C8;&#xFF09;&#x306E;&#x5834;&#x5408;&#x306B;&#x3001; $B_q = 4$ &#x307E;&#x3067;&#x5897;&#x3084;&#x3059;&#x3068;&#x8AA4;&#x5DEE;&#x304C;&#x5341;&#x5206;&#x306B;&#x5C0F;&#x3055;&#x304F;&#x53CE;&#x675F;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x793A;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF08;Fig. 6<sup class="footnote-ref"><a href="#fn1" id="fnref1:6">[1:6]</a></sup>&#xFF09;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/rabitq-fig6.png" alt="RaBitQ Fig. 6" loading="lazy"></p>
<h3 id="%E9%87%8F%E5%AD%90%E5%8C%96%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%86%85%E7%A9%8D%E8%A8%88%E7%AE%97">&#x91CF;&#x5B50;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;</h3>
<p>&#x3055;&#x3066;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{x}}_b$ &#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{q}}_u$ &#x3092;&#x5F97;&#x305F;&#x3068;&#x3053;&#x308D;&#x3067;&#x3001;&#x3053;&#x308C;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x524D;&#x8FF0;&#x3057;&#x305F; $\langle \overline{\bm{x}}, \overline{\bm{q}} \rangle$ &#x3092;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x306E;&#x304C;&#x6B21;&#x306E;&#x95A2;&#x5FC3;&#x4E8B;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3092;&#x52B9;&#x7387;&#x7684;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x3092;&#x5229;&#x7528;&#x3067;&#x304D;&#x308B;&#x5F62;&#x306B;&#x5909;&#x5F62;&#x3057;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>$\overline{\bm{x}} = ( 2 \overline{\bm{x}}_b - \bm{1}_D ) / \sqrt{D}$ &#x3001; $\overline{\bm{q}} = \Delta \cdot \overline{\bm{q}}_u + v_l \cdot \bm{1}_D$ &#x3067;&#x3057;&#x305F;&#x304B;&#x3089;&#x3001; $\langle \overline{\bm{x}}, \overline{\bm{q}} \rangle = \left\langle \frac{2 \overline{\bm{x}}_b - \bm{1}_D}{\sqrt{D}}, \Delta \cdot \overline{\bm{q}}_u + v_l \cdot \bm{1}_D \right\rangle$ &#x3067;&#x3059;&#x3002;&#x3053;&#x308C;&#x306F;&#x3055;&#x3089;&#x306B;&#x3001;</p>
<p>\[ \begin{equation} \langle \overline{\bm{x}}, \overline{\bm{q}} \rangle = \frac{2 \Delta}{\sqrt{D}} \langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle + \frac{2 v_l}{\sqrt{D}} \sum_i^D \overline{\bm{x}}_b [i] - \frac{\Delta}{\sqrt{D}} \sum_i^D \overline{\bm{q}}_u [i] - \sqrt{D} \cdot v_l \end{equation} \]</p>
<p>&#x3068;&#x3044;&#x3046;&#x5F62;&#x306B;&#x5C55;&#x958B;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x7B2C; 2 &#x9805;&#x306B;&#x8868;&#x308C;&#x308B; $\sum_i \overline{\bm{x}}_b \lbrack i \rbrack$  &#x306F;&#x3001;&#x3053;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E; 1 &#x306E;&#x7ACB;&#x3063;&#x3066;&#x3044;&#x308B;&#x6570;&#x3067;&#x3042;&#x308A;&#x3001;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306B;&#x4E8B;&#x524D;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>&#x307E;&#x305F;&#x3001; $D$ &#x306F;&#x56FA;&#x5B9A;&#x5024;&#x3067;&#x3042;&#x308A;&#x3001; $\Delta$ &#x3084; $v_l$ &#x306F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;&#x6642;&#x306B;&#x3059;&#x3067;&#x306B;&#x8A08;&#x7B97;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x540C;&#x69D8;&#x306B;&#x7B2C;3&#x9805;&#x306E; $\sum^D \overline{\bm{q}}_{u} [i]$ &#x3082;&#x30AF;&#x30A8;&#x30EA;&#x6642;&#x306B;&#x4E00;&#x5EA6;&#x3060;&#x3051;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x304F;&#x3001;&#x8A08;&#x7B97;&#x30B3;&#x30B9;&#x30C8;&#x306F;&#x307B;&#x3068;&#x3093;&#x3069;&#x304B;&#x304B;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001;&#x7B2C;1&#x9805;&#x306E; $\langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle$ &#x3092;&#x3069;&#x3046;&#x52B9;&#x7387;&#x7684;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x304B;&#x304C;&#x4E3B;&#x306A;&#x95A2;&#x5FC3;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<h3 id="simd-%E3%81%AB%E3%82%88%E3%82%8B%E5%86%85%E7%A9%8D%E8%A8%88%E7%AE%97%E3%81%AE%E9%AB%98%E9%80%9F%E5%8C%96">SIMD &#x306B;&#x3088;&#x308B;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x306E;&#x9AD8;&#x901F;&#x5316;</h3>
<p>&#x3053;&#x3053;&#x3067;&#x3001; $D$ &#x6B21;&#x5143;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{q}}_u$ &#x3092; 4 &#x30D3;&#x30C3;&#x30C8;&#xFF08; $B_q = 4$ &#xFF09;&#x3068;&#x3057;&#x3066;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE; $\overline{\bm{x}}_b$ &#x3068;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x3092;&#x8003;&#x3048;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;Fig. 2 &#x306E;&#x5DE6;&#x56F3;&#x306E;&#x70B9;&#x7DDA;&#x304C;&#x30AF;&#x30A8;&#x30EA;&#x306E;1&#x3064;&#x306E;&#x6B21;&#x5143;&#x3067;&#x3059;&#xFF08;4 &#x30D3;&#x30C3;&#x30C8;&#x8868;&#x73FE;&#xFF09;&#x3002;&#x30AF;&#x30A8;&#x30EA;&#x306F; $4D$ &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x8868;&#x73FE;&#x3055;&#x308C;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x3001;&#x5404;&#x30BB;&#x30EB;&#x306F; 0/1 &#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x306E;&#x5024;&#x3067;&#x3059;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2025/01/rabitq-fig2.png" alt="RaBitQ Fig. 2" loading="lazy"></p>
<p>&#x5185;&#x7A4D;&#x306E;&#x5024;&#x306F;1&#x6B21;&#x5143;&#x305A;&#x3064;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x3066; $\langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle = ( {\overline{\bm{q}}_u}^{(0)} [1] \cdot 2^0 + {\overline{\bm{q}}_u}^{(1)} [1] \cdot 2^1 + {\overline{\bm{q}}_u}^{(2)} [1] \cdot 2^2 + {\overline{\bm{q}}_u}^{(3)} [1] \cdot 2^3 ) + \cdots$ &#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x4E00;&#x65B9;&#x3001;&#x52A0;&#x7B97;&#x306F;&#x4EA4;&#x63DB;&#x3067;&#x304D;&#x308B;&#x306E;&#x3067;&#x3001;0&#x30D3;&#x30C3;&#x30C8;&#x76EE;&#x304B;&#x3089;4&#x30D3;&#x30C3;&#x30C8;&#x76EE;&#x307E;&#x3067;&#x3092;&#x5225;&#x3005;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001; $\langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle = ( {\overline{\bm{q}}_u}^{(0)} [1] \cdot 2^0 + {\overline{\bm{q}}_u}^{(0)} [2] \cdot 2^0 + {\overline{\bm{q}}_u}^{(0)} [3] \cdot 2^0 + {\overline{\bm{q}}_u}^{(0)} [4] \cdot 2^0 + \cdots ) + \cdots$ &#x3067;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x307E;&#x3059;&#xFF08;Fig. 2 &#x53F3;&#x56F3;&#xFF09;&#x3002;</p>
<p>&#x3053;&#x3046;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x5404;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB; ${\overline{\bm{q}}_u}^{(0)}$ &#x3001; ${\overline{\bm{q}}_u}^{(1)}$ &#x3001; ${\overline{\bm{q}}_u}^{(2)}$ &#x3001; ${\overline{\bm{q}}_u}^{(3)}$ &#x3068; ${\overline{\bm{x}}_b}$ &#x306E;&#x8AD6;&#x7406;&#x7A4D;&#xFF08;AND&#xFF09;&#x3092;&#x3068;&#x3063;&#x305F;&#x3042;&#x3068;&#x3001;1&#x304C;&#x7ACB;&#x3063;&#x3066;&#x3044;&#x308B;&#x6570;&#x3092;&#x30AB;&#x30A6;&#x30F3;&#x30C8;&#x3057;&#x3001;&#x7A4D;&#x548C;&#x6F14;&#x7B97;&#xFF08;&#x305D;&#x308C;&#x305E;&#x308C; 1, 2, 4, 8 &#x3092;&#x639B;&#x3051;&#x3066;&#x8DB3;&#x3059;&#xFF09;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x5185;&#x7A4D;&#x304C;&#x6C42;&#x307E;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x308C;&#x306F; SIMD &#x6F14;&#x7B97;&#x3067;&#x52B9;&#x7387;&#x7684;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x3001;&#x3068;&#x304F;&#x306B;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x6570;&#x3048;&#x308B;&#x30B9;&#x30C6;&#x30C3;&#x30D7;&#x306F; popcount &#x3068;&#x3057;&#x3066;&#x77E5;&#x3089;&#x308C;&#x308B;&#x5C02;&#x7528;&#x306E;&#x547D;&#x4EE4;&#x3092;&#x4F7F;&#x7528;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x9AD8;&#x901F;&#x306B;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070; SSE &#x3084; AVX &#x3067;&#x306F; POPCNT &#x3068;&#x547C;&#x3070;&#x308C;&#x308B;&#x547D;&#x4EE4;&#x7FA4;&#x304C;&#x7528;&#x610F;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x8AD6;&#x6587;<sup class="footnote-ref"><a href="#fn1" id="fnref1:7">[1:7]</a></sup>&#x306E; Section 3.3.2 &#x3067;&#x306F;&#x3055;&#x3089;&#x306B;&#x3001;&#x8907;&#x6570;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x30D0;&#x30C3;&#x30C1;&#x3067;&#x51E6;&#x7406;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x30AF;&#x30A8;&#x30EA;&#x3092;&#x9AD8;&#x901F;&#x5316;&#x3059;&#x308B;&#x65B9;&#x6CD5;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x8FF0;&#x3079;&#x3089;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E5%86%85%E7%A9%8D%E8%A8%88%E7%AE%97%E3%81%AE%E6%9C%80%E9%81%A9%E5%8C%96%E3%81%AE%E5%85%B7%E4%BD%93%E4%BE%8B">&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x306E;&#x6700;&#x9069;&#x5316;&#x306E;&#x5177;&#x4F53;&#x4F8B;</h3>
<p>&#x3053;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x3092;&#x3082;&#x3046;&#x5C11;&#x3057;&#x5177;&#x4F53;&#x7684;&#x306B;&#x898B;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;&#x4EE5;&#x4E0B;&#x306F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C; <code>[8, 15, 10, 7, 4, 0, 9, 9]</code> &#x306E;&#x3068;&#x304D;&#x306E;&#x4F8B;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn17" id="fnref17">[17]</a></sup>&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/bbq_async_quantization.png" alt="BBQ async quantization" loading="lazy"></p>
<p>&#x8981;&#x7D20;&#x306F;&#x305D;&#x308C;&#x305E;&#x308C; 4 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x8868;&#x73FE;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; 8 &#x6B21;&#x5143;&#x3054;&#x3068;&#x306B;&#x5206;&#x5272;&#x3057;&#x307E;&#x3059;&#xFF08;8x4 = 32 &#x30D3;&#x30C3;&#x30C8;&#x5358;&#x4F4D;&#xFF09;&#x3002;&#x3053;&#x306E;&#x4F8B;&#x3067;&#x306F; 8 &#x6B21;&#x5143;&#x3061;&#x3087;&#x3046;&#x3069;&#x306A;&#x306E;&#x3067;&#x305D;&#x306E;&#x307E;&#x307E;&#x3067;&#x3059;&#x3002;&#x6B21;&#x306B;&#x3001;8 &#x500B;&#x306E; 4 &#x30D3;&#x30C3;&#x30C8;&#x306E;&#x5404;&#x4F4D;&#x7F6E;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#xFF08;0 &#x30D3;&#x30C3;&#x30C8;&#x76EE;&#x304B;&#x3089; 4 &#x30D3;&#x30C3;&#x30C8;&#x76EE;&#x307E;&#x3067;&#xFF09;&#x3092;&#x53D6;&#x308A;&#x51FA;&#x3057;&#x3001;4 &#x3064;&#x306E; <code>int8</code> &#x306B;&#x5909;&#x63DB;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; 1 &#x30D3;&#x30C3;&#x30C8;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; 4 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x308B;&#x306E;&#x3067;&#x3057;&#x305F;&#x3002;&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092; <code>[0, 1, 1, 0, 0, 0, 0, 0]</code> &#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092; <code>[8, 15, 10, 7, 4, 0, 9, 9]</code> &#x3068;&#x3057;&#x3066;&#x3001;&#x305D;&#x306E;&#x5185;&#x7A4D;&#x3092;&#x8A08;&#x7B97;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<p>&#x666E;&#x901A;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x3068;&#x3001; <code>0 * 8 + 1 * 15 + 1 * 10 + 0 * 7 + 0 * 4 + 0 * 0 + 0 * 9 + 0 * 9 == 15 + 10 == 25</code> &#x3067;&#x3059;&#x306D;&#x3002;&#x3053;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x3092;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x9AD8;&#x901F;&#x5316;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; <code>[8, 15, 10, 7, 4, 0, 9, 9]</code> &#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x8868;&#x73FE;&#x306F;&#x3001;&#x5148;&#x982D;&#x304B;&#x3089;</p>
<ol>
<li><code>0b1000</code> (= <code>8</code>)</li>
<li><code>0b1111</code> (= <code>15</code>)</li>
<li><code>0b1010</code> (= <code>10</code>)</li>
<li><code>0b0111</code> (= <code>7</code>)</li>
<li><code>0b0100</code> (= <code>4</code>)</li>
<li><code>0b0000</code> (= <code>0</code>)</li>
<li><code>0b1001</code> (= <code>9</code>)</li>
<li><code>0b1001</code> (= <code>9</code>)</li>
</ol>
<p>&#x3067;&#x3059;&#x306D;&#x3002;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C; <code>1</code> &#x306E;&#x6B21;&#x5143;&#x3060;&#x3051;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x3044;&#x306E;&#x3067;&#x3001;2&#x756A;&#x76EE; (<code>0b1111 = 15</code>) &#x3068;3&#x756A;&#x76EE; (<code>0b1010 = 10</code>) &#x3092;&#x8DB3;&#x305B;&#x3070;&#x7B54;&#x3048; (<code>0b1111 + 0b1010 = 25</code>) &#x304C;&#x6C42;&#x307E;&#x308A;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x8A08;&#x7B97;&#x3092;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x98A8;&#x306B;&#x8868;&#x73FE;&#x3059;&#x308B;&#x3068; <code>(1 + 1) &lt;&lt; 3 + (1 + 0) &lt;&lt; 2 + (1 + 1) &lt;&lt; 1 + (1 + 0) &lt;&lt; 0 == 2 * (2**3) + 1 * (2**2) + 2 * (2**1) + 1 * (2**0) == 25</code> &#x3067;&#x3059;&#x3002;</p>
<p>&#x3064;&#x307E;&#x308A;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; <code>0, 1, 1, 0, 0, 0, 0, 0]</code> &#x3067;&#x30DE;&#x30B9;&#x30AF;&#x3057;&#x305F;&#x3042;&#x3068;&#xFF08;2&#x756A;&#x76EE;&#x3068;3&#x756A;&#x76EE;&#x3060;&#x3051;&#x304C;&#x6B8B;&#x308B;&#xFF09;&#x3001;&#x5404;&#x30D3;&#x30C3;&#x30C8;&#x4F4D;&#x7F6E;&#x3054;&#x3068;&#x306B;&#x30D3;&#x30C3;&#x30C8;&#x6570;&#x3092;&#x30AB;&#x30A6;&#x30F3;&#x30C8;&#x3057;&#x3001;&#x6700;&#x7D42;&#x7684;&#x306A;&#x7D50;&#x679C;&#x3092;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x3044;&#x308F;&#x3051;&#x3067;&#x3059;&#x3002;&#x3053;&#x308C;&#x3089;&#x306E;&#x8A08;&#x7B97;&#x306F;&#x3001;&#x8AD6;&#x7406;&#x7A4D; (AND)&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x30AB;&#x30A6;&#x30F3;&#x30C8;&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x30B7;&#x30D5;&#x30C8;&#x3001;&#x305D;&#x3057;&#x3066;&#x52A0;&#x7B97;&#x306E;&#x307F;&#x3067;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;&#x7570;&#x306A;&#x308B;&#x30D3;&#x30C3;&#x30C8;&#x6570;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x540C;&#x58EB;&#x306E;&#x5185;&#x7A4D;&#x8A08;&#x7B97;&#x3092;&#x3001;&#x7C21;&#x5358;&#x306A;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x306B;&#x5E30;&#x7740;&#x3055;&#x305B;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<h3 id="rabitq-%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%95%E3%82%A7%E3%82%A4%E3%82%BA">RaBitQ &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;</h3>
<p>&#x3053;&#x3053;&#x307E;&#x3067;&#x3092;&#x304A;&#x3055;&#x3089;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x60C5;&#x5831;&#x304C;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF1A;</p>
<ul>
<li>&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\overline{\bm{x}}_b$ &#xFF08;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3054;&#x3068;&#x306B; $D$ &#x30D3;&#x30C3;&#x30C8;&#xFF09;</li>
<li>&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3068;&#x306E;&#x8DDD;&#x96E2; $\Vert \bm{o}_r - \bm{c}\Vert$</li>
<li>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x6B63;&#x898F;&#x5316;&#x3057;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{o}\rangle$ &#xFF08;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30F3;&#xFF09;</li>
</ul>
<p>&#x8A08;&#x7B97;&#x3057;&#x305F;&#x3044;&#x306E;&#x306F;&#x751F;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{o_r}$ &#x3068;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB; $\bm{q_r}$ &#x306E;&#x8DDD;&#x96E2;&#x3067;&#x3057;&#x305F;&#x3002; (5) &#x5F0F;&#x3092;&#x601D;&#x3044;&#x51FA;&#x3057;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002;</p>
<p>\[ \begin{equation*} \Vert \bm{o_r} - \bm{q_r} \Vert^2 = \Vert \bm{o_r} - \bm{c} \Vert^2 + \Vert \bm{q_r} - \bm{c} \Vert^2 - 2 \cdot \Vert \bm{o_r} - \bm{c} \Vert \cdot \Vert \bm{q_r} - \bm{c} \Vert \cdot \langle \bm{o}, \bm{q} \rangle \end{equation*} \]</p>
<p>$\Vert \bm{o}_r - \bm{c}\Vert$ &#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3057;&#x3001; $\bm{c}$ &#x3082;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x305F;&#x3081; $\Vert \bm{q_r} - \bm{c}\Vert$ &#x3082;&#x30AF;&#x30A8;&#x30EA;&#x6642;&#x306B;&#x76F4;&#x3061;&#x306B;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x6B8B;&#x308B; $\langle \bm{o}, \bm{q} \rangle$ &#x306F; (6) &#x5F0F;&#x3067;&#x8FD1;&#x4F3C;&#x3059;&#x308B;&#x306E;&#x3067;&#x3057;&#x305F;&#xFF1A;</p>
<p>\[ \begin{equation*} \langle \bm{o}, \bm{q} \rangle = \frac{\langle \overline{\bm{o}}, \bm{q} \rangle}{\langle \overline{\bm{o}}, \bm{o} \rangle} \end{equation*} \]</p>
<p>&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{o}\rangle$ &#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x305F;&#x3081;&#x305D;&#x308C;&#x3092;&#x4F7F;&#x3044;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn18" id="fnref18">[18]</a></sup>&#x3002;&#x5185;&#x7A4D; $\langle \overline{\bm{o}}, \bm{q}\rangle$ &#x306F; $\langle \overline{\bm{x}}, \overline{\bm{q}} \rangle$ &#x3067;&#x8FD1;&#x4F3C;&#x3059;&#x308B;&#x306E;&#x3067;&#x3057;&#x305F;&#x3002;(9) &#x5F0F;&#x3092;&#x601D;&#x3044;&#x51FA;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>\[ \begin{equation*} \langle \overline{\bm{x}}, \overline{\bm{q}} \rangle = \frac{2 \Delta}{\sqrt{D}} \langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle + \frac{2 v_l}{\sqrt{D}} \sum_i^D \overline{\bm{x}}_b [i] - \frac{\Delta}{\sqrt{D}} \sum_i^D \overline{\bm{q}}_u [i] - \sqrt{D} \cdot v_l \end{equation*} \]</p>
<p>&#x524D;&#x8FF0;&#x3057;&#x305F;&#x901A;&#x308A;&#x3001;&#x7B2C;2&#x9805;&#x4EE5;&#x964D;&#x306F;&#x7D20;&#x76F4;&#x306B;&#x8A08;&#x7B97;&#x3057;&#x3066;&#x3082;&#x305D;&#x308C;&#x307B;&#x3069;&#x30B3;&#x30B9;&#x30C8;&#x306F;&#x304B;&#x304B;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;&#x7B2C;1&#x9805;&#x306E;&#x5185;&#x7A4D; $\langle \overline{\bm{x}}_b, \overline{\bm{q}}_u \rangle$ &#x306F;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3054;&#x3068;&#x306B;&#x30D3;&#x30C3;&#x30C8;&#x6F14;&#x7B97;&#x3068; SIMD &#x3067;&#x8A08;&#x7B97;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x4EE5;&#x4E0A;&#x3092;&#x307E;&#x3068;&#x3081;&#x308B;&#x3068;&#x3001;RaBitQ &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x901A;&#x308A;&#x3067;&#x3059;&#xFF08;&#x518D;&#x63B2;&#xFF09;&#x3002;</p>
<ol>
<li>&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6B63;&#x898F;&#x5316;&#x30FB;&#x5909;&#x63DB;</li>
<li>1.&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x91CF;&#x5B50;&#x5316;</li>
<li>&#x5404;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x4EE5;&#x4E0B;&#x3092;&#x8A08;&#x7B97;
<ol>
<li>$\frac{\langle \bm{\overline{o}}, \bm{q}\rangle}{\langle \bm{\overline{o}}, \bm{o}\rangle}$ &#x3092;&#x8A08;&#x7B97;&#xFF08;$\langle \bm{o}, \bm{q}\rangle$ &#x306E;&#x8FD1;&#x4F3C;&#x5024;&#x3068;&#x3057;&#x3066;&#x4F7F;&#x7528;&#x3059;&#x308B;&#xFF09;</li>
<li>&#x5143;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;&#x306E;&#x63A8;&#x5B9A;&#x5024;&#x3092;&#x8A08;&#x7B97;&#xFF08;(5) &#x5F0F;&#x3088;&#x308A;&#xFF09;</li>
</ol>
</li>
</ol>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/rabitq_query.png" alt="RaBitQ Query Phase" loading="lazy"></p>
<h3 id="rabitq-%E3%81%A8-ann">RaBitQ &#x3068; ANN</h3>
<p>&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3054;&#x3068;&#x306B;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x90E8;&#x5206;&#xFF08;&#x64EC;&#x4F3C;&#x30B3;&#x30FC;&#x30C9;&#x306E;3&#x884C;&#x76EE;&#x304B;&#x3089;5&#x884C;&#x76EE;&#xFF09;&#x306F;&#x3001;&#x524D;&#x8FF0;&#x3057;&#x305F; IVF &#x3068;&#x3044;&#x3063;&#x305F; ANN &#x306E;&#x624B;&#x6CD5;&#x3092;&#x4F75;&#x7528;&#x3057;&#x3066;&#x9AD8;&#x901F;&#x5316;&#x3067;&#x304D;&#x307E;&#x3059;&#xFF08;Section 4 &#x3092;&#x53C2;&#x7167;&#xFF09;&#x3002;RaBitQ &#x3067;&#x306F;&#x3001;&#x30D0;&#x30C3;&#x30C1;&#x3067;&#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30D5;&#x30A7;&#x30A4;&#x30BA;&#x306E;&#x8A08;&#x7B97;&#x304C;&#x56F0;&#x96E3;&#x3068;&#x3044;&#x3046;&#x7406;&#x7531;&#x3067;&#x3001;HNSW &#x306E;&#x3088;&#x3046;&#x306A;&#x30B0;&#x30E9;&#x30D5;&#x30D9;&#x30FC;&#x30B9;&#x306E;&#x624B;&#x6CD5;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001; IVF &#x3092;&#x4F7F;&#x3063;&#x3066; ANN &#x306B;&#x3088;&#x308B;&#x9AD8;&#x901F;&#x5316;&#x3092;&#x884C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>RaBitQ &#x3067;&#x306F; IVF &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x304B;&#x3089;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x591A;&#x3081;&#x306B;&#x53D6;&#x5F97;&#x3057;&#x3001;&#x30EA;&#x30E9;&#x30F3;&#x30AD;&#x30F3;&#x30B0;&#x3057;&#x307E;&#x3059;&#x3002;RaBitQ &#x3067;&#x306F;&#x8AA4;&#x5DEE;&#x306E;&#x4E0A;&#x9650;&#x304C;&#x8A08;&#x7B97;&#x3067;&#x304D;&#x308B;&#x305F;&#x3081;&#x3001;&#x305D;&#x308C;&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x30EA;&#x30E9;&#x30F3;&#x30AF;&#x5BFE;&#x8C61;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x6570;&#x3092;&#x8ABF;&#x6574;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id="rabitq-%E3%81%AE%E6%8B%A1%E5%BC%B5">RaBitQ &#x306E;&#x62E1;&#x5F35;</h3>
<p>RaBitQ &#x306F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092; 1 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x8868;&#x73FE;&#x3059;&#x308B;&#x624B;&#x6CD5;&#x3067;&#x3057;&#x305F;&#x3002;&#x3053;&#x308C;&#x3092;&#x8907;&#x6570;&#x30D3;&#x30C3;&#x30C8;&#x306B;&#x62E1;&#x5F35;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3055;&#x3089;&#x306B;&#x8AA4;&#x5DEE;&#x3092;&#x4E0B;&#x3052;&#x308B;&#x624B;&#x6CD5; Extended RaBitQ<sup class="footnote-ref"><a href="#fn19" id="fnref19">[19]</a></sup> &#x304C;&#x63D0;&#x6848;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x624B;&#x6CD5;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x30DD;&#x30B9;&#x30C8;&#x304C;&#x53C2;&#x8003;&#x306B;&#x306A;&#x308B;&#x3067;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<p><a href="https://dev.to/gaoj0017/extended-rabitq-an-optimized-scalar-quantization-method-83m">Extended RaBitQ: an Optimized Scalar Quantization Method</a></p>
<h2 id="bbq">BBQ</h2>
<p>BBQ (Better Binary Quantization) &#x306F;&#x3001;Elastic &#x3067;&#x958B;&#x767A;&#x3055;&#x308C;&#x305F;&#x30D3;&#x30C3;&#x30C8;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x3067;&#x3059;&#x3002;<a href="https://www.elastic.co/search-labs/blog/better-binary-quantization-lucene-elasticsearch">RaBitQ &#x304B;&#x3089;&#x7740;&#x60F3;&#x3092;&#x5F97;&#x3066;&#x958B;&#x767A;&#x3055;&#x308C;&#x305F;</a>&#x3068;&#x306E;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/search-labs/blog/rabitq-explainer-101">RaBitQ binary quantization 101 - Elasticsearch Labs</a></li>
<li><a href="https://www.elastic.co/search-labs/blog/better-binary-quantization-lucene-elasticsearch">Better Binary Quantization (BBQ) in Lucene and Elasticsearch - Elasticsearch Labs</a></li>
<li><a href="https://www.elastic.co/search-labs/blog/bbq-vector-comparison-simd-instructions">Smokin&apos; fast BBQ with hardware accelerated SIMD instructions - Elasticsearch Labs</a></li>
<li><a href="https://www.elastic.co/search-labs/blog/bit-vectors-elasticsearch-bbq-vs-pq">Better Binary Quantization vs. Product Quantization - Elasticsearch Labs</a></li>
</ul>
<h3 id="elasticsearch-%E3%81%A7%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95">Elasticsearch &#x3067;&#x306E;&#x5229;&#x7528;&#x65B9;&#x6CD5;</h3>
<p>Elasticsearch 8.16 &#x4EE5;&#x964D;&#x3001;BBQ &#x304C; <code>dense_vector</code> &#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x3068;&#x3057;&#x3066;&#x4F7F;&#x7528;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B; Elasticsearch &#x306B;&#x7D44;&#x307F;&#x8FBC;&#x307E;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; <code>dense_vector</code> &#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x306E; mapping &#x5B9A;&#x7FA9;&#x3067;&#x3001; <code>index_options.type</code> &#x306B;&#x4EE5;&#x4E0B;&#x306E;&#x3044;&#x305A;&#x308C;&#x304B;&#x3092;&#x8A2D;&#x5B9A;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#xFF1A;</p>
<ul>
<li><code>bbq_hnsw</code> &#xFF08;&#x30B0;&#x30E9;&#x30D5;&#x30D9;&#x30FC;&#x30B9;&#x306E; HNSW &#x3067; ANN &#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x53D6;&#x5F97;&#xFF09;</li>
<li><code>bbq_flat</code> &#xFF08;&#x30D6;&#x30EB;&#x30FC;&#x30C8;&#x30D5;&#x30A9;&#x30FC;&#x30B9;&#x3067; kNN &#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x53D6;&#x5F97;&#xFF09;</li>
</ul>
<pre><code class="language-json">{
  &quot;mappings&quot;: {
    &quot;properties&quot;: {
      &quot;my_vector&quot;: {
        &quot;type&quot;: &quot;dense_vector&quot;,
        &quot;dims&quot;: 64,
        &quot;index&quot;: true,
        &quot;index_options&quot;: {
          &quot;type&quot;: &quot;bbq_hnsw&quot;
        }
      }
    }
  }
}
</code></pre>
<p>&#x8A73;&#x7D30;&#x306F;&#x516C;&#x5F0F;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x53C2;&#x7167;&#x3057;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/8.16/dense-vector.html">Dense vector field type | Elasticsearch Guide [8.16] | Elastic</a></li>
</ul>
<h3 id="bbq-%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E9%87%8F%E5%AD%90%E5%8C%96">BBQ &#x306B;&#x3088;&#x308B;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x91CF;&#x5B50;&#x5316;</h3>
<p>BBQ &#x3067;&#x306F; RaBitQ &#x3068;&#x540C;&#x69D8;&#x306B;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5404;&#x6B21;&#x5143;&#x3092;1&#x30D3;&#x30C3;&#x30C8;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306F;&#x4E8B;&#x524D;&#x306B;&#x8A08;&#x7B97;&#x3057;&#x3066;&#x304A;&#x304F;&#x70B9;&#x3082;&#x540C;&#x69D8;&#x3067;&#x3059;&#x3002;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E;&#x8A08;&#x7B97;&#x306F;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304C;&#x5165;&#x3063;&#x3066;&#x304F;&#x308B;&#x305F;&#x3073;&#x306B;&#x30A4;&#x30F3;&#x30E1;&#x30E2;&#x30EA;&#x3067;&#x30A4;&#x30F3;&#x30AF;&#x30EA;&#x30E1;&#x30F3;&#x30BF;&#x30EB;&#x306B;&#x5B9F;&#x884C;&#x3067;&#x304D;&#x308B;&#x306E;&#x3067;&#x3001;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x69CB;&#x7BC9;&#x6642;&#x306B;&#x306F;&#x3059;&#x3067;&#x306B;&#x8A08;&#x7B97;&#x304C;&#x7D42;&#x308F;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B; 8 &#x6B21;&#x5143;&#x5358;&#x4F4D;&#x3067;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn17" id="fnref17:1">[17:1]</a></sup>&#x3002;</p>
<ol>
<li>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304B;&#x3089;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3092;&#x5F15;&#x304F;&#xFF08;&#x6B63;&#x898F;&#x5316;&#xFF09;</li>
<li>1&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5404;&#x6B21;&#x5143;&#x306E;&#x5024;&#x304C; 0 &#x3088;&#x308A;&#x5927;&#x304D;&#x3051;&#x308C;&#x3070; <code>1</code> &#x3001;&#x305D;&#x3046;&#x3067;&#x306A;&#x3051;&#x308C;&#x3070; <code>0</code> &#x306B;&#x91CF;&#x5B50;&#x5316;</li>
<li>corrections &#x3092;&#x4E8B;&#x524D;&#x8A08;&#x7B97;
<ol>
<li>&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304B;&#x3089;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E;&#x8DDD;&#x96E2;&#xFF08;1 &#x3067;&#x8A08;&#x7B97;&#x6E08;&#x307F;&#xFF09;</li>
<li>&#x5143;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x3001;&#x91CF;&#x5B50;&#x5316;&#x5F8C;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#xFF08;&#x3069;&#x306E;&#x304F;&#x3089;&#x3044;&#x96E2;&#x308C;&#x3066;&#x3044;&#x305F;&#x304B;&#xFF09;</li>
</ol>
</li>
</ol>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/bbq_index.png" alt="BBQ index" loading="lazy"></p>
<h3 id="bbq-%E3%81%A7%E3%81%AE%E8%B7%9D%E9%9B%A2%E6%8E%A8%E5%AE%9A">BBQ &#x3067;&#x306E;&#x8DDD;&#x96E2;&#x63A8;&#x5B9A;</h3>
<p>corrections &#x306F;&#x691C;&#x7D22;&#x6642;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x306B;&#x3088;&#x3063;&#x3066;&#x5931;&#x308F;&#x308C;&#x305F;&#x60C5;&#x5831;&#x3092;&#x300C;&#x5FA9;&#x5143;&#x300D;&#x3057;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;&#x3092;&#x3088;&#x308A;&#x6B63;&#x78BA;&#x306B;&#x63A8;&#x5B9A;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x4F7F;&#x3044;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x3042;&#x305F;&#x308A;&#x306F; RaBitQ &#x3068;&#x540C;&#x69D8;&#x306E;&#x8A08;&#x7B97;&#x3057;&#x3066;&#x3044;&#x308B;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;&#x3055;&#x3089;&#x306B;&#x8A73;&#x3057;&#x3044;&#x89E3;&#x8AAC;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x3092;&#x53C2;&#x7167;&#x3057;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/search-labs/blog/rabitq-explainer-101">RaBitQ binary quantization 101 - Elasticsearch Labs</a></li>
</ul>
<h3 id="bbq-%E3%81%AE%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88">BBQ &#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;</h3>
<p>BBQ &#x304C; Lucene &#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x308B;&#x3068;&#x304D;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn17" id="fnref17:2">[17:2]</a></sup>&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2024/12/bbq_format.png" alt="BBQ binary format" loading="lazy"></p>
<p>&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F; 8 &#x6B21;&#x5143;&#x305A;&#x3064; pack &#x3055;&#x308C;&#x307E;&#x3059;&#x3002;8&#x6B21;&#x5143;&#x3054;&#x3068;&#x306B;&#x91CF;&#x5B50;&#x5316;&#x3055;&#x308C;&#x305F;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x307E;&#x3068;&#x3081;&#x3066; byte &#x3068;&#x3057;&#x3066;&#x4FDD;&#x5B58;&#x3057;&#x307E;&#x3059;&#x3002;&#x305D;&#x306E;&#x76F4;&#x5F8C;&#x306B; corrections &#xFF08;&#x9577;&#x3055; 2 &#x304B;&#x3089; 3 &#x306E; <code>float</code> &#x306E;&#x914D;&#x5217;&#xFF09;&#x3092;&#x7F6E;&#x304F;&#x5F62;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="bbq-%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E6%A7%8B%E7%AF%89%E3%81%AE%E5%AE%9F%E8%A3%85">BBQ &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x69CB;&#x7BC9;&#x306E;&#x5B9F;&#x88C5;</h3>
<p>&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3078;&#x306E;&#x66F8;&#x304D;&#x8FBC;&#x307F;&#x306E;&#x5B9F;&#x88C5;&#x306F;&#x3053;&#x306E;&#x3042;&#x305F;&#x308A;&#x3067;&#x3059;&#xFF1A;</p>
<ol>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/ES816BinaryQuantizedVectorsWriter.java#L147-L216">https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/ES816BinaryQuantizedVectorsWriter.java#L147-L216</a></li>
<li>quantizeForIndex <a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L245-L300">https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L245-L300</a></li>
<li>generateSubSpace <a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L98-L114">https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L98-L114</a></li>
</ol>
<p>&#x8DDD;&#x96E2; (similarity) &#x304C;&#x30E6;&#x30FC;&#x30AF;&#x30EA;&#x30C3;&#x30C9;&#x30CE;&#x30EB;&#x30E0;&#x306E;&#x5834;&#x5408;&#x306E;&#x6D41;&#x308C;&#x3092;&#x307E;&#x3068;&#x3081;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<ol>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L277">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x306E;&#x8DDD;&#x96E2;&#x3092;&#x8A08;&#x7B97;</a></li>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L103">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304B;&#x3089;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9;&#x3092;&#x5F15;&#x304F;&#xFF08;&#x300C;&#x6B63;&#x898F;&#x5316;&#x300D;&#xFF09;</a></li>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L106">&#xFF08;&#x91CF;&#x5B50;&#x5316;&#x524D;&#x5F8C;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x30CE;&#x30EB;&#x30E0;&#xFF08;&#x5185;&#x7A4D;&#xFF09;&#x3092;&#x8A08;&#x7B97;&#xFF09;</a></li>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L108">&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x3066;&#x66F8;&#x304D;&#x8FBC;&#x307F;&#xFF08;0&#x3088;&#x308A;&#x5927;&#x304D;&#x3051;&#x308C;&#x3070; <code>1</code>&#xFF09;</a></li>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L110-L111">&#xFF08;3&#x3067;&#x8A08;&#x7B97;&#x3057;&#x305F;&#x30CE;&#x30EB;&#x30E0;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x304B;&#x3089;projection? &#x3092;&#x8A08;&#x7B97;&#xFF09;</a></li>
<li><a href="https://github.com/elastic/elasticsearch/blob/6c2f6071b20633fafc383212331f79146613011b/server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java#L282-L283">&#x4E0A;&#x8A18;1&#x3068;5&#x3067;&#x8A08;&#x7B97;&#x3057;&#x305F;&#x3082;&#x306E;&#x3092; corrections&#xFF08;2&#x3064;&#x306E; float &#x306E;&#x5024;&#xFF09;&#x3068;&#x3057;&#x3066;&#x4FDD;&#x5B58;</a></li>
</ol>
<h3 id="bbq-%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E5%87%A6%E7%90%86">BBQ &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;</h3>
<p>BBQ &#x3067;&#x306F; RaBitQ &#x3068;&#x540C;&#x69D8;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5404;&#x6B21;&#x5143;&#x3092; 1 &#x30D3;&#x30C3;&#x30C8;&#x306B;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306F;&#x5404;&#x6B21;&#x5143;&#x3092; 4 &#x30D3;&#x30C3;&#x30C8;&#x306E; <code>int4</code> &#xFF08;0 &#x304B;&#x3089; 15 &#x306E;&#x7BC4;&#x56F2;&#xFF09;&#x306B;&#x30B9;&#x30AB;&#x30E9;&#x91CF;&#x5B50;&#x5316;&#x3057;&#x3001;&#x7CBE;&#x5EA6;&#x306E;&#x5411;&#x4E0A;&#x3092;&#x72D9;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;BBQ &#x3067;&#x306F;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5185;&#x7A4D;&#x3092;&#x6700;&#x9069;&#x5316;&#x3059;&#x308B;&#x305F;&#x3081;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092; 8 &#x6B21;&#x5143;&#x3054;&#x3068;&#x306B;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x4E26;&#x3079;&#x66FF;&#x3048;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF">&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;</h3>
<p>PQ &#x3068; BBQ &#x3092;&#x6BD4;&#x8F03;&#x3057;&#x305F;&#x7D50;&#x679C;&#x304C;&#x4EE5;&#x4E0B;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x3067;&#x516C;&#x958B;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://www.elastic.co/search-labs/blog/bit-vectors-elasticsearch-bbq-vs-pq">Better Binary Quantization vs. Product Quantization - Elasticsearch Labs</a></li>
</ul>
<p>PQ &#x3068;&#x6BD4;&#x8F03;&#x3059;&#x308B;&#x3068;&#x3001;BBQ &#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x69CB;&#x7BC9;&#x6642;&#x9593;&#x3084;&#x30EC;&#x30A4;&#x30C6;&#x30F3;&#x30B7;&#x304C;&#x304B;&#x306A;&#x308A;&#x77ED;&#x304F;&#x3001;&#x7CBE;&#x5EA6; (recall) &#x3082;&#x50C5;&#x304B;&#x3067;&#x3059;&#x304C;&#x826F;&#x3044;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<h2 id="%E3%81%BE%E3%81%A8%E3%82%81">&#x307E;&#x3068;&#x3081;</h2>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;ANN &#x3067;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x91CF;&#x5B50;&#x5316;&#x624B;&#x6CD5;&#x3067;&#x3042;&#x308B; RaBitQ &#x3068;&#x3001;Elasticsearch &#x306E; BBQ (Better Binary Quantization) &#x3092;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>RaBitQ &#x3068; BBQ &#x306E;&#x4E3B;&#x306A;&#x9055;&#x3044;&#x306F;&#x3001;BBQ &#x3067;&#x306F;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71; $P$ &#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x306A;&#x3044;&#x3068;&#x3044;&#x3046;&#x70B9;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn20" id="fnref20">[20]</a></sup>&#x3002;&#x3053;&#x308C;&#x306F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x5206;&#x5E03;&#x306B;&#x3088;&#x3063;&#x3066;&#x306F;&#x91CF;&#x5B50;&#x5316;&#x8AA4;&#x5DEE;&#x304C;&#x5927;&#x304D;&#x304F;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3046;&#x3053;&#x3068;&#x3092;&#x610F;&#x5473;&#x3057;&#x3001;&#x8AA4;&#x5DEE;&#x306E;&#x4E0A;&#x9650;&#x3092;&#x4FDD;&#x8A3C;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x3002;&#x8AD6;&#x6587;&#x306E;&#x7B46;&#x982D;&#x8457;&#x8005;&#x3067;&#x3042;&#x308B; Gao &#x306B;&#x3088;&#x308B;&#x4EE5;&#x4E0B;&#x306E;&#x8A18;&#x4E8B;&#x306F;&#x3001;RaBitQ &#x304C;&#x9AD8;&#x7CBE;&#x5EA6;&#x3092;&#x9054;&#x6210;&#x3067;&#x304D;&#x308B;&#x76F4;&#x611F;&#x7684;&#x306A;&#x7406;&#x7531;&#x304C;&#x89E3;&#x8AAC;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://dev.to/gaoj0017/quantization-in-the-counterintuitive-high-dimensional-space-4feg">Quantization in The Counterintuitive High-Dimensional Space</a></li>
</ul>
<p>&#x307E;&#x305F;&#x3001;ANN &#x3092;&#x4F75;&#x7528;&#x3057;&#x305F; BBQ &#xFF08; <code>bbq_hnsw</code> &#xFF09;&#x3067;&#x306F;&#x30B0;&#x30E9;&#x30D5;&#x30D9;&#x30FC;&#x30B9;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306E; HNSW &#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x305F;&#x3081;&#x3001;&#x8AA4;&#x5DEE;&#x4E0A;&#x9650;&#x3092;&#x5229;&#x7528;&#x3057;&#x305F;&#x30EA;&#x30E9;&#x30F3;&#x30AD;&#x30F3;&#x30B0;&#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#xFF08;&#x305D;&#x3082;&#x305D;&#x3082;&#x8AA4;&#x5DEE;&#x4E0A;&#x9650;&#x306E;&#x4FDD;&#x8A3C;&#x3082;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x304C;&#xFF09;&#x3002;</p>
<p>Elasticsearch &#x306E; BBQ &#x306F;&#x3001;RaBitQ &#x306E;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71;&#x3068;&#x30EA;&#x30E9;&#x30F3;&#x30AD;&#x30F3;&#x30B0;&#x3092;&#x53D6;&#x308A;&#x5165;&#x308C;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x3055;&#x3089;&#x306B;&#x7CBE;&#x5EA6;&#x30FB;&#x901F;&#x5EA6;&#x306E;&#x5411;&#x4E0A;&#x306E;&#x4F59;&#x5730;&#x304C;&#x3042;&#x308A;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x306F;&#x4EBA;&#x529B;&#x3067;&#x66F8;&#x304B;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;BBQ &#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x65B9;&#x306E;&#x53C2;&#x8003;&#x306B;&#x306A;&#x308C;&#x3070;&#x5E78;&#x3044;&#x3067;&#x3059;&#x3002;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Jianyang Gao and Cheng Long. 2024. RaBitQ: Quantizing High-Dimensional Vectors with a Theoretical Error Bound for Approximate Nearest Neighbor Search. Proc. ACM Manag. Data 2, 3, Article 167 (June 2024), 27 pages. <a href="https://doi.org/10.1145/3654970">https://doi.org/10.1145/3654970</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:1" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:2" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:3" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:4" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:5" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:6" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref1:7" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p><a href="https://github.com/erikbern/ann-benchmarks">https://github.com/erikbern/ann-benchmarks</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p>&#x677E;&#x4E95; &#x52C7;&#x4F51;. 2019. &#x8FD1;&#x4F3C;&#x6700;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#x306E;&#x6700;&#x524D;&#x7DDA;. MIRU 2019 &#x30C1;&#x30E5;&#x30FC;&#x30C8;&#x30EA;&#x30A2;&#x30EB;. <a href="https://speakerdeck.com/matsui_528/jin-si-zui-jin-bang-tan-suo-falsezui-qian-xian">https://speakerdeck.com/matsui_528/jin-si-zui-jin-bang-tan-suo-falsezui-qian-xian</a> <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref3:1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn4" class="footnote-item"><p>Herve Jegou, Matthijs Douze, and Cordelia Schmid. 2011. Product Quantization for Nearest Neighbor Search. IEEE Trans. Pattern Anal. Mach. Intell. 33, 1 (January 2011), 117&#x2013;128. <a href="https://doi.org/10.1109/TPAMI.2010.57">https://doi.org/10.1109/TPAMI.2010.57</a> <a href="#fnref4" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref4:1" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref4:2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn5" class="footnote-item"><p>&#x4F59;&#x8AC7;&#x3067;&#x3059;&#x304C;&#x3001;IVF &#x3067;&#x306E;&#x7C97;&#x91CF;&#x5B50;&#x5316;&#x5668;&#x3092; HNSW &#x306B;&#x3059;&#x308B;&#x624B;&#x6CD5;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002; <a href="#fnref5" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn6" class="footnote-item"><p><a href="https://www.elastic.co/search-labs/blog/rabitq-explainer-101">https://www.elastic.co/search-labs/blog/rabitq-explainer-101</a> <a href="#fnref6" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn7" class="footnote-item"><p>&#x5B9F;&#x969B;&#x306B;&#x306F;&#x504F;&#x308A;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x3053;&#x308C;&#x3092;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x89E3;&#x6D88;&#x3059;&#x308B;&#x304B;&#x3092;&#x5F8C;&#x3067;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x3059;&#x3002; <a href="#fnref7" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn8" class="footnote-item"><p><a href="https://www.elastic.co/search-labs/blog/rabitq-explainer-101">https://www.elastic.co/search-labs/blog/rabitq-explainer-101</a> <a href="#fnref8" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn9" class="footnote-item"><p>William B Johnson and Joram Lindenstrauss. 1984. Extensions of Lipschitz mappings into a Hilbert space. In: Proceedings of the 1982 Conference in Modern Analysis and Probability. Vol. 26. Contemporary Mathematics. AMS, 1984, pp. 189&#x2013;206. <a href="https://doi.org/10.1090/conm/026/737400">https://doi.org/10.1090/conm/026/737400</a> <a href="#fnref9" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn10" class="footnote-item"><p>Casper Benjamin Freksen. 2021. An introduction to Johnson-Lindenstrauss Transforms. <em>arXiv [cs.DS]</em>. Retrieved December 25, 2024 from <a href="http://arxiv.org/abs/2103.00564">http://arxiv.org/abs/2103.00564</a> <a href="#fnref10" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn11" class="footnote-item"><p>Johnson-Lindenstrauss&#x306E;&#x88DC;&#x984C;&#x306B;&#x3088;&#x308A;&#x3001;&#x5909;&#x63DB;&#x3092;&#x3057;&#x3066;&#x3082;2&#x3064;&#x306E;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306E;&#x8DDD;&#x96E2;&#x304C;&#x4E00;&#x5B9A;&#x306E;&#x8AA4;&#x5DEE;&#x5185;&#x306B;&#x6291;&#x3048;&#x3089;&#x308C;&#x308B;&#x3068;&#x3044;&#x3046;&#x6027;&#x8CEA;&#x304C;&#x8A3C;&#x660E;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF08;&#x305F;&#x3068;&#x3048;&#x5C04;&#x5F71;&#x5148;&#x304C;&#x4F4E;&#x6B21;&#x5143;&#x3067;&#x3082;&#xFF09;&#x3002; <a href="#fnref11" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn12" class="footnote-item"><p>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71;&#x306B;&#x3088;&#x308B;&#x7279;&#x7570;&#x5024;&#x5206;&#x89E3;&#xFF08;&#x6B21;&#x5143;&#x524A;&#x6E1B;&#xFF09;&#x306F;&#x3001;scikit-learn &#x306B;&#x3082;&#x5B9F;&#x88C5;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; <a href="https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html#sklearn.decomposition.TruncatedSVD">https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html#sklearn.decomposition.TruncatedSVD</a> <a href="#fnref12" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn13" class="footnote-item"><p>&#x306A;&#x304A;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3092;&#x6B63;&#x898F;&#x5316;&#x3057;&#x3066; $\bm{o}$ &#x3092;&#x8A08;&#x7B97;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B; $\bm{o_r}$ &#x304B;&#x3089;&#x30BB;&#x30F3;&#x30C8;&#x30ED;&#x30A4;&#x30C9; $\bm{c}$ &#x3092;&#x5F15;&#x3044;&#x305F;&#x5F8C;&#x3001;&#x30CE;&#x30EB;&#x30E0;&#x3067;&#x5272;&#x3063;&#x3066;&#x6B63;&#x898F;&#x5316;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x5B9F;&#x306F;<a href="https://x.com/gaoj0017/status/1872476736543412262">&#x91CF;&#x5B50;&#x5316;&#x3059;&#x308B;&#x3046;&#x3048;&#x3067;&#x306F;&#x30CE;&#x30EB;&#x30E0;&#x3067;&#x5272;&#x3089;&#x306A;&#x304F;&#x3066;&#x3082;&#x540C;&#x3058;&#x7D50;&#x679C;&#x304C;&#x5F97;&#x3089;&#x308C;&#x307E;&#x3059;</a>&#x3002;RaBitQ &#x3067;&#x3082; BBQ &#x3067;&#x3082;&#x3001;&#x30CE;&#x30EB;&#x30E0;&#x3067;&#x306E;&#x5272;&#x308A;&#x7B97;&#x306F;&#x7701;&#x7565;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; <a href="#fnref13" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn14" class="footnote-item"><p>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x5C04;&#x5F71;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x304B;&#x3089;&#x3060;&#x3068;&#x601D;&#x308F;&#x308C;&#x308B; <a href="#fnref14" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn15" class="footnote-item"><p>&#x306A;&#x304A;&#x3001;<a href="https://x.com/gaoj0017/status/1872477101234008129">&#x3053;&#x306E;&#x5185;&#x7A4D;&#x306E;&#x5024;&#x306E;&#x4FDD;&#x5B58;&#x306F;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30F3;&#x3067;&#x3059;&#x3002;&#x4FDD;&#x5B58;&#x3057;&#x306A;&#x3044;&#x5834;&#x5408;&#x3001;&#x3053;&#x306E;&#x5024;&#x306E;&#x7406;&#x8AD6;&#x5024;&#x3067;&#x3042;&#x308B; 0.8 &#x3092;&#x4F7F;&#x7528;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;</a>&#xFF08;Section 3.2.1&#xFF09;&#x3002; <a href="#fnref15" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn16" class="footnote-item"><p>&#x3053;&#x3053;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x5B9F;&#x7528;&#x4E0A;&#x306F;&#x78BA;&#x7387;&#x7684;&#x306B;&#x30B5;&#x30F3;&#x30D7;&#x30EA;&#x30F3;&#x30B0;&#x305B;&#x305A;&#x3001;&#x56DB;&#x6368;&#x4E94;&#x5165;&#x306A;&#x3069;&#x3067;&#x6C7A;&#x5B9A;&#x7684;&#x306B;&#x4E38;&#x3081;&#x308B;&#x3060;&#x3051;&#x3067;&#x3082;&#x5341;&#x5206;&#x304B;&#x3082;&#x3057;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002; <a href="#fnref16" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn17" class="footnote-item"><p><a href="https://www.elastic.co/search-labs/blog/better-binary-quantization-lucene-elasticsearch">https://www.elastic.co/search-labs/blog/better-binary-quantization-lucene-elasticsearch</a> <a href="#fnref17" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref17:1" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref17:2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn18" class="footnote-item"><p>&#x524D;&#x306E;&#x811A;&#x6CE8;&#x3067;&#x8AAC;&#x660E;&#x3057;&#x305F;&#x901A;&#x308A;&#x3001;&#x4FDD;&#x5B58;&#x3057;&#x306A;&#x3044;&#x5834;&#x5408;&#x306F;&#x7406;&#x8AD6;&#x5024;&#x3067;&#x3042;&#x308B; 0.8 &#x3092;&#x4F7F;&#x7528;&#x3057;&#x307E;&#x3059;&#x3002; <a href="#fnref18" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn19" class="footnote-item"><p>Jianyang Gao, Yutong Gou, Yuexuan Xu, Yongyi Yang, Cheng Long, and Raymond Chi-Wing Wong. 2024. Practical and asymptotically optimal quantization of high-dimensional vectors in Euclidean space for approximate nearest neighbor search. <em>arXiv [cs.DB]</em> <a href="http://arxiv.org/abs/2409.09913">http://arxiv.org/abs/2409.09913</a> <a href="#fnref19" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn20" class="footnote-item"><p><a href="https://x.com/gaoj0017/status/1872475912589165017">https://x.com/gaoj0017/status/1872475912589165017</a> <a href="#fnref20" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[2023振り返り]]></title><description><![CDATA[<p>&#x5E74;&#x304C;&#x660E;&#x3051;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;2023&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x3067;&#x3059;&#x3002;</p><p>&#x53BB;&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x306F;&#x3053;&#x3061;&#x3089;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://takuya-a.net/blog/2022-look-back/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2022&#x632F;&#x308A;&#x8FD4;&#x308A;</div><div class="kg-bookmark-description">&#x666E;&#x6BB5;&#x3001;&#x3053;&#x3046;&#x3044;&#x3063;&#x305F;&#x30D6;&#x30ED;</div></div></a></figure>]]></description><link>https://takuya-a.net/blog/2023-look-back/</link><guid isPermaLink="false">659562bf9eba39000173cd5d</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Wed, 03 Jan 2024 14:04:13 GMT</pubDate><content:encoded><![CDATA[<p>&#x5E74;&#x304C;&#x660E;&#x3051;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;2023&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x3067;&#x3059;&#x3002;</p><p>&#x53BB;&#x5E74;&#x306E;&#x632F;&#x308A;&#x8FD4;&#x308A;&#x306F;&#x3053;&#x3061;&#x3089;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://takuya-a.net/blog/2022-look-back/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2022&#x632F;&#x308A;&#x8FD4;&#x308A;</div><div class="kg-bookmark-description">&#x666E;&#x6BB5;&#x3001;&#x3053;&#x3046;&#x3044;&#x3063;&#x305F;&#x30D6;&#x30ED;&#x30B0;&#x306F;&#x3042;&#x307E;&#x308A;&#x66F8;&#x304B;&#x306A;&#x3044;&#x304C;&#x3001;&#x3044;&#x3044;&#x6A5F;&#x4F1A;&#x3060;&#x3057;&#x3001;&#x66F8;&#x304D;&#x6B8B;&#x3057;&#x3066;&#x3042;&#x308B;&#x3068;&#x3001;&#x306E;&#x3061;&#x306E;&#x3061;&#x898B;&#x8FD4;&#x3059;&#x306E;&#x306B;&#x4FBF;&#x5229;&#x304B;&#x306A;&#x3068;&#x601D;&#x3044;&#x3001;&#x4ECA;&#x5E74;&#x3084;&#x3063;&#x305F;&#x3053;&#x3068;&#x3092;&#x66F8;&#x304D;&#x51FA;&#x3057;&#x3066;&#x307F;&#x308B;&#x3002;&#x307B;&#x3068;&#x3093;&#x3069;&#x8DA3;&#x5473;&#x306E;&#x8A71;&#x3067;&#x3059;&#x3002; * &#x96FB;&#x5B50;&#x5DE5;&#x4F5C; * &#x7AF6;&#x6280;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0; * &#x30D1;&#x30BD;&#x30B3;&#x30F3; * &#x30B2;&#x30FC;&#x30E0; * &#x767B;&#x5C71; * &#x30B3;&#x30FC;&#x30D2;&#x30FC; * &#x8AD6;&#x6587;&#x8AAD;&#x307F; * &#x4ED5;&#x4E8B; * &#x304A;&#x308F;&#x308A;&#x306B; &#x96FB;&#x5B50;&#x5DE5;&#x4F5C; &#x53BB;&#x5E74;&#x3001;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x7406;&#x8AD6;&#x3068;&#x5B9F;&#x88C5;&#x3068;&#x3044;&#x3046;&#x672C;&#x3092;&#x3059;&#x3053;&#x3057;&#x8AAD;&#x3093;&#x3067;&#x30CF;&#x30FC;&#x30C9;&#x30A6;&#x30A7;&#x30A2;&#x3068;&#x3044;&#x3046;&#x304B;&#x96FB;&#x5B50;&#x56DE;&#x8DEF;&#x65B9;&#x9762;&#x306B;&#x8208;&#x5473;&#x304C;&#x6E67;&#x304D;&#x3001;&#x5E74;&#x672B;&#x306B;&#x30D6;&#x30EC;&#x30C3;&#x30C9;&#x30DC;&#x30FC;&#x30C9;&#x3084;&#x3089;&#x62B5;&#x6297;&#x3084;&#x3089;&#x3092;&#x8CB7;&#x3044;&#x63C3;&#x3048;&#x3066;&#x3001;LED&#x5149;&#x3089;&#x305B;&#x3066;&#x904A;&#x3093;&#x3060;&#x308A;&#x3057;&#x3066;&#x3044;&#x305F;&#x3002; &#x96FB;&#x5B50;&#x5DE5;&#x4F5C;&#x5165;&#x9580;&#x3059;&#x308B; pic.twitter.com/F3MQLZiFlS &#x2014; tak&#x2026;</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">Stop-the-world</span><span class="kg-bookmark-publisher">Takuya Asano</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.ghost.org/v4.0.0/images/publication-cover.jpg" alt></div></a></figure><h2 id="%E8%B2%B7%E3%81%A3%E3%81%A6%E3%82%88%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE">&#x8CB7;&#x3063;&#x3066;&#x3088;&#x304B;&#x3063;&#x305F;&#x3082;&#x306E;</h2><h3 id="keychron-q11">Keychron Q11</h3><p>Out-of-the-box &#x3067;&#x4F7F;&#x3048;&#x308B;&#x5206;&#x5272;&#x5F0F;&#x30AD;&#x30FC;&#x30DC;&#x30FC;&#x30C9;&#x3067;&#x3042;&#x308B; Keychron Q11 &#x3092;&#x8CB7;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>&#x30AD;&#x30FC;&#x30DE;&#x30C3;&#x30D7;&#x306F; <a href="https://www.caniusevia.com/">VIA</a> &#x3067;&#x30AB;&#x30B9;&#x30BF;&#x30DE;&#x30A4;&#x30BA;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x81EA;&#x5206;&#x306F; Windows &#x3068; macOS &#x3069;&#x3063;&#x3061;&#x3082;&#x4F7F;&#x3046;&#x306E;&#x3067;&#x3001;&#x30E2;&#x30FC;&#x30C9;&#x306E;&#x5207;&#x308A;&#x66FF;&#x3048;&#x30B9;&#x30A4;&#x30C3;&#x30C1;&#x3082;&#x4FBF;&#x5229;&#x3002;</p><p>&#x30ED;&#x30FC;&#x30BF;&#x30EA;&#x30FC;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C0;&#x304C;&#x5DE6;&#x53F3;&#x305D;&#x308C;&#x305E;&#x308C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x53F3;&#x306F;&#x30DC;&#x30EA;&#x30E5;&#x30FC;&#x30E0;&#x3001;&#x5DE6;&#x306F;&#x753B;&#x9762;&#x306E;&#x62E1;&#x5927;&#x30FB;&#x7E2E;&#x5C0F;&#xFF08;macOS &#x306E;&#x5834;&#x5408; <code>G(KC_MINS)</code> <code>G(KC_EQL)</code> &#xFF09;&#x306B;&#x5272;&#x308A;&#x5F53;&#x3066;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="und" dir="ltr">mng <a href="https://t.co/MmFLUWY8lt">pic.twitter.com/MmFLUWY8lt</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1732792602075045996?ref_src=twsrc%5Etfw">December 7, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

</figure><h3 id="%E3%83%9E%E3%82%AD%E3%82%BF%E3%81%AE%E7%A9%BA%E6%B0%97%E5%85%A5%E3%82%8C">&#x30DE;&#x30AD;&#x30BF;&#x306E;&#x7A7A;&#x6C17;&#x5165;&#x308C;</h3><p>&#x30DE;&#x30AD;&#x30BF;&#x306E;&#x30D0;&#x30C3;&#x30C6;&#x30EA;&#x30FC;&#x3067;&#x52D5;&#x304F;&#x7A7A;&#x6C17;&#x5165;&#x308C;&#x3092;&#x8CB7;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;</p><p>&#x3053;&#x308C;&#x307E;&#x3067;&#x9AD8;&#x6C17;&#x5727;&#x307E;&#x3067;&#x30CF;&#x30A2;&#x30CF;&#x30A2;&#x8A00;&#x3044;&#x306A;&#x304C;&#x3089;&#x5165;&#x308C;&#x3066;&#x3044;&#x305F;&#x306E;&#x306F;&#x306A;&#x3093;&#x3060;&#x3063;&#x305F;&#x3093;&#x3060;&#x3002;&#x3081;&#x3061;&#x3083;&#x304F;&#x3061;&#x3083;&#x697D;&#x3067;&#x3059;&#x3002;&#x200C;&#x200C;&#x52D5;&#x4F5C;&#x97F3;&#x306F;&#x3051;&#x3063;&#x3053;&#x3046;&#x5927;&#x304D;&#x3044;&#x306E;&#x3067;&#x74B0;&#x5883;&#x306F;&#x9078;&#x3076;&#x304B;&#x3082;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x601D;&#x3063;&#x305F;&#x3088;&#x308A;&#x30B3;&#x30F3;&#x30D1;&#x30AF;&#x30C8; <a href="https://t.co/dRvJmG7goO">pic.twitter.com/dRvJmG7goO</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1617739688495943681?ref_src=twsrc%5Etfw">January 24, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

</figure><h2 id="homelab">Homelab</h2><h3 id="mastodon">Mastodon</h3><p>&#x53BB;&#x5E74;&#x304B;&#x3089;&#x81EA;&#x5B85;&#x30B5;&#x30FC;&#x30D0;&#x3067; <a href="https://mstdn.takuya-a.net/about">mstdon.takuya-a.net</a> &#x3092;&#x904B;&#x7528;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x200C;&#x200C;</p><p>ECK &#x3067; Elasticsearch &#x3092;&#x305F;&#x3066;&#x3066;&#x3001;&#x5168;&#x6587;&#x691C;&#x7D22;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;&#x3042;&#x3068;&#x3001;&#x6C17;&#x304C;&#x5411;&#x3044;&#x305F;&#x3068;&#x304D;&#x306B;&#x3061;&#x3087;&#x3044;&#x3061;&#x3087;&#x3044;&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;&#x30A2;&#x30C3;&#x30D7;&#x4F5C;&#x696D;&#x306A;&#x3069;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p><h3 id="tailscale">Tailscale</h3><p>VPN &#x7684;&#x306A;&#x7528;&#x9014;&#x3067; <a href="https://tailscale.com/">tailscale</a> &#x3092;&#x5C0E;&#x5165;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;&#x30DB;&#x30B9;&#x30C8;&#x306B; tailscale &#x306E;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x3092;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3057;&#x3066;&#x304A;&#x304F;&#x3068;&#x3001;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x540C;&#x58EB;&#x3067; Wireguard &#x30D9;&#x30FC;&#x30B9;&#x306E; VPN &#x901A;&#x4FE1;&#x304C;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x3064;&#x3044;&#x306B;&#x5916;&#x304B;&#x3089;&#x3067;&#x3082; SSH &#x7D4C;&#x7531;&#x3067; kubectl &#x53E9;&#x3051;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F; <a href="https://t.co/PIST8wHsnJ">pic.twitter.com/PIST8wHsnJ</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1634941323823452167?ref_src=twsrc%5Etfw">March 12, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

</figure><p>&#x4ECA;&#x56DE;&#x306F; Bastion &#x7684;&#x306A; VM &#x3092;&#x7ACB;&#x3066;&#x3066;&#x3001;&#x305D;&#x3053;&#x306B; tailscale &#x306E;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x3092;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;iPad &#x3084;&#x30B9;&#x30DE;&#x30DB;&#x306B; tailscale &#x3068;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x30A2;&#x30D7;&#x30EA;&#x3092;&#x5165;&#x308C;&#x3066;&#x304A;&#x304F;&#x3068;&#x3001;&#x5916;&#x304B;&#x3089; VPN &#x3067;&#x5185;&#x90E8;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x306B;&#x5165;&#x308A;&#x3001;&#x81EA;&#x5B85;&#x30B5;&#x30FC;&#x30D0;&#x306E;&#x30E1;&#x30F3;&#x30C6;&#x304C;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p><h2 id="%E3%82%B2%E3%83%BC%E3%83%A0">&#x30B2;&#x30FC;&#x30E0;</h2><h3 id="mtg">MTG</h3><p>&#x4EF2;&#x9593;&#x5185;&#x3067;&#x7D71;&#x7387;&#x8005;&#x6226; (EDH) &#x3092;&#x3084;&#x3063;&#x3066;&#x307F;&#x305F;&#x3044;&#x3068;&#x3044;&#x3046;&#x8A71;&#x306B;&#x306A;&#x308A;&#x3001;1&#x6708;&#x306B;&#xFF08;&#x7D19;&#x306E;&#xFF09;&#x69CB;&#x7BC9;&#x6E08;&#x307F;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x8CB7;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x304A;&#x3082;&#x3061;&#x3083;&#x5C4A;&#x3044;&#x305F; <a href="https://t.co/0wmviwf38Q">pic.twitter.com/0wmviwf38Q</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1617375579011186692?ref_src=twsrc%5Etfw">January 23, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

</figure><p>&#x5B9F;&#x306F;&#x4F1A;&#x793E;&#x306B;&#x3082; MTG &#x306E;&#x30B5;&#x30FC;&#x30AF;&#x30EB;&#x6D3B;&#x52D5;&#x304C;&#x5B58;&#x5728;&#x3057;&#x3066;&#x304A;&#x308A;&#x3001;&#x304A;&#x304A;&#x3088;&#x305D;&#x9031;1&#x3067; EDH &#x3092;&#x3084;&#x3063;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x304C;&#x5224;&#x660E;&#x3057;&#x3001;&#x6642;&#x9593;&#x3092;&#x307F;&#x3064;&#x3051;&#x3066;&#x53C2;&#x52A0;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;&#x305D;&#x3053;&#x304B;&#x3089;&#x305A;&#x308B;&#x305A;&#x308B;&#x3068;&#x6CBC;&#x306B;&#x5F15;&#x304D;&#x8FBC;&#x307E;&#x308C;&#x3066;&#x3044;&#x304D;&#x3001;&#x30C7;&#x30C3;&#x30AD;&#x304C;6&#x500B;&#x306B;&#x5897;&#x6B96;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x52A9;&#x3051;&#x3066;&#x3002;&#x200C;&#x200C;</p><figure class="kg-card kg-image-card"><img src="https://takuya-a.net/blog/content/images/2024/01/image.png" class="kg-image" alt loading="lazy" width="265" height="370"></figure><h3 id="%E3%83%9D%E3%82%B1%E3%82%B9%E3%83%AA">&#x30DD;&#x30B1;&#x30B9;&#x30EA;</h3><p>&#x30DD;&#x30B1;&#x30B9;&#x30EA;&#x3092;&#x59CB;&#x3081;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x7761;&#x7720;&#x6642;&#x9593;&#x304C;&#x77ED;&#x304F;&#x3066;&#x305C;&#x3093;&#x305C;&#x3093;&#x653B;&#x7565;&#x304C;&#x6357;&#x3089;&#x306A;&#x3044;&#x3002;&#x200C;&#x200C;2024&#x5E74;&#x306F;&#x7761;&#x7720;&#x6642;&#x9593;&#x3092;&#x5897;&#x3084;&#x3057;&#x305F;&#x3044;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://takuya-a.net/blog/content/images/2024/01/image-1.png" class="kg-image" alt loading="lazy" width="1080" height="2400" srcset="https://takuya-a.net/blog/content/images/size/w600/2024/01/image-1.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2024/01/image-1.png 1000w, https://takuya-a.net/blog/content/images/2024/01/image-1.png 1080w" sizes="(min-width: 720px) 720px"></figure><h2 id="%E3%82%A2%E3%83%8B%E3%83%A1">&#x30A2;&#x30CB;&#x30E1;</h2><h3 id="%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%A8%E3%83%AD%E3%83%BC%E3%83%95%E3%82%A1%E3%83%BC">&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x3068;&#x30ED;&#x30FC;&#x30D5;&#x30A1;&#x30FC;</h3><p>&#x4ECA;&#x5E74;&#x898B;&#x305F;&#x30A2;&#x30CB;&#x30E1;&#x306E;&#x4E2D;&#x3067;&#x306F;<a href="https://skip-and-loafer.com/">&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x3068;&#x30ED;&#x30FC;&#x30D5;&#x30A1;&#x30FC;</a>&#x304C;&#x3088;&#x304B;&#x3063;&#x305F;&#x3067;&#x3059;&#x3002;&#x7652;&#x3084;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x200C;&#x200C;&#x75B2;&#x308C;&#x3066;&#x3044;&#x308B;&#x4EBA;&#x306F;&#x307F;&#x308B;&#x3068;&#x3044;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;&#x7652;&#x3084;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.netflix.com/jp/title/81681471"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x3068;&#x30ED;&#x30FC;&#x30D5;&#x30A1;&#x30FC; | Netflix</div><div class="kg-bookmark-description">&#x9AD8;&#x6821;&#x5165;&#x5B66;&#x3092;&#x6A5F;&#x306B;&#x4E0A;&#x4EAC;&#x3057;&#x305F;&#x7F8E;&#x6D25;&#x672A;&#x3002;&#x52C9;&#x5F37;&#x306F;&#x3067;&#x304D;&#x308B;&#x304C;&#x4EBA;&#x9593;&#x95A2;&#x4FC2;&#x306B;&#x4E0D;&#x5668;&#x7528;&#x306A;&#x5F7C;&#x5973;&#x306F;&#x5B66;&#x6821;&#x3067;&#x6D6E;&#x3044;&#x305F;&#x5B58;&#x5728;&#x3068;&#x306A;&#x308B;&#x304C;&#x3001;&#x306E;&#x3093;&#x3073;&#x308A;&#x5C4B;&#x306E;&#x5FD7;&#x6469;&#x3068;&#x53CB;&#x9054;&#x306B;&#x306A;&#x3063;&#x305F;&#x3053;&#x3068;&#x3092;&#x304D;&#x3063;&#x304B;&#x3051;&#x306B;&#x3001;&#x90FD;&#x4F1A;&#x3067;&#x306E;&#x65B0;&#x751F;&#x6D3B;&#x306B;&#x5C11;&#x3057;&#x305A;&#x3064;&#x306A;&#x3058;&#x3093;&#x3067;&#x3044;&#x304F;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.nflxext.com/us/ffe/siteui/common/icons/nficon2016.png" alt><span class="kg-bookmark-author">Netflix</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://occ-0-988-993.1.nflxso.net/dnm/api/v6/E8vDc_W8CLv7-yMQu8KMEC7Rrr8/AAAABUGLUbR73vjBzpvHYJeGbfTB-uWKAs-UtaOnX_t6J5auTqFNaReN7RgHMCKdFkI7-ubShSEque6JNg_B3YctmnZKcmHRLECJQ7zn.jpg?r=32e" alt></div></a></figure><h2 id="%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%83%BB%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E6%B4%BB%E5%8B%95">&#x52C9;&#x5F37;&#x4F1A;&#x30FB;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x6D3B;&#x52D5;</h2><h3 id="ir-reading">IR Reading</h3><p>6&#x6708;&#x306B;&#x958B;&#x50AC;&#x3055;&#x308C;&#x305F; IR Reading 2023 Spring &#x3067; <a href="https://dl.acm.org/doi/10.1145/3543507.3583497">Optimizing Guided Traversal for Fast Learned Sparse Retrieval (WWW 2023)</a> &#x3068;&#x3044;&#x3046;&#x8AD6;&#x6587;&#x3092;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;LSR (Learned Sparse Retrieval) &#x306E; OR &#x691C;&#x7D22;&#x3092;&#x9AD8;&#x901F;&#x5316;&#x3059;&#x308B;&#x624B;&#x6CD5;&#x306B;&#x95A2;&#x3059;&#x308B;&#x8AD6;&#x6587;&#x3067;&#x3059;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.google.com/presentation/d/1bnLrSz4WmGJYXqKAlz4pk-dk1Xs7j0Y8A9-Z63M9vQU/edit?usp=sharing"><div class="kg-bookmark-content"><div class="kg-bookmark-title">IR Reading 2023 Spring: Optimizing Guided Traversal for Fast Learned Sparse Retrieval</div><div class="kg-bookmark-description">IR Reading 2023 Spring: Optimizing Guided Traversal for Fast Learned Sparse Retrieval (WWW &#x2019;23) Takuya Asano LegalOn Technologies, Inc.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ssl.gstatic.com/docs/presentations/images/favicon-2023q4.ico" alt><span class="kg-bookmark-author">Google Docs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lh7-us.googleusercontent.com/docs/AHkbwyJNJVYaU7wAwD-874d9Yeun7-ThgjqMbcunl4AFwRWG1mMSWWVlEi7CpWYtAq6bvMq0GqJo12HmAfnXxCkwFj0-rDNnM0ZfNbYmBKLACrgpBro=w1200-h630-p" alt></div></a></figure><p>&#x5F53;&#x65E5;&#x306E;&#x69D8;&#x5B50;&#x306F;&#x4F1A;&#x793E;&#x306E;&#x30D6;&#x30ED;&#x30B0;&#x306B;&#x3082;&#x66F8;&#x304D;&#x307E;&#x3057;&#x305F;&#x306E;&#x3067;&#x3001;&#x8208;&#x5473;&#x306E;&#x3042;&#x308B;&#x65B9;&#x306F;&#x3053;&#x3061;&#x3089;&#x3082;&#x3069;&#x3046;&#x305E;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftech.legalforce.co.jp%2Fentry%2F2023%2F06%2F23%2F181449" title="IR Reading 2023 Spring &#x53C2;&#x52A0;&#x30EC;&#x30DD;&#x30FC;&#x30C8; - LegalOn Technologies Engineering Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></figure><p>&#x305D;&#x306E;&#x4ED6;&#x3001;&#x4ECA;&#x5E74;&#x306F; LSR &#x306B;&#x95A2;&#x3059;&#x308B;&#x8AD6;&#x6587;&#x3092;&#x3051;&#x3063;&#x3053;&#x3046;&#x8AAD;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;&#x307E;&#x3060;&#x9014;&#x4E2D;&#x3067;&#x3059;&#x304C;&#x3001; LSR &#x95A2;&#x9023;&#x306E;&#x4E3B;&#x306A;&#x624B;&#x6CD5;&#x3092;&#x6982;&#x89B3;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306A;&#x8CC7;&#x6599;&#x3092;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x524D;&#x534A;&#x90E8;&#x5206;&#x306F;&#x793E;&#x5185;&#x306E;&#x52C9;&#x5F37;&#x4F1A;&#x3067;&#x767A;&#x8868;&#x3057;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x5F8C;&#x534A;&#x90E8;&#x5206;&#x304C;&#x307E;&#x3060;&#x306A;&#x306E;&#x3067;&#x3001;2024&#x5E74;&#x4E2D;&#x306B;&#x305C;&#x3093;&#x3076;&#x8AAD;&#x3093;&#x3067;&#x30B9;&#x30E9;&#x30A4;&#x30C9;&#x3092;&#x5B8C;&#x6210;&#x3055;&#x305B;&#x305F;&#x3044;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.google.com/presentation/d/1MKoS_QRd-wcMl7VNlZJE0NH_1ThCCgjVHskm8qsIVjU/edit?usp=sharing"><div class="kg-bookmark-content"><div class="kg-bookmark-title">A Quick Tour of Learned Sparse Retrieval</div><div class="kg-bookmark-description">A Quick Tour of Learned Sparse Retrieval Takuya Asano</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ssl.gstatic.com/docs/presentations/images/favicon-2023q4.ico" alt><span class="kg-bookmark-author">Google Docs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lh7-us.googleusercontent.com/docs/AHkbwyKMVPNIvjNyLKbSa_9be00N_-jLfcGonUpwOF8wrtGL0qlTHil9T9dYEkYGwz8WK3_lc_B4g0tkV7kmM8MpvDsSPQiAhBJd2gugHXkuiNEOMA=w1200-h630-p" alt></div></a></figure><h3 id="%E6%A4%9C%E7%B4%A2%E6%8A%80%E8%A1%93%E5%8B%89%E5%BC%B7%E4%BC%9A">&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;</h3><p>4&#x5E74;&#x3076;&#x308A;&#x306B;&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;&#x3092;&#x518D;&#x958B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x306A;&#x3093;&#x3068;&#x304B;&#x7121;&#x4E8B;&#x306B;&#x958B;&#x50AC;&#x3067;&#x304D;&#x3066;&#x3001;&#x624B;&#x4F1D;&#x3063;&#x3066;&#x304F;&#x3060;&#x3055;&#x3063;&#x305F;<a href="https://twitter.com/johtani">@johtani&#x3055;&#x3093;</a>&#x3001;<a href="https://twitter.com/ikawaha">@ikawaha&#x3055;&#x3093;</a>&#x3001;<a href="https://twitter.com/minoru_osuka">@minoru_osuka&#x3055;&#x3093;</a>&#x3084;&#x3001;LegalOn Technologies &#x306E;&#x7686;&#x69D8;&#x306B;&#x611F;&#x8B1D;&#x3002;&#x61C7;&#x89AA;&#x4F1A;&#x3082;&#x76DB;&#x6CC1;&#x3067;&#x3057;&#x305F;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://search-tech.connpass.com/event/303330/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Search Engineering Tech Talk 2023 Winter (2023/12/20 19:30&#x301C;)</div><div class="kg-bookmark-description">Search Engineering Tech Talk&#x518D;&#x59CB;&#x52D5;&#x3067;&#x3059;&#x3002;&#x7B2C;5&#x56DE;&#x76EE;&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002; &#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;&#x306E;&#x76EE;&#x7684;&#x306F;&#x3001;&#x300C;&#x691C;&#x7D22;&#x300D;/&#x300C;&#x691C;&#x7D22;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x300D;&#x306B;&#x307E;&#x3064;&#x308F;&#x308B;&#x6280;&#x8853;&#x3084;&#x624B;&#x6CD5;&#x306B;&#x95A2;&#x3057;&#x3066;&#x5171;&#x6709;&#x3067;&#x304D;&#x308B;&#x5834;&#x3092;&#x63D0;&#x4F9B;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002; &#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x3054;&#x3068;&#x306E;&#x52C9;&#x5F37;&#x4F1A;&#x306A;&#x3069;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306B;&#x306F;&#x95A2;&#x4FC2;&#x306A;&#x304F;&#x3001; &#x300C;&#x691C;&#x7D22;&#x300D;&#x3068;&#x3044;&#x3046;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3001;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;&#x4F5C;&#x308B;&#x4E0A;&#x3067;&#x5171;&#x901A;&#x306E;&#x89E3;&#x6C7A;&#x3059;&#x3079;&#x304D;&#x8AB2;&#x984C;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002; &#x3053;&#x308C;&#x3089;&#x306E;&#x8AB2;&#x984C;&#x3092;&#x307F;&#x3093;&#x306A;&#x304C;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x89E3;&#x6C7A;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x304B;&#x3068;&#x3044;&#x3063;&#x305F;&#x77E5;&#x8B58;&#x3092;&#x5171;&#x6709;&#x3067;&#x304D;&#x308B;&#x5834;&#x306B;&#x306A;&#x308C;&#x3070;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; &#x4ECA;&#x5F8C;&#x3082;&#x3001;&#x4EE5;&#x524D;&#x306E;&#x3088;&#x3046;&#x306B;3&#x30F6;&#x6708;&#x306B;1&#x56DE;&#x304F;&#x3089;&#x3044;&#x306E;&#x30DA;&#x30FC;&#x30B9;&#x3067;&#x958B;&#x50AC;&#x4E88;&#x5B9A;&#x3067;&#x3059;&#x3002;&#x30B9;&#x30D4;&#x30FC;&#x30AB;&#x30FC;&#x52DF;&#x96C6;&#x3057;&#x3066;&#x307E;&#x3059;! ### &#x5404;&#x53C2;&#x52A0;&#x67A0;&#x306E;&#x8AAC;&#x660E; * &#x4E00;&#x822C;&#x53C2;&#x52A0;: &#x7279;...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://connpass.com/static/img/apple_touch_icon.png" alt><span class="kg-bookmark-author">connpass</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://media.connpass.com/thumbs/c7/ca/c7cad17a797eadf661f408734f01d3b0.png" alt></div></a></figure><h2 id="oss">OSS</h2><h3 id="%E6%B3%95%E4%BB%A4xml%E3%83%91%E3%83%BC%E3%82%B5%E3%83%BC">&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#x30FC;</h3><p>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3057;&#x3066;pydantic&#x306E;&#x30E2;&#x30C7;&#x30EB;&#x306B;&#x5909;&#x63DB;&#x3059;&#x308B;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA; <a href="https://github.com/takuyaa/ja-law-parser">ja-law-parser</a> &#x3092;&#x516C;&#x958B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>&#x8A73;&#x3057;&#x3044;&#x8A71;&#x306F;&#x30D6;&#x30ED;&#x30B0;&#x306B;&#x307E;&#x3068;&#x3081;&#x307E;&#x3057;&#x305F;&#x306E;&#x3067;&#x3001;&#x6CD5;&#x5F8B;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x3064;&#x3044;&#x3066;&#x8208;&#x5473;&#x306E;&#x3042;&#x308B;&#x65B9;&#x306F;&#x3069;&#x3046;&#x305E;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://takuya-a.net/blog/data-structure-and-retrieval-of-law/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x6CD5;&#x5F8B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x691C;&#x7D22;</div><div class="kg-bookmark-description">&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x306F;&#x3001;&#x6CD5;&#x4EE4;&#x6A19;&#x6E96; XML &#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x306B;&#x6E96;&#x62E0;&#x3057;&#x305F;&#x3001;&#x73FE;&#x884C;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x3068;&#x3044;&#x3046;&#x30B5;&#x30A4;&#x30C8;&#x4E0A;&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;[1]&#x3002;&#x4ECA;&#x56DE;&#x3001;&#x3053;&#x306E;&#x6CD5;&#x4EE4;XML&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3059;&#x308B;Python&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA; ja-law-parser &#x3092;&#x3064;&#x304F;&#x308A;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5168;&#x6587;&#x691C;&#x7D22;&#x3092;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002; &#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x65E5;&#x672C;&#x306E;&#x6CD5;&#x4EE4;&#x3068;&#x305D;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3001;&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#x306B;&#x3064;&#x3044;&#x3066;&#x89E3;&#x8AAC;&#x3057;&#x3001;&#x6700;&#x5F8C;&#x306B;&#x3001;&#x305D;&#x308C;&#x3089;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5168;&#x6587;&#x691C;&#x7D22;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3092;&#x5B9F;&#x88C5;&#x3059;&#x308B;&#x65B9;&#x6CD5;&#x3092;&#x3054;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3059;&#x3002;&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x306E;&#x5B9F;&#x88C5;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x3001;GitHub&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; &#x3053;&#x306E;&#x8A18;&#x4E8B;&#x306F;&#x3001;&#x60C5;&#x5831;&#x691C;&#x7D22;&#x30FB;&#x691C;&#x7D22;&#x6280;&#x8853; Advent Calendar 2023&#x306E;16&#x65E5;&#x76EE;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x3059;&#x3002; * &#x6CD5;&#x5F8B;&#x3068;&#x2026;</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">Stop-the-world</span><span class="kg-bookmark-publisher">Takuya Asano</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://takuya-a.net/blog/content/images/2023/12/Untitled--3--2.png" alt></div></a></figure><h2 id="%E4%BB%95%E4%BA%8B">&#x4ED5;&#x4E8B;</h2><h3 id="us%E5%90%91%E3%81%91%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E3%83%AD%E3%83%BC%E3%83%B3%E3%83%81">US&#x5411;&#x3051;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x306E;&#x30ED;&#x30FC;&#x30F3;&#x30C1;</h3><p>1&#x6708;&#x672B;&#x3067;&#x30E1;&#x30EB;&#x30AB;&#x30EA;&#x3092;&#x9000;&#x8077;&#x3057;&#x3001;2&#x6708;1&#x65E5;&#x304B;&#x3089; LegalOn Technologies &#x306E;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x30C1;&#x30FC;&#x30E0;&#x306B;&#x6240;&#x5C5E;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x200C;&#x200C;&#x6700;&#x521D;&#x306E;2&#x30F6;&#x6708;&#x3067; US &#x5411;&#x3051;&#x306E;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x306E;&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x57FA;&#x76E4;&#x3092;&#x7ACB;&#x3061;&#x4E0A;&#x3052;&#x308B;&#x3068;&#x3044;&#x3046;&#x30DF;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x3044;&#x305F;&#x3060;&#x304D;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x306A;&#x3093;&#x3068;&#x304B;&#x7121;&#x4E8B;&#x306B;&#x30ED;&#x30FC;&#x30F3;&#x30C1;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#xFF08;&#x5927;&#x5909;&#x3060;&#x3063;&#x305F;&#x30FB;&#x30FB;&#x30FB;&#xFF09;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x3010;AI&#x5951;&#x7D04;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x652F;&#x63F4;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x300C;LegalOn Review&#x300D;&#x6B63;&#x5F0F;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x1F1FA;&#x1F1F8;&#x3011;<br>OpenAI&#x306E;&#x6700;&#x65B0;GPT&#x6280;&#x8853;&#x3092;&#x6D3B;&#x7528;&#x3057;&#x305F;&#x5951;&#x7D04;&#x66F8;&#x306E;&#x4FEE;&#x6B63;&#x6587;&#x6848;&#x8868;&#x793A;&#x6A5F;&#x80FD;&#x300C;AI Revise&#x300D;&#x3092;&#x642D;&#x8F09;&#x3057;&#x305F;&#x300C;LegalOn Review&#x300D;&#x3092;&#x30A2;&#x30E1;&#x30EA;&#x30AB;&#x3067;&#x6B63;&#x5F0F;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3057;&#x307E;&#x3057;&#x305F;&#xFF01;<br>&#x30A2;&#x30E1;&#x30EA;&#x30AB;&#x3067;&#x3082;&#x3001;&#x5951;&#x7D04;&#x5BE9;&#x67FB;&#x306E;&#x52B9;&#x7387;&#x5316;&#x3068;&#x54C1;&#x8CEA;&#x5411;&#x4E0A;&#x306E;&#x4E21;&#x7ACB;&#x3092;&#x652F;&#x63F4;&#x3057;&#x307E;&#x3059;&#x3002;<a href="https://t.co/dGmYzeqvUe">https://t.co/dGmYzeqvUe</a></p>&#x2014; &#x682A;&#x5F0F;&#x4F1A;&#x793E;LegalOn Technologies&#xFF08;&#x30EA;&#x30FC;&#x30AC;&#x30EB;&#x30AA;&#x30F3;&#x30C6;&#x30AF;&#x30CE;&#x30ED;&#x30B8;&#x30FC;&#x30BA;&#xFF09;&#x3010;&#x516C;&#x5F0F;&#x3011; (@legalontech_jp) <a href="https://twitter.com/legalontech_jp/status/1650677758828371968?ref_src=twsrc%5Etfw">April 25, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

</figure><h3 id="%E3%83%86%E3%83%83%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%89%E6%A5%AD">&#x30C6;&#x30C3;&#x30AF;&#x30EA;&#x30FC;&#x30C9;&#x696D;</h3><p>&#x691C;&#x7D22;&#x63A8;&#x85A6;&#x30C1;&#x30FC;&#x30E0;&#x3067;&#x306F;&#x30C6;&#x30C3;&#x30AF;&#x30EA;&#x30FC;&#x30C9;&#x3068;&#x3044;&#x3046;&#x30ED;&#x30FC;&#x30EB;&#x3092;&#x62DD;&#x547D;&#x3057;&#x307E;&#x3057;&#x3066;&#x3001;&#x958B;&#x767A;&#x8005;&#x3068;&#x3057;&#x3066;&#x624B;&#x3092;&#x52D5;&#x304B;&#x3059;&#x3053;&#x3068;&#x4EE5;&#x5916;&#x306B;&#x3082;&#x3001;&#x60C5;&#x5831;&#x3092;&#x96C6;&#x3081;&#x3066;&#x4F55;&#x304B;&#x3057;&#x3089;&#x306E;&#x6280;&#x8853;&#x7684;&#x5224;&#x65AD;&#x3092;&#x3057;&#x305F;&#x308A;&#x3001;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x66F8;&#x3044;&#x305F;&#x308A;&#x3068;&#x3044;&#x3063;&#x305F;&#x4ED5;&#x4E8B;&#x306B;&#x6642;&#x9593;&#x3092;&#x591A;&#x304F;&#x8CBB;&#x3084;&#x3059;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x200C;&#x200C;</p><p>&#x307E;&#x305F;&#x3001;&#x63A1;&#x7528;&#x30FB;&#x80B2;&#x6210;&#x3084;&#x6280;&#x8853;&#x30D6;&#x30E9;&#x30F3;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x3092;&#x542B;&#x3080;&#x3001;&#x30C1;&#x30FC;&#x30E0;&#x3092;&#x3055;&#x3089;&#x306B;&#x826F;&#x304F;&#x3059;&#x308B;&#x305F;&#x3081;&#x306E;&#x7D44;&#x7E54;&#x3065;&#x304F;&#x308A;&#x30FB;&#x7D44;&#x7E54;&#x6539;&#x5584;&#x306B;&#x3082;&#x95A2;&#x308F;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p><h2 id="%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</h2><p>2024&#x5E74;&#x306F;&#x3001;&#x7761;&#x7720;&#x306E;&#x6539;&#x5584;&#x3068;&#x3001;&#x691C;&#x7D22;&#x6280;&#x8853;&#x52C9;&#x5F37;&#x4F1A;&#x3092;&#x7D99;&#x7D9A;&#x3055;&#x305B;&#x308B;&#x3053;&#x3068;&#x3092;&#x76EE;&#x6A19;&#x306B;&#x3084;&#x3063;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#xFF08;<a href="http://bit.ly/SpeakerSearchTechTalk">&#x30B9;&#x30D4;&#x30FC;&#x30AB;&#x30FC;&#x306E;&#x5FDC;&#x52DF;</a>&#x305C;&#x3072;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#xFF01;&#xFF09;&#x3002;&#x200C;&#x200C;</p><p>&#x3067;&#x306F;&#x3067;&#x306F;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[法律のデータ構造と検索]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x306F;&#x3001;<a href="https://elaws.e-gov.go.jp/file/XMLSchemaForJapaneseLaw_v3.pdf">&#x6CD5;&#x4EE4;&#x6A19;&#x6E96; XML &#x30B9;&#x30AD;&#x30FC;&#x30DE;</a>&#x306B;&#x6E96;&#x62E0;&#x3057;&#x305F;&#x3001;&#x73FE;&#x884C;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;<a href="https://elaws.e-gov.go.jp/">e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a>&#x3068;&#x3044;&#x3046;&#x30B5;&#x30A4;&#x30C8;&#x4E0A;&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;</p>]]></description><link>https://takuya-a.net/blog/data-structure-and-retrieval-of-law/</link><guid isPermaLink="false">657d69e9495ce40001713843</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Mon, 18 Dec 2023 18:53:27 GMT</pubDate><media:content url="https://takuya-a.net/blog/content/images/2023/12/Untitled--3--2.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://takuya-a.net/blog/content/images/2023/12/Untitled--3--2.png" alt="&#x6CD5;&#x5F8B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x691C;&#x7D22;"><p>&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x306F;&#x3001;<a href="https://elaws.e-gov.go.jp/file/XMLSchemaForJapaneseLaw_v3.pdf">&#x6CD5;&#x4EE4;&#x6A19;&#x6E96; XML &#x30B9;&#x30AD;&#x30FC;&#x30DE;</a>&#x306B;&#x6E96;&#x62E0;&#x3057;&#x305F;&#x3001;&#x73FE;&#x884C;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;<a href="https://elaws.e-gov.go.jp/">e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a>&#x3068;&#x3044;&#x3046;&#x30B5;&#x30A4;&#x30C8;&#x4E0A;&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x3002;&#x4ECA;&#x56DE;&#x3001;&#x3053;&#x306E;&#x6CD5;&#x4EE4;XML&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3059;&#x308B;Python&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA; <a href="https://github.com/takuyaa/ja-law-parser">ja-law-parser</a> &#x3092;&#x3064;&#x304F;&#x308A;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5168;&#x6587;&#x691C;&#x7D22;&#x3092;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x65E5;&#x672C;&#x306E;&#x6CD5;&#x4EE4;&#x3068;&#x305D;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3001;&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#x306B;&#x3064;&#x3044;&#x3066;&#x89E3;&#x8AAC;&#x3057;&#x3001;&#x6700;&#x5F8C;&#x306B;&#x3001;&#x305D;&#x308C;&#x3089;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5168;&#x6587;&#x691C;&#x7D22;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3092;&#x5B9F;&#x88C5;&#x3059;&#x308B;&#x65B9;&#x6CD5;&#x3092;&#x3054;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3059;&#x3002;&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x306E;&#x5B9F;&#x88C5;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x3001;<a href="https://github.com/takuyaa/japanese-law-search">GitHub&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;</a>&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x306F;&#x3001;<a href="https://adventar.org/calendars/8678">&#x60C5;&#x5831;&#x691C;&#x7D22;&#x30FB;&#x691C;&#x7D22;&#x6280;&#x8853; Advent Calendar 2023</a>&#x306E;16&#x65E5;&#x76EE;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x3059;&#x3002;</p>
<ul>
<li><a href="#%E6%B3%95%E5%BE%8B%E3%81%A8%E6%B3%95%E4%BB%A4">&#x6CD5;&#x5F8B;&#x3068;&#x6CD5;&#x4EE4;</a>
<ul>
<li><a href="#%E6%B3%95%E5%BE%8B%E3%81%A8%E3%81%AF">&#x6CD5;&#x5F8B;&#x3068;&#x306F;</a></li>
<li><a href="#%E6%B3%95%E5%BE%8B%E3%81%AE%E5%88%B6%E5%AE%9A%E3%81%A8%E5%85%AC%E5%B8%83">&#x6CD5;&#x5F8B;&#x306E;&#x5236;&#x5B9A;&#x3068;&#x516C;&#x5E03;</a></li>
<li><a href="#%E6%B3%95%E5%BE%8B%E3%81%A8%E6%B3%95%E4%BB%A4%E3%81%AE%E9%81%95%E3%81%84">&#x6CD5;&#x5F8B;&#x3068;&#x6CD5;&#x4EE4;&#x306E;&#x9055;&#x3044;</a></li>
<li><a href="#%E6%B3%95%E5%BE%8B%E3%81%AE%E6%94%B9%E6%AD%A3">&#x6CD5;&#x5F8B;&#x306E;&#x6539;&#x6B63;</a></li>
</ul>
</li>
<li><a href="#%E6%B3%95%E4%BB%A4%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0">&#x6CD5;&#x4EE4;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;</a>
<ul>
<li><a href="#e-gov%E3%81%AE%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF">e-Gov&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;</a></li>
<li><a href="#%E6%B3%95%E4%BB%A4%E6%A8%99%E6%BA%96xml%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E">&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;</a></li>
<li><a href="#%E6%B3%95%E4%BB%A4%E7%95%AA%E5%8F%B7%E3%81%A8%E6%B3%95%E4%BB%A4id">&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3068;&#x6CD5;&#x4EE4;ID</a></li>
<li><a href="#%E9%A1%8C%E5%90%8D">&#x984C;&#x540D;</a></li>
<li><a href="#%E6%9C%AC%E5%89%87%E3%81%A8%E9%99%84%E5%89%87">&#x672C;&#x5247;&#x3068;&#x9644;&#x5247;</a></li>
<li><a href="#%E6%9D%A1%E9%A0%85%E5%8F%B7">&#x6761;&#x30FB;&#x9805;&#x30FB;&#x53F7;</a></li>
<li><a href="#%E7%B7%A8%E7%AB%A0%E7%AF%80%E6%AC%BE%E7%9B%AE">&#x7DE8;&#x30FB;&#x7AE0;&#x30FB;&#x7BC0;&#x30FB;&#x6B3E;&#x30FB;&#x76EE;</a></li>
</ul>
</li>
<li><a href="#%E6%B3%95%E4%BB%A4xml%E3%83%91%E3%83%BC%E3%82%B5-ja-law-parser">&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#xFF1A; ja-law-parser</a>
<ul>
<li><a href="#ja-law-parser-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">ja-law-parser &#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</a></li>
<li><a href="#ja-law-parser-%E3%81%AE%E4%BD%BF%E3%81%84%E3%81%8B%E3%81%9F">ja-law-parser &#x306E;&#x4F7F;&#x3044;&#x304B;&#x305F;</a></li>
</ul>
</li>
<li><a href="#%E6%B3%95%E4%BB%A4%E3%81%AE%E6%A4%9C%E7%B4%A2">&#x6CD5;&#x4EE4;&#x306E;&#x691C;&#x7D22;</a>
<ul>
<li><a href="#elasticsearch%E3%81%AE%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0">Elasticsearch&#x306E;&#x30DE;&#x30C3;&#x30D4;&#x30F3;&#x30B0;</a></li>
<li><a href="#%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%82%AF%E3%82%B7%E3%83%B3%E3%82%B0">&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30AF;&#x30B7;&#x30F3;&#x30B0;</a></li>
<li><a href="#%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%A4%9C%E7%B4%A2">&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x691C;&#x7D22;</a></li>
<li><a href="#%E6%A4%9C%E7%B4%A2ui">&#x691C;&#x7D22;UI</a></li>
</ul>
</li>
<li><a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</a></li>
</ul>
<h2 id="%E6%B3%95%E5%BE%8B%E3%81%A8%E6%B3%95%E4%BB%A4">&#x6CD5;&#x5F8B;&#x3068;&#x6CD5;&#x4EE4;</h2>
<h3 id="%E6%B3%95%E5%BE%8B%E3%81%A8%E3%81%AF">&#x6CD5;&#x5F8B;&#x3068;&#x306F;</h3>
<p><strong>&#x6CD5;&#x5F8B;</strong>&#x3068;&#x306F;&#x3001;&#x4E3B;&#x306B;&#x56FD;&#x5BB6;&#x306B;&#x3088;&#x3063;&#x3066;&#x5B9A;&#x3081;&#x3089;&#x308C;&#x308B;&#x3001;&#x5F37;&#x5236;&#x529B;&#x3092;&#x3082;&#x3063;&#x305F;&#x898F;&#x7BC4;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>&#x3002;&#x65E5;&#x672C;&#x306E;&#x6CD5;&#x5F8B;&#x306F;&#x3001;&#x56FD;&#x4F1A;&#x306E;&#x8B70;&#x6C7A;&#x3092;&#x7D4C;&#x3066;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p>&#x793E;&#x4F1A;&#x751F;&#x6D3B;&#x3092;&#x55B6;&#x3080;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x6CD5;&#x3084;&#x30EB;&#x30FC;&#x30EB;&#x3092;&#x9075;&#x5B88;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x5927;&#x4E8B;&#x306A;&#x306E;&#x306F;&#x8A00;&#x3046;&#x307E;&#x3067;&#x3082;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;&#x77E5;&#x3089;&#x305A;&#x77E5;&#x3089;&#x305A;&#x306E;&#x3046;&#x3061;&#x306B;&#x6CD5;&#x5F8B;&#x306B;&#x9055;&#x53CD;&#x3057;&#x305F;&#x3053;&#x3068;&#x3067;&#x5236;&#x88C1;&#x304C;&#x8AB2;&#x3055;&#x308C;&#x305F;&#x308A;&#x793E;&#x4F1A;&#x7684;&#x306A;&#x4FE1;&#x7528;&#x3092;&#x5931;&#x3046;&#x3053;&#x3068;&#x3082;&#x3042;&#x308B;&#x305F;&#x3081;&#x3001;&#x6CD5;&#x5F8B;&#x3092;&#x6B63;&#x3057;&#x304F;&#x77E5;&#x308B;&#x3053;&#x3068;&#x306F;&#x91CD;&#x8981;&#x3067;&#x3059;&#x3002;</p>
<h3 id="%E6%B3%95%E5%BE%8B%E3%81%AE%E5%88%B6%E5%AE%9A%E3%81%A8%E5%85%AC%E5%B8%83">&#x6CD5;&#x5F8B;&#x306E;&#x5236;&#x5B9A;&#x3068;&#x516C;&#x5E03;</h3>
<p>&#x65E5;&#x672C;&#x306B;&#x304A;&#x3044;&#x3066;&#x6CD5;&#x5F8B;&#x6848;&#x306F;&#x3001;&#x56FD;&#x4F1A;&#x8B70;&#x54E1;&#x3082;&#x3057;&#x304F;&#x306F;&#x5185;&#x95A3;&#x304B;&#x3089;&#x63D0;&#x51FA;&#x3055;&#x308C;&#x3001;&#x5B9A;&#x3081;&#x3089;&#x308C;&#x305F;&#x30EF;&#x30FC;&#x30AF;&#x30D5;&#x30ED;&#x30FC;&#x306B;&#x5247;&#x308A;&#x5BE9;&#x67FB;&#x304C;&#x884C;&#x308F;&#x308C;&#x307E;&#x3059;&#x3002;&#x305D;&#x308C;&#x304C;&#x53EF;&#x6C7A;&#x3055;&#x308C;&#x308B;&#x3068;&#x3001;&#x6CD5;&#x5F8B;&#x3068;&#x3057;&#x3066;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x3001;&#x5B98;&#x5831;&#xFF08;&#x7D19;&#x5A92;&#x4F53;&#xFF09;&#x3067;&#x516C;&#x8868;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3092;&#x6CD5;&#x5F8B;&#x306E;<strong>&#x516C;&#x5E03;</strong>&#x3068;&#x3044;&#x3044;&#x307E;&#x3059;&#x3002;&#x516C;&#x5E03;&#x3055;&#x308C;&#x305F;&#x6CD5;&#x5F8B;&#x306F;&#x3001;&#x5B9A;&#x3081;&#x3089;&#x308C;&#x305F;&#x65BD;&#x884C;&#x65E5;&#x304B;&#x3089;&#x52B9;&#x529B;&#x3092;&#x767A;&#x63EE;&#x3057;&#x307E;&#x3059;&#xFF08;&#x516C;&#x5E03;&#x65E5;&#x3068;&#x65BD;&#x884C;&#x65E5;&#x304C;&#x540C;&#x65E5;&#x306B;&#x306A;&#x308B;&#x3053;&#x3068;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#xFF09;&#x3002;</p>
<p>&#x305F;&#x3068;&#x3048;&#x3070;&#x5185;&#x95A3;&#x304C;&#x63D0;&#x51FA;&#x3057;&#x305F;&#x6CD5;&#x5F8B;&#x6848;&#xFF08;&#x95A3;&#x6CD5;&#xFF09;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x3067;&#x5BE9;&#x8B70;&#x30FB;&#x6210;&#x7ACB;&#x30FB;&#x516C;&#x5E03;&#x3055;&#x308C;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>&#x3002;</p>
<ol>
<li>&#x6CD5;&#x5F8B;&#x6848;&#x306E;&#x539F;&#x6848;&#x4F5C;&#x6210;</li>
<li>&#x5185;&#x95A3;&#x6CD5;&#x5236;&#x5C40;&#x306B;&#x304A;&#x3051;&#x308B;&#x5BE9;&#x67FB;</li>
<li>&#x56FD;&#x4F1A;&#x63D0;&#x51FA;&#x306E;&#x305F;&#x3081;&#x306E;&#x95A3;&#x8B70;&#x6C7A;&#x5B9A;</li>
<li>&#x56FD;&#x4F1A;&#x306B;&#x7F6E;&#x3051;&#x308B;&#x5BE9;&#x8B70;</li>
<li>&#x6CD5;&#x5F8B;&#x306E;&#x6210;&#x7ACB;</li>
<li>&#x6CD5;&#x5F8B;&#x306E;&#x516C;&#x5E03;</li>
</ol>
<p>&#x516C;&#x5E03;&#x3055;&#x308C;&#x305F;&#x6CD5;&#x5F8B;&#x306F;&#x3001;&#x5B98;&#x5831;&#xFF08;&#x7D19;&#x5A92;&#x4F53;&#xFF09;&#x3060;&#x3051;&#x3067;&#x306A;&#x304F;&#x3001;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#xFF08;&#x65E7;<a href="https://ja.wikipedia.org/wiki/%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF%E6%8F%90%E4%BE%9B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0">&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x63D0;&#x4F9B;&#x30B7;&#x30B9;&#x30C6;&#x30E0;</a>&#xFF09;&#x3092;&#x306F;&#x3058;&#x3081;&#x3068;&#x3057;&#x305F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x30AA;&#x30F3;&#x30E9;&#x30A4;&#x30F3;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3084;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x3067;&#x3082;&#x516C;&#x958B;&#x3055;&#x308C;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>&#x3002;</p>
<ul>
<li><a href="https://elaws.e-gov.go.jp/">e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#xFF08;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#xFF09;</a></li>
<li><a href="https://hourei.ndl.go.jp/">&#x65E5;&#x672C;&#x6CD5;&#x4EE4;&#x7D22;&#x5F15;&#xFF08;&#x56FD;&#x7ACB;&#x56FD;&#x4F1A;&#x56F3;&#x66F8;&#x9928;&#xFF09;</a></li>
<li><a href="https://www.shugiin.go.jp/Internet/itdb_housei.nsf/html/housei/menu.htm">&#x5236;&#x5B9A;&#x6CD5;&#x5F8B;&#xFF08;&#x8846;&#x8B70;&#x9662;&#xFF09;</a></li>
<li><a href="https://kanpou.npb.go.jp/index.html">&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30CD;&#x30C3;&#x30C8;&#x7248;&#x5B98;&#x5831;&#xFF08;&#x56FD;&#x7ACB;&#x5370;&#x5237;&#x5C40;&#xFF09;</a></li>
<li><a href="https://gyosei.jp/business/law/super_web/">&#x73FE;&#x884C;&#x6CD5;&#x4EE4;&#x96FB;&#x5B50;&#x7248; Super&#x6CD5;&#x4EE4;Web&#xFF08;&#x304E;&#x3087;&#x3046;&#x305B;&#x3044;&#xFF09;</a></li>
<li><a href="https://www.daiichihoki.co.jp/d1-law/">D1-Law.com &#x73FE;&#x884C;&#x6CD5;&#x898F;&#xFF08;&#x7B2C;&#x4E00;&#x6CD5;&#x898F;&#x51FA;&#x7248;&#xFF09;</a></li>
<li><a href="https://www.lexisnexis.jp/">LexisNexis JP&#xFF08;&#x30EC;&#x30AF;&#x30B7;&#x30B9;&#x30CD;&#x30AF;&#x30B7;&#x30B9;&#x30FB;&#x30B8;&#x30E3;&#x30D1;&#x30F3;&#xFF09;</a></li>
<li><a href="https://www.westlawjapan.com/">Westlaw Japan&#xFF08;&#x30A6;&#x30A8;&#x30B9;&#x30C8;&#x30ED;&#x30FC;&#x30FB;&#x30B8;&#x30E3;&#x30D1;&#x30F3;&#xFF09;</a></li>
</ul>
<h3 id="%E6%B3%95%E5%BE%8B%E3%81%A8%E6%B3%95%E4%BB%A4%E3%81%AE%E9%81%95%E3%81%84">&#x6CD5;&#x5F8B;&#x3068;&#x6CD5;&#x4EE4;&#x306E;&#x9055;&#x3044;</h3>
<p><strong>&#x6CD5;&#x4EE4;</strong>&#x3068;&#x3044;&#x3046;&#x306E;&#x306F;&#x3001;&#x6CD5;&#x5F8B;&#x306B;&#x52A0;&#x3048;&#x3066;&#x3001;&#x61B2;&#x6CD5;&#x3084;&#x653F;&#x4EE4;&#x306A;&#x3069;&#x3092;&#x542B;&#x3093;&#x3060;&#x6CD5;&#x898F;&#x7BC4;&#x306E;&#x3053;&#x3068;&#x3092;&#x6307;&#x3057;&#x307E;&#x3059;&#x3002;&#x4E00;&#x822C;&#x306B;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3082;&#x306E;&#x3092;&#x542B;&#x3080;&#x3088;&#x3046;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup><sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup>&#x3002;</p>
<ul>
<li>&#x61B2;&#x6CD5;</li>
<li>&#x6761;&#x7D04;</li>
<li>&#x6CD5;&#x5F8B;</li>
<li>&#x653F;&#x4EE4;</li>
<li>&#x547D;&#x4EE4;
<ul>
<li>&#x653F;&#x4EE4;</li>
<li>&#x5E9C;&#x4EE4;&#x30FB;&#x7701;&#x4EE4;</li>
</ul>
</li>
</ul>
<p>&#x6CD5;&#x4EE4;&#x306F;&#x3001;&#x3088;&#x308A;&#x4E0A;&#x4F4D;&#x306E;&#x6CD5;&#x4EE4;&#x304C;&#x4E0B;&#x4F4D;&#x306E;&#x6CD5;&#x4EE4;&#x3088;&#x308A;&#x512A;&#x5148;&#x3055;&#x308C;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x968E;&#x5C64;&#x69CB;&#x9020;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3044;&#x3044;&#x304B;&#x3048;&#x308B;&#x3068;&#x3001;&#x57FA;&#x672C;&#x7684;&#x306B;&#x4E0A;&#x4F4D;&#x306E;&#x6CD5;&#x4EE4;&#x304C;&#x512A;&#x5148;&#x3057;&#x3001;&#x305D;&#x308C;&#x306B;&#x9055;&#x53CD;&#x3059;&#x308B;&#x4E0B;&#x4F4D;&#x306E;&#x6CD5;&#x4EE4;&#x306F;&#x52B9;&#x529B;&#x3092;&#x3082;&#x3061;&#x307E;&#x305B;&#x3093;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x61B2;&#x6CD5;&#x306F;&#x6700;&#x3082;&#x5F37;&#x3044;&#x898F;&#x7BC4;&#x3067;&#x3042;&#x308A;&#x3001;&#x61B2;&#x6CD5;&#x306B;&#x9055;&#x53CD;&#x3059;&#x308B;&#x3088;&#x3046;&#x306A;&#x6CD5;&#x4EE4;&#x306F;&#x7121;&#x52B9;&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn7" id="fnref7">[7]</a></sup>&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2023/12/Untitled--2-.png" alt="&#x6CD5;&#x5F8B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x691C;&#x7D22;" loading="lazy"></p>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x6271;&#x3044;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;&#x65E5;&#x672C;&#x306B;&#x304A;&#x3051;&#x308B;&#x898F;&#x7BC4;&#x3068;&#x3057;&#x3066;&#x306F;&#x4ED6;&#x306B;&#x3082;&#x3001;&#x884C;&#x653F;&#x6A5F;&#x95A2;&#x7B49;&#x304C;&#x767A;&#x3059;&#x308B;&#x8A13;&#x4EE4;&#x30FB;&#x901A;&#x9054;&#x30FB;&#x901A;&#x77E5;&#x30FB;&#x544A;&#x793A;&#x3084;&#x3001;&#x5730;&#x65B9;&#x516C;&#x5171;&#x56E3;&#x4F53;&#x304C;&#x5236;&#x5B9A;&#x3059;&#x308B;&#x6761;&#x4F8B;&#x30FB;&#x898F;&#x5247;&#x306A;&#x3069;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E6%B3%95%E5%BE%8B%E3%81%AE%E6%94%B9%E6%AD%A3">&#x6CD5;&#x5F8B;&#x306E;&#x6539;&#x6B63;</h3>
<p>&#x65E5;&#x672C;&#x306B;&#x304A;&#x3051;&#x308B;&#x6CD5;&#x5F8B;&#x306E;&#x6539;&#x6B63;&#x306B;&#x306F;&#x3001;&#x6CD5;&#x4EE4;&#x306E;&#x5168;&#x6587;&#x3092;&#x6539;&#x3081;&#x308B;<strong>&#x5168;&#x90E8;&#x6539;&#x6B63;</strong>&#x3068;&#x3001;&#x6761;&#x6587;&#x306E;&#x4E00;&#x90E8;&#x3092;&#x6539;&#x3081;&#x308B;<strong>&#x4E00;&#x90E8;&#x6539;&#x6B63;</strong>&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x5168;&#x90E8;&#x6539;&#x6B63;&#x306E;&#x5834;&#x5408;&#x306F;&#x3001;&#x65B0;&#x305F;&#x306A;&#x6CD5;&#x4EE4;&#x3068;&#x3057;&#x3066;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x307E;&#x3059;&#xFF08;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3082;&#x5909;&#x308F;&#x308A;&#x307E;&#x3059;&#xFF09;&#x3002;&#x3082;&#x3068;&#x306E;&#x6CD5;&#x4EE4;&#x3068;&#x984C;&#x540D;&#x306F;&#x540C;&#x3058;&#x307E;&#x307E;&#x306B;&#x306A;&#x308B;&#x3053;&#x3068;&#x304C;&#x591A;&#x3044;<sup class="footnote-ref"><a href="#fn8" id="fnref8">[8]</a></sup>&#x305F;&#x3081;&#x3001;&#x533A;&#x5225;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x3001;&#x984C;&#x540D;&#x306B;&#x3064;&#x3065;&#x304F;&#x5236;&#x5B9A;&#x6587;&#x306B;&#x304A;&#x3044;&#x3066;&#x300C;&#x301C;&#x6CD5;&#x306E;&#x5168;&#x90E8;&#x3092;&#x6539;&#x6B63;&#x3059;&#x308B;&#x300D;&#x3068;&#x3044;&#x3046;&#x8A18;&#x8FF0;&#x304C;&#x306A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x5168;&#x90E8;&#x6539;&#x6B63;&#x3055;&#x308C;&#x305F;&#x6CD5;&#x4EE4;&#x306E;&#x4E00;&#x3064;&#x3068;&#x3057;&#x3066;&#x3001;<a href="https://elaws.e-gov.go.jp/document?lawid=345AC0000000048_20230614_505AC0000000053">&#x8457;&#x4F5C;&#x6A29;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x56DB;&#x5341;&#x4E94;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x56DB;&#x5341;&#x516B;&#x53F7;&#xFF09;</a>&#x304C;&#x3042;&#x308A;&#x3001;&#x5236;&#x5B9A;&#x6587;&#x306B;&#x306F;&#x300C;&#x8457;&#x4F5C;&#x6A29;&#x6CD5;&#xFF08;&#x660E;&#x6CBB;&#x4E09;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x4E09;&#x5341;&#x4E5D;&#x53F7;&#xFF09;&#x306E;&#x5168;&#x90E8;&#x3092;&#x6539;&#x6B63;&#x3059;&#x308B;&#x3002;&#x300D;&#x3068;&#x66F8;&#x304B;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x4E00;&#x90E8;&#x6539;&#x6B63;&#x306E;&#x969B;&#x3001;&#x65E5;&#x672C;&#x3067;&#x306F;<strong>&#x6EB6;&#x3051;&#x8FBC;&#x307F;&#x65B9;&#x5F0F;</strong>&#x3068;&#x547C;&#x3070;&#x308C;&#x308B;&#x65B9;&#x6CD5;&#x3092;&#x3068;&#x3063;&#x3066;&#x304A;&#x308A;&#x3001;&#x6761;&#x6587;&#x306E;&#x5909;&#x66F4;&#x5185;&#x5BB9;&#x3092;&#x65E2;&#x5B58;&#x306E;&#x6761;&#x6587;&#x306B;&#x9069;&#x7528;&#x3057;&#x3001;&#x4E0A;&#x66F8;&#x304D;&#x3057;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#xFF08;<strong>&#x6EB6;&#x304B;&#x3057;&#x8FBC;&#x307F;</strong>&#x3068;&#x3044;&#x3044;&#x307E;&#x3059;&#xFF09;&#x3002;&#x3064;&#x307E;&#x308A;&#x3001;&#x6539;&#x6B63;&#x306E;&#x5185;&#x5BB9;&#x3092;&#x8FFD;&#x8DE1;&#x3057;&#x306A;&#x304F;&#x3066;&#x3082;&#x3001;&#x305D;&#x306E;&#x6642;&#x70B9;&#x3067;&#x6709;&#x52B9;&#x306A;&#x6CD5;&#x4EE4;&#x306E;&#x5185;&#x5BB9;&#x304C;&#x4E00;&#x76EE;&#x3067;&#x308F;&#x304B;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3057;&#x304B;&#x3057;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x306F;&#x6539;&#x6B63;&#x524D;&#x306E;&#x6761;&#x6587;&#x306B;&#x6EB6;&#x304B;&#x3057;&#x8FBC;&#x307E;&#x308C;&#x305F;&#x72B6;&#x614B;&#x3067;&#x516C;&#x958B;&#x3055;&#x308C;&#x308B;&#x305F;&#x3081;&#x3001;&#x5909;&#x66F4;&#x5185;&#x5BB9;&#x304C;&#x308F;&#x304B;&#x3089;&#x306A;&#x304F;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x5909;&#x66F4;&#x5185;&#x5BB9;&#x306F;&#x3001;&#x5B98;&#x5831;&#x3084;&#x6CD5;&#x4EE4;&#x5168;&#x66F8;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x4E00;&#x90E8;&#x6539;&#x6B63;&#x6CD5;&#x3068;&#x3057;&#x3066;&#x516C;&#x5E03;&#x3055;&#x308C;&#x308B;&#x306E;&#x3067;&#x3001;&#x5909;&#x66F4;&#x70B9;&#x3092;&#x77E5;&#x308A;&#x305F;&#x3044;&#x5834;&#x5408;&#x306F;&#x3001;&#x305D;&#x3061;&#x3089;&#x3082;&#x3042;&#x308F;&#x305B;&#x3066;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn5" id="fnref5:1">[5:1]</a></sup>&#x3002;</p>
<p>&#x307E;&#x305F;&#x3001;&#x6CD5;&#x4EE4;&#x3092;&#x6539;&#x6B63;&#x3059;&#x308B;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x3001;&#x5168;&#x90E8;&#x6539;&#x6B63;&#x3068;&#x306F;&#x7570;&#x306A;&#x308A;&#x3001;&#x65E2;&#x5B58;&#x306E;&#x6CD5;&#x5F8B;&#x3092;&#x5EC3;&#x6B62;&#x3057;&#x3001;&#x65B0;&#x305F;&#x306B;&#x305D;&#x308C;&#x306B;&#x4EE3;&#x308F;&#x308B;&#x6CD5;&#x4EE4;&#x3092;&#x5236;&#x5B9A;&#x3059;&#x308B;<strong>&#x5EC3;&#x6B62;&#x5236;&#x5B9A;</strong>&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn9" id="fnref9">[9]</a></sup>&#x3002;&#x5168;&#x90E8;&#x6539;&#x6B63;&#x3068;&#x4F3C;&#x3066;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x3053;&#x3061;&#x3089;&#x306B;&#x306F;&#x5236;&#x5B9A;&#x6587;&#x306B;&#x300C;&#x301C;&#x6CD5;&#x306E;&#x5168;&#x90E8;&#x3092;&#x6539;&#x6B63;&#x3059;&#x308B;&#x300D;&#x3068;&#x3044;&#x3046;&#x8A18;&#x8FF0;&#x306F;&#x3055;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002;&#x305D;&#x306E;&#x4EE3;&#x308F;&#x308A;&#x3001;&#x9644;&#x5247;&#x306B;&#x3066;&#x3001;&#x300C;&#x301C;&#x6CD5;&#x306F;&#x5EC3;&#x6B62;&#x3059;&#x308B;&#x300D;&#x3068;&#x3044;&#x3046;&#x8A18;&#x8FF0;&#x304C;&#x306A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;<a href="https://elaws.e-gov.go.jp/document?lawid=325AC0000000147_20220617_504AC0000000068">&#x56FD;&#x7C4D;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x4E8C;&#x5341;&#x4E94;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x767E;&#x56DB;&#x5341;&#x4E03;&#x53F7;&#xFF09;</a>&#x306F;&#x984C;&#x540D;&#x306F;&#x540C;&#x3058;&#x3067;&#x3059;&#x304C;&#x3001;&#x56FD;&#x7C4D;&#x6CD5;&#xFF08;&#x660E;&#x6CBB;&#x4E09;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x516D;&#x5341;&#x516D;&#x53F7;&#xFF09;&#x304C;&#x5EC3;&#x6B62;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x305F;&#x3082;&#x306E;&#x3067;&#x3001;&#x9644;&#x5247;2&#x9805;&#x306B;&#x300C;&#x56FD;&#x7C4D;&#x6CD5;&#xFF08;&#x660E;&#x6CBB;&#x4E09;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x516D;&#x5341;&#x516D;&#x53F7;&#xFF09;&#x306F;&#x3001;&#x5EC3;&#x6B62;&#x3059;&#x308B;&#x3002;&#x300D;&#x3068;&#x66F8;&#x304B;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h2 id="%E6%B3%95%E4%BB%A4%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0">&#x6CD5;&#x4EE4;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;</h2>
<h3 id="e-gov%E3%81%AE%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF">e-Gov&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;</h3>
<p><a href="https://elaws.e-gov.go.jp/">e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a>&#x304C;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x308B;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#xFF08;&#x4EE5;&#x4E0B;&#x3001;&#x5358;&#x306B;<strong>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;</strong>&#x3068;&#x3057;&#x307E;&#x3059;&#xFF09;&#x306F;&#x3001;2023&#x5E74;12&#x6708;16&#x65E5;&#x73FE;&#x5728;&#x3001;&#x4EE5;&#x4E0B;&#x306E;9,111&#x4EF6;&#x3067;&#x3059;<sup class="footnote-ref"><a href="#fn10" id="fnref10">[10]</a></sup>&#x3002;</p>
<table>
<thead>
<tr>
<th>&#x6CD5;&#x4EE4;&#x7A2E;&#x5225;</th>
<th>&#x767B;&#x9332;&#x6570;</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#x61B2;&#x6CD5;</td>
<td>1</td>
</tr>
<tr>
<td>&#x6CD5;&#x5F8B;</td>
<td>2,122</td>
</tr>
<tr>
<td>&#x653F;&#x4EE4;</td>
<td>2,302</td>
</tr>
<tr>
<td>&#x52C5;&#x4EE4;</td>
<td>71</td>
</tr>
<tr>
<td>&#x5E9C;&#x7701;&#x4EE4;</td>
<td>4,181</td>
</tr>
<tr>
<td>&#x898F;&#x5247;</td>
<td>434</td>
</tr>
</tbody>
</table>
<p>&#x3053;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;URL&#x304B;&#x3089;&#x3001;&#x3059;&#x3079;&#x3066;&#x306E;XML&#x304C;&#x542B;&#x307E;&#x308C;&#x305F;zip&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#xFF08; <code>all_xml.zip</code> &#xFF09;&#x3092;&#x30C0;&#x30A6;&#x30F3;&#x30ED;&#x30FC;&#x30C9;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p><a href="https://elaws.e-gov.go.jp/download/">XML&#x4E00;&#x62EC;&#x30C0;&#x30A6;&#x30F3;&#x30ED;&#x30FC;&#x30C9; | e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a></p>
<p>&#x3053;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x3001;<a href="https://xtech.nikkei.com/it/atcl/news/17/062301755/">&#x3055;&#x307E;&#x3056;&#x307E;&#x306A;&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x958B;&#x767A;&#x3092;&#x60F3;&#x5B9A;</a>&#x3055;&#x308C;&#x3066;&#x304A;&#x308A;&#x3001;&#x4E8C;&#x6B21;&#x5229;&#x7528;&#x304C;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;</p>
<blockquote>
<p>Q7&#xFF1A;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x3067;&#x63D0;&#x4F9B;&#x3057;&#x3066;&#x3044;&#x308B;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x4E8C;&#x6B21;&#x5229;&#x7528;&#x3092;&#x3057;&#x305F;&#x3044;&#x306E;&#x3067;&#x3059;&#x304C;&#xFF1F;<br>
A&#xFF1A;&#x63D0;&#x4F9B;&#x3057;&#x3066;&#x3044;&#x308B;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x7279;&#x306B;&#x5229;&#x7528;&#x5236;&#x9650;&#x3092;&#x8A2D;&#x3051;&#x3066;&#x304A;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;<br>
&#x305F;&#x3060;&#x3057;&#x3001;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x53CA;&#x3073;&#x5404;&#x5E9C;&#x7701;&#x306F;&#x3001;&#x672C;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5229;&#x7528;&#x306B;&#x4F34;&#x3063;&#x3066;&#x767A;&#x751F;&#x3057;&#x305F;&#x4E0D;&#x5229;&#x76CA;&#x3084;&#x554F;&#x984C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x4F55;&#x3089;&#x8CAC;&#x4EFB;&#x3092;&#x8CA0;&#x3044;&#x307E;&#x305B;&#x3093;&#x306E;&#x3067;&#x3001;&#x3054;&#x627F;&#x77E5;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002;</p>
<p><a href="https://elaws.e-gov.go.jp/help/">&#x30D8;&#x30EB;&#x30D7; - e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a></p>
</blockquote>
<h3 id="%E6%B3%95%E4%BB%A4%E6%A8%99%E6%BA%96xml%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E">&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;</h3>
<p>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306E;&#x5185;&#x5BB9;&#x306F;&#x3001;<strong>&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;</strong>&#xFF08;<a href="https://elaws.e-gov.go.jp/file/XMLSchemaForJapaneseLaw_v3.pdf">PDF</a>, <a href="https://elaws.e-gov.go.jp/file/XMLSchemaForJapaneseLaw_v3.xsd">xsd</a>&#xFF09;&#x306B;&#x6E96;&#x62E0;&#x3057;&#x305F;&#x5F62;&#x5F0F;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn11" id="fnref11">[11]</a></sup>&#x3002;</p>
<p>&#x305F;&#x3068;&#x3048;&#x3070;&#x6CD5;&#x4EE4;XML&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x3082;&#x3063;&#x3068;&#x3082;&#x300C;&#x5916;&#x5074;&#x300D;&#x306E;&#x8981;&#x7D20;&#x3067;&#x3042;&#x308B;&#x3001;&#x6CD5;&#x4EE4;&#xFF08; <code>Law</code> &#xFF09;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5B9A;&#x7FA9;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-xml">  &lt;xs:element name=&quot;Law&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element ref=&quot;LawNum&quot;/&gt;
        &lt;xs:element ref=&quot;LawBody&quot;/&gt;
      &lt;/xs:sequence&gt;
      &lt;xs:attribute name=&quot;Era&quot; use=&quot;required&quot;&gt;...&lt;/xs:attribute&gt;
      &lt;xs:attribute name=&quot;Year&quot; use=&quot;required&quot; type=&quot;xs:positiveInteger&quot;/&gt;
      &lt;xs:attribute name=&quot;Num&quot; use=&quot;required&quot; type=&quot;xs:positiveInteger&quot;/&gt;
      &lt;xs:attribute name=&quot;PromulgateMonth&quot; type=&quot;xs:positiveInteger&quot;/&gt;
      &lt;xs:attribute name=&quot;PromulgateDay&quot; type=&quot;xs:positiveInteger&quot;/&gt;
      &lt;xs:attribute name=&quot;LawType&quot; use=&quot;required&quot;&gt;...&lt;/xs:attribute&gt;
      &lt;xs:attribute name=&quot;Lang&quot; use=&quot;required&quot;&gt;...&lt;/xs:attribute&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
</code></pre>
<p>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x3001;&#x5927;&#x304D;&#x304F;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x69CB;&#x9020;&#x3092;&#x3082;&#x3061;&#x307E;&#x3059;&#xFF08;&#x30AB;&#x30C3;&#x30B3;&#x66F8;&#x304D;&#x306E;&#x8981;&#x7D20;&#x306F;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30CA;&#x30EB;&#xFF09;&#x3002;</p>
<ul>
<li>&#x6CD5;&#x4EE4; <code>Law</code>
<ul>
<li>&#x6CD5;&#x4EE4;&#x756A;&#x53F7; <code>LawNum</code></li>
<li>&#x6CD5;&#x4EE4;&#x672C;&#x4F53; <code>LawBody</code>
<ul>
<li>&#x984C;&#x540D; <code>LawTitle</code></li>
<li>&#xFF08;&#x5236;&#x5B9A;&#x6587; <code>EnactStatement</code> &#xFF09;</li>
<li>&#xFF08;&#x76EE;&#x6B21; <code>TOC</code> &#xFF09;</li>
</ul>
</li>
<li>&#xFF08;&#x524D;&#x6587; <code>Preamble</code> &#xFF09;</li>
<li>&#x672C;&#x5247; <code>MainProvision</code></li>
<li>&#xFF08;&#x9644;&#x5247; <code>SupplProvision</code> &#xFF09;</li>
<li>&#xFF08;&#x5225;&#x8868; <code>AppdxTable</code> &#x3001;&#x5225;&#x8A18; <code>AppdxNote</code> &#x3001;&#x4ED8;&#x9332; <code>Appdx</code> &#x7B49;&#xFF09;</li>
</ul>
</li>
</ul>
<p>&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x3092;&#x898B;&#x3084;&#x3059;&#x3044;&#x5F62;&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x308B;&#x30B5;&#x30A4;&#x30C8;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x306E;&#x3067;&#x3001;&#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x306B;&#x3064;&#x3044;&#x3066;&#x8A73;&#x3057;&#x304F;&#x77E5;&#x308A;&#x305F;&#x3044;&#x65B9;&#x306F;&#x305D;&#x3061;&#x3089;&#x3092;&#x53C2;&#x7167;&#x3059;&#x308B;&#x3068;&#x3088;&#x3044;&#x3067;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<p><a href="https://www.tashiro-ip.com/ip-law/xml-schema.html">Web&#x77E5;&#x8CA1;&#x6CD5;</a></p>
<h3 id="%E6%B3%95%E4%BB%A4%E7%95%AA%E5%8F%B7%E3%81%A8%E6%B3%95%E4%BB%A4id">&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3068;&#x6CD5;&#x4EE4;ID</h3>
<p>&#x6CD5;&#x4EE4;&#x306F;&#x516C;&#x5E03;&#x306E;&#x969B;&#x306B;&#x3001;&#x4E00;&#x610F;&#x306B;&#x8B58;&#x5225;&#x3067;&#x304D;&#x308B;<strong>&#x6CD5;&#x4EE4;&#x756A;&#x53F7;</strong>&#x304C;&#x4ED8;&#x4E0E;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x73FE;&#x5728;&#x306E;<a href="https://elaws.e-gov.go.jp/document?lawid=417AC0000000086_20230614_505AC0000000053">&#x4F1A;&#x793E;&#x6CD5;</a>&#x306E;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x306F;&#x300C;&#x5E73;&#x6210;&#x5341;&#x4E03;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x516B;&#x5341;&#x516D;&#x53F7;&#x300D;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>e-Gov&#x304C;&#x63D0;&#x4F9B;&#x3059;&#x308B;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x306F;&#x3001;&#x5404;&#x6CD5;&#x4EE4;&#x306B;&#x4E00;&#x610F;&#x306A;<strong>&#x6CD5;&#x4EE4;ID</strong>&#x304C;&#x4ED8;&#x4E0E;&#x3055;&#x308C;&#x307E;&#x3059;&#xFF08;&#x6539;&#x6B63;&#x6CD5;&#x306B;&#x3082;&#x6CD5;&#x4EE4;ID&#x304C;&#x4ED8;&#x4E0E;&#x3055;&#x308C;&#x307E;&#x3059;&#xFF09;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x6CD5;&#x5F8B;&#x306E;&#x6CD5;&#x4EE4;ID&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x4F53;&#x7CFB;&#x3067;&#x6C7A;&#x5B9A;&#x3055;&#x308C;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn12" id="fnref12">[12]</a></sup>&#x3002;</p>
<table>
<thead>
<tr>
<th>&#x6841;&#x6570;</th>
<th>&#x610F;&#x5473;</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>&#x5E74;&#x53F7;</td>
</tr>
<tr>
<td>2-3</td>
<td>&#x5E74;</td>
</tr>
<tr>
<td>4-5</td>
<td>&#x7A2E;&#x5225;&#xFF08;&#x6CD5;&#x5F8B;&#x306E;&#x5834;&#x5408; AC&#xFF09;</td>
</tr>
<tr>
<td>6-12</td>
<td>&#x95A3;&#x6CD5;&#x3068;&#x8B70;&#x54E1;&#x7ACB;&#x6CD5;&#x306E;&#x533A;&#x5225;</td>
</tr>
<tr>
<td>13-15</td>
<td>&#x6CD5;&#x4EE4;&#x306E;&#x53F7;&#x756A;&#x53F7;</td>
</tr>
</tbody>
</table>
<p>&#x6CD5;&#x4EE4;&#x304C;&#x6539;&#x6B63;&#x3055;&#x308C;&#x305F;&#x5834;&#x5408;&#x3001;&#x524D;&#x8FF0;&#x306E;&#x3068;&#x304A;&#x308A;&#x3001;&#x3082;&#x3068;&#x306E;&#x6CD5;&#x4EE4;&#x306B;&#x6539;&#x6B63;&#x6CD5;&#x3092;&#x6EB6;&#x304B;&#x3057;&#x8FBC;&#x3093;&#x3060;&#xFF08;&#x30DE;&#x30FC;&#x30B8;&#x3055;&#x308C;&#x305F;&#xFF09;&#x3082;&#x306E;&#x304C;&#x516C;&#x958B;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x305F;&#x3060;&#x3057;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x306F;&#x3001;&#x65BD;&#x884C;&#x65E5;&#x304C;&#x672A;&#x6765;&#x306E;&#x3082;&#x306E;&#x3001;&#x3064;&#x307E;&#x308A;&#x672A;&#x65BD;&#x884C;&#x306E;&#x6CD5;&#x4EE4;&#x304C;&#x542B;&#x307E;&#x308C;&#x308B;&#x306E;&#x3067;&#x6CE8;&#x610F;&#x304C;&#x5FC5;&#x8981;&#x3067;&#x3059;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;<a href="https://elaws.e-gov.go.jp/document?lawid=417AC0000000086_20230614_505AC0000000053">&#x4F1A;&#x793E;&#x6CD5;&#xFF08;&#x5E73;&#x6210;&#x5341;&#x4E03;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x516B;&#x5341;&#x516D;&#x53F7;&#xFF09;</a>&#x306E;&#x5834;&#x5408;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x306F;&#x672A;&#x65BD;&#x884C;&#x306E;&#x3082;&#x306E;&#x3092;&#x542B;&#x3081;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x304C;&#x542B;&#x307E;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li><code>417AC0000000086_20230614_505AC0000000053.xml</code> &#xFF08;<strong>2023&#x5E74;6&#x6708;14&#x65E5;&#x65BD;&#x884C; &#x2190; &#x73FE;&#x5728;&#x6709;&#x52B9;</strong>&#xFF09;</li>
<li><code>417AC0000000086_20250616_504AC0000000068.xml</code> &#xFF08;&#x672A;&#x65BD;&#x884C;&#xFF09;</li>
<li><code>417AC0000000086_20251213_505AC0000000053.xml</code> &#xFF08;&#x672A;&#x65BD;&#x884C;&#xFF09;</li>
<li><code>417AC0000000086_20260524_504AC0000000048.xml</code> &#xFF08;&#x672A;&#x65BD;&#x884C;&#xFF09;</li>
<li><code>417AC0000000086_20280613_505AC0000000053.xml</code> &#xFF08;&#x672A;&#x65BD;&#x884C;&#xFF09;</li>
</ul>
<p>&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x3001;&#x6CD5;&#x4EE4;&#x306E;&#x6539;&#x6B63;&#x306B;&#x5BFE;&#x5FDC;&#x3059;&#x308B;&#x305F;&#x3081;&#x3001;&#x4E00;&#x610F;&#x306B;&#x8B58;&#x5225;&#x3067;&#x304D;&#x308B;&#x5F62;&#x3067;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x540D;&#x304C;&#x3064;&#x3051;&#x3089;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<blockquote>
<p>e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x3067;&#x306F;&#x3001;&#x3044;&#x3064;&#x6642;&#x70B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x3042;&#x308B;&#x304B;&#x3092;&#x660E;&#x793A;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x300C;&#x6CD5;&#x4EE4;ID_&#x6539;&#x6B63;&#x6CD5;&#x306E;&#x65BD;&#x884C;&#x65E5;_&#x6539;&#x6B63;&#x6CD5;&#x306E;&#x6CD5;&#x4EE4;ID&#x300D;&#x3092;URL&#x3068;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;<br>
&#x300C;129AC0000000089_20200401_501AC0000000034&#x300D;</p>
<p><a href="https://elaws.e-gov.go.jp/help/">&#x30D8;&#x30EB;&#x30D7; - e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;</a></p>
</blockquote>
<p>&#x3064;&#x307E;&#x308A;&#x3001;&#x73FE;&#x5728;&#x6709;&#x52B9;&#x306A;&#x6CD5;&#x4EE4;&#x3092;&#x63A2;&#x3059;&#x306B;&#x306F;&#x3001;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x540D;&#x306B;&#x542B;&#x307E;&#x308C;&#x308B;&#x300C;&#x6539;&#x6B63;&#x6CD5;&#x306E;&#x65BD;&#x884C;&#x65E5;&#x300D;&#x304C;&#x904E;&#x53BB;&#x306E;&#x3082;&#x306E;&#x3092;&#x5BFE;&#x8C61;&#x306B;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E9%A1%8C%E5%90%8D">&#x984C;&#x540D;</h3>
<p>&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3060;&#x3051;&#x3067;&#x306F;&#x3069;&#x3093;&#x306A;&#x6CD5;&#x4EE4;&#x306A;&#x306E;&#x304B;&#x8A8D;&#x8B58;&#x3057;&#x3065;&#x3089;&#x3044;&#x3053;&#x3068;&#x3082;&#x3042;&#x308A;&#x3001;&#x65B0;&#x305F;&#x306B;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x308B;&#x6CD5;&#x4EE4;&#x306B;&#x306F;&#x3001;<strong>&#x984C;&#x540D;</strong>&#xFF08; <code>LawTitle</code> &#xFF09;&#x304C;&#x3064;&#x3051;&#x3089;&#x308C;&#x3001;&#x6CD5;&#x4EE4;&#x304C;&#x5224;&#x5225;&#x3057;&#x3084;&#x3059;&#x304F;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x305F;&#x3060;&#x3057;&#x3001;&#x662D;&#x548C;22&#x5E74;&#x3054;&#x308D;&#x307E;&#x3067;&#x306B;&#x5236;&#x5B9A;&#x3055;&#x308C;&#x305F;&#x6CD5;&#x4EE4;&#x306E;&#x306A;&#x304B;&#x306B;&#x306F;&#x984C;&#x540D;&#x306E;&#x306A;&#x3044;&#x3082;&#x306E;&#x304C;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3057;&#x304B;&#x3057;&#x3001;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3060;&#x3051;&#x3067;&#x306F;&#x610F;&#x5473;&#x3092;&#x985E;&#x63A8;&#x3067;&#x304D;&#x305A;&#x3001;&#x4E0D;&#x4FBF;&#x3067;&#x3059;&#x3002;&#x305D;&#x306E;&#x305F;&#x3081;&#x3001;&#x984C;&#x540D;&#x306E;&#x306A;&#x3044;&#x6CD5;&#x4EE4;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x516C;&#x5E03;&#x6587;&#x304B;&#x3089;&#x4EF6;&#x540D;&#x3092;&#x3068;&#x3063;&#x3066;&#x4FBF;&#x5B9C;&#x7684;&#x306A;&#x6CD5;&#x4EE4;&#x540D;&#x3068;&#x3057;&#x3066;&#x6271;&#x3046;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<p>&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x6C7A;&#x95D8;&#x7F6A;&#x306B;&#x3064;&#x3044;&#x3066;&#x898F;&#x5B9A;&#x3055;&#x308C;&#x305F;<a href="https://elaws.e-gov.go.jp/document?lawid=122AC0000000034_20220617_504AC0000000068">&#x660E;&#x6CBB;&#x4E8C;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x4E09;&#x5341;&#x56DB;&#x53F7;</a>&#x306B;&#x306F;&#x984C;&#x540D;&#x304C;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;&#x3053;&#x306E;&#x6CD5;&#x4EE4;&#x306F;&#x300C;&#x6C7A;&#x95D8;&#x7F6A;&#x30CB;&#x95A2;&#x30B9;&#x30EB;&#x4EF6;&#x300D;&#x3068;&#x547C;&#x3070;&#x308C;&#x3066;&#x304A;&#x308A;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x3082;&#x300C;&#x660E;&#x6CBB;&#x4E8C;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x4E09;&#x5341;&#x56DB;&#x53F7;&#xFF08;&#x6C7A;&#x95D8;&#x7F6A;&#x30CB;&#x95A2;&#x30B9;&#x30EB;&#x4EF6;&#xFF09;&#x300D;&#x3068;&#x3044;&#x3046;&#x984C;&#x540D;&#x304C;&#x3064;&#x3051;&#x3089;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E6%9C%AC%E5%89%87%E3%81%A8%E9%99%84%E5%89%87">&#x672C;&#x5247;&#x3068;&#x9644;&#x5247;</h3>
<p>&#x6CD5;&#x4EE4;&#x306E;&#x69CB;&#x9020;&#x306F;&#x3001;&#x5927;&#x304D;&#x304F;&#x306F;&#x6CD5;&#x4EE4;&#x306E;&#x5B9F;&#x8CEA;&#x7684;&#x306A;&#x5185;&#x5BB9;&#x304C;&#x66F8;&#x304B;&#x308C;&#x3066;&#x3044;&#x308B;<strong>&#x672C;&#x5247;</strong>&#xFF08; <code>MainProvision</code> &#xFF09;&#x3068;&#x3001;&#x6761;&#x6587;&#x306E;&#x65BD;&#x884C;&#x671F;&#x65E5;&#x306A;&#x3069;&#x306E;&#x4ED8;&#x5E2F;&#x7684;&#x306A;&#x60C5;&#x5831;&#x304C;&#x66F8;&#x304B;&#x308C;&#x305F;<strong>&#x9644;&#x5247;</strong>&#xFF08; <code>SupplProvisoin</code> &#xFF09;&#x304B;&#x3089;&#x306A;&#x308A;&#x307E;&#x3059;&#xFF08;&#x300C;&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x300D;&#x306E;&#x9805;&#x76EE;&#x3092;&#x53C2;&#x7167;&#xFF09;&#x3002;</p>
<p>&#x9644;&#x5247;&#x3067;&#x306F;&#x3001;&#x305D;&#x306E;&#x6CD5;&#x4EE4;&#x306B;&#x3088;&#x3063;&#x3066;&#x5F71;&#x97FF;&#x3092;&#x53D7;&#x3051;&#x308B;&#x95A2;&#x9023;&#x6CD5;&#x4EE4;&#x306B;&#x3064;&#x3044;&#x3066;&#x3082;&#x8A00;&#x53CA;&#x3055;&#x308C;&#x308B;&#x3053;&#x3068;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001;&#x672C;&#x5247;&#x306E;&#x7279;&#x4F8B;&#x306A;&#x3069;&#x4F8B;&#x5916;&#x4E8B;&#x9805;&#x306B;&#x3064;&#x3044;&#x3066;&#x66F8;&#x304B;&#x308C;&#x308B;&#x3053;&#x3068;&#x3082;&#x3042;&#x308A;<sup class="footnote-ref"><a href="#fn13" id="fnref13">[13]</a></sup>&#x3001;&#x9644;&#x5247;&#x3082;&#x672C;&#x5247;&#x3068;&#x3042;&#x308F;&#x305B;&#x3066;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<h3 id="%E6%9D%A1%E3%83%BB%E9%A0%85%E3%83%BB%E5%8F%B7">&#x6761;&#x30FB;&#x9805;&#x30FB;&#x53F7;</h3>
<p>&#x6CD5;&#x4EE4;&#x306E;&#x5185;&#x5BB9;&#x306E;&#x3082;&#x3063;&#x3068;&#x3082;&#x57FA;&#x672C;&#x7684;&#x306A;&#x5358;&#x4F4D;&#x306F;<strong>&#x6761;</strong>&#xFF08; <code>Article</code> &#xFF09;&#x3067;&#x3042;&#x308A;&#x3001;&#x6CD5;&#x4EE4;&#x306F;&#x6761;&#xFF08;&#x6761;&#x6587;&#xFF09;&#x306E;&#x96C6;&#x307E;&#x308A;&#x304B;&#x3089;&#x306A;&#x308B;&#x3001;&#x3068;&#x8003;&#x3048;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn7" id="fnref7:1">[7:1]</a></sup><sup class="footnote-ref"><a href="#fn14" id="fnref14">[14]</a></sup>&#x3002;</p>
<p>&#x3067;&#x306F;&#x3001;&#x6761;&#x306E;&#x69CB;&#x9020;&#x3092;&#x8A73;&#x3057;&#x304F;&#x898B;&#x3066;&#x3044;&#x304D;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;&#x4EE5;&#x4E0B;&#x306F;&#x3001;<a href="https://elaws.e-gov.go.jp/document?lawid=322AC0000000049_20230401_430AC0000000071">&#x52B4;&#x50CD;&#x57FA;&#x6E96;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x4E8C;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x56DB;&#x5341;&#x4E5D;&#x53F7;&#xFF09;</a>&#x306E;&#x7B2C;24&#x6761;&#x3092;&#x629C;&#x7C8B;&#x3057;&#x305F;&#x3082;&#x306E;&#x3067;&#x3059;&#x3002;&#x3053;&#x306E;&#x6761;&#x306B;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;2&#x3064;&#x306E;&#x9805;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<blockquote>
<p>&#xFF08;&#x8CC3;&#x91D1;&#x306E;&#x652F;&#x6255;&#xFF09;</p>
<p>&#x7B2C;&#x4E8C;&#x5341;&#x56DB;&#x6761;&#x3000;&#x8CC3;&#x91D1;&#x306F;&#x3001;&#x901A;&#x8CA8;&#x3067;&#x3001;&#x76F4;&#x63A5;&#x52B4;&#x50CD;&#x8005;&#x306B;&#x3001;&#x305D;&#x306E;&#x5168;&#x984D;&#x3092;&#x652F;&#x6255;&#x308F;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x3002;&#x305F;&#x3060;&#x3057;&#x3001;&#x6CD5;&#x4EE4;&#x82E5;&#x3057;&#x304F;&#x306F;&#x52B4;&#x50CD;&#x5354;&#x7D04;&#x306B;&#x5225;&#x6BB5;&#x306E;&#x5B9A;&#x3081;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x53C8;&#x306F;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x8CC3;&#x91D1;&#x306B;&#x3064;&#x3044;&#x3066;&#x78BA;&#x5B9F;&#x306A;&#x652F;&#x6255;&#x306E;&#x65B9;&#x6CD5;&#x3067;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x3082;&#x306E;&#x306B;&#x3088;&#x308B;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x901A;&#x8CA8;&#x4EE5;&#x5916;&#x306E;&#x3082;&#x306E;&#x3067;&#x652F;&#x6255;&#x3044;&#x3001;&#x307E;&#x305F;&#x3001;&#x6CD5;&#x4EE4;&#x306B;&#x5225;&#x6BB5;&#x306E;&#x5B9A;&#x3081;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x53C8;&#x306F;&#x5F53;&#x8A72;&#x4E8B;&#x696D;&#x5834;&#x306E;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3067;&#x7D44;&#x7E54;&#x3059;&#x308B;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x304C;&#x3042;&#x308B;&#x3068;&#x304D;&#x306F;&#x305D;&#x306E;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x3001;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3067;&#x7D44;&#x7E54;&#x3059;&#x308B;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x304C;&#x306A;&#x3044;&#x3068;&#x304D;&#x306F;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3092;&#x4EE3;&#x8868;&#x3059;&#x308B;&#x8005;&#x3068;&#x306E;&#x66F8;&#x9762;&#x306B;&#x3088;&#x308B;&#x5354;&#x5B9A;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x8CC3;&#x91D1;&#x306E;&#x4E00;&#x90E8;&#x3092;&#x63A7;&#x9664;&#x3057;&#x3066;&#x652F;&#x6255;&#x3046;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x308B;&#x3002;<br>
&#x2461;&#x3000;&#x8CC3;&#x91D1;&#x306F;&#x3001;&#x6BCE;&#x6708;&#x4E00;&#x56DE;&#x4EE5;&#x4E0A;&#x3001;&#x4E00;&#x5B9A;&#x306E;&#x671F;&#x65E5;&#x3092;&#x5B9A;&#x3081;&#x3066;&#x652F;&#x6255;&#x308F;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x3002;&#x305F;&#x3060;&#x3057;&#x3001;&#x81E8;&#x6642;&#x306B;&#x652F;&#x6255;&#x308F;&#x308C;&#x308B;&#x8CC3;&#x91D1;&#x3001;&#x8CDE;&#x4E0E;&#x305D;&#x306E;&#x4ED6;&#x3053;&#x308C;&#x306B;&#x6E96;&#x305A;&#x308B;&#x3082;&#x306E;&#x3067;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x8CC3;&#x91D1;&#xFF08;&#x7B2C;&#x516B;&#x5341;&#x4E5D;&#x6761;&#x306B;&#x304A;&#x3044;&#x3066;&#x300C;&#x81E8;&#x6642;&#x306E;&#x8CC3;&#x91D1;&#x7B49;&#x300D;&#x3068;&#x3044;&#x3046;&#x3002;&#xFF09;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x3053;&#x306E;&#x9650;&#x308A;&#x3067;&#x306A;&#x3044;&#x3002;</p>
<p><a href="https://elaws.e-gov.go.jp/document?lawid=322AC0000000049_20230401_430AC0000000071">&#x52B4;&#x50CD;&#x57FA;&#x6E96;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x4E8C;&#x5341;&#x4E8C;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x56DB;&#x5341;&#x4E5D;&#x53F7;&#xFF09;</a></p>
</blockquote>
<p>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x304A;&#x3044;&#x3066;&#x6761;&#xFF08; <code>Article</code> &#xFF09;&#x306F;&#x3001;<strong>&#x6761;&#x540D;</strong>&#xFF08; <code>ArticleTitle</code> &#xFF09;&#x3084;<strong>&#x6761;&#x898B;&#x51FA;&#x3057;</strong>&#xFF08; <code>ArticleCaption</code> &#x3001;&#x7701;&#x7565;&#x53EF;&#xFF09;&#x3001;&#x305D;&#x3057;&#x3066;&#x4E00;&#x822C;&#x306B;&#x306F;&#x8907;&#x6570;&#x306E;<strong>&#x9805;</strong> ( <code>Paragraph</code> ) &#x304B;&#x3089;&#x69CB;&#x6210;&#x3055;&#x308C;&#x307E;&#x3059;&#xFF08;&#x9805;&#x304C;1&#x3064;&#x3060;&#x3051;&#x306E;&#x6761;&#x3082;&#x591A;&#x3044;&#xFF09;&#x3002;&#x9805;&#x306F;&#x3001;&#x5B9F;&#x969B;&#x306E;&#x5185;&#x5BB9;&#x304C;&#x66F8;&#x304B;&#x308C;&#x308B;<strong>&#x9805;&#x6587;</strong>&#xFF08; <code>ParagraphSentence</code> &#xFF09;&#x3092;&#x3082;&#x3061;&#x307E;&#x3059;&#x3002;&#x9805;&#x6587;&#x306F;<strong>&#x6BB5;</strong>&#xFF08; <code>Sentence</code> &#xFF09;&#x3068;&#x3044;&#x3046;&#x6587;&#x5B57;&#x5217;&#x578B;&#x306E;&#x6587;&#x306E;&#x30EA;&#x30B9;&#x30C8;&#x3068;&#x3057;&#x3066;&#x5B9A;&#x7FA9;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x5148;&#x307B;&#x3069;&#x306E;&#x7B2C;24&#x6761;&#x306F;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;XML&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-xml">&lt;Article Num=&quot;24&quot;&gt;
  &lt;ArticleCaption&gt;&#xFF08;&#x8CC3;&#x91D1;&#x306E;&#x652F;&#x6255;&#xFF09;&lt;/ArticleCaption&gt;
  &lt;ArticleTitle&gt;&#x7B2C;&#x4E8C;&#x5341;&#x56DB;&#x6761;&lt;/ArticleTitle&gt;
  &lt;Paragraph Num=&quot;1&quot;&gt;
  &lt;ParagraphNum/&gt;
    &lt;ParagraphSentence&gt;
      &lt;Sentence Function=&quot;main&quot; Num=&quot;1&quot; WritingMode=&quot;vertical&quot;&gt;&#x8CC3;&#x91D1;&#x306F;&#x3001;&#x901A;&#x8CA8;&#x3067;&#x3001;&#x76F4;&#x63A5;&#x52B4;&#x50CD;&#x8005;&#x306B;&#x3001;&#x305D;&#x306E;&#x5168;&#x984D;&#x3092;&#x652F;&#x6255;&#x308F;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x3002;&lt;/Sentence&gt;
      &lt;Sentence Function=&quot;proviso&quot; Num=&quot;2&quot; WritingMode=&quot;vertical&quot;&gt;&#x305F;&#x3060;&#x3057;&#x3001;&#x6CD5;&#x4EE4;&#x82E5;&#x3057;&#x304F;&#x306F;&#x52B4;&#x50CD;&#x5354;&#x7D04;&#x306B;&#x5225;&#x6BB5;&#x306E;&#x5B9A;&#x3081;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x53C8;&#x306F;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x8CC3;&#x91D1;&#x306B;&#x3064;&#x3044;&#x3066;&#x78BA;&#x5B9F;&#x306A;&#x652F;&#x6255;&#x306E;&#x65B9;&#x6CD5;&#x3067;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x3082;&#x306E;&#x306B;&#x3088;&#x308B;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x901A;&#x8CA8;&#x4EE5;&#x5916;&#x306E;&#x3082;&#x306E;&#x3067;&#x652F;&#x6255;&#x3044;&#x3001;&#x307E;&#x305F;&#x3001;&#x6CD5;&#x4EE4;&#x306B;&#x5225;&#x6BB5;&#x306E;&#x5B9A;&#x3081;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x53C8;&#x306F;&#x5F53;&#x8A72;&#x4E8B;&#x696D;&#x5834;&#x306E;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3067;&#x7D44;&#x7E54;&#x3059;&#x308B;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x304C;&#x3042;&#x308B;&#x3068;&#x304D;&#x306F;&#x305D;&#x306E;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x3001;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3067;&#x7D44;&#x7E54;&#x3059;&#x308B;&#x52B4;&#x50CD;&#x7D44;&#x5408;&#x304C;&#x306A;&#x3044;&#x3068;&#x304D;&#x306F;&#x52B4;&#x50CD;&#x8005;&#x306E;&#x904E;&#x534A;&#x6570;&#x3092;&#x4EE3;&#x8868;&#x3059;&#x308B;&#x8005;&#x3068;&#x306E;&#x66F8;&#x9762;&#x306B;&#x3088;&#x308B;&#x5354;&#x5B9A;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x8CC3;&#x91D1;&#x306E;&#x4E00;&#x90E8;&#x3092;&#x63A7;&#x9664;&#x3057;&#x3066;&#x652F;&#x6255;&#x3046;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x308B;&#x3002;&lt;/Sentence&gt;
    &lt;/ParagraphSentence&gt;
  &lt;/Paragraph&gt;
  &lt;Paragraph Num=&quot;2&quot; OldNum=&quot;true&quot; OldStyle=&quot;false&quot;&gt;
    &lt;ParagraphNum/&gt;
    &lt;ParagraphSentence&gt;
      &lt;Sentence Function=&quot;main&quot; Num=&quot;1&quot; WritingMode=&quot;vertical&quot;&gt;&#x8CC3;&#x91D1;&#x306F;&#x3001;&#x6BCE;&#x6708;&#x4E00;&#x56DE;&#x4EE5;&#x4E0A;&#x3001;&#x4E00;&#x5B9A;&#x306E;&#x671F;&#x65E5;&#x3092;&#x5B9A;&#x3081;&#x3066;&#x652F;&#x6255;&#x308F;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x3002;&lt;/Sentence&gt;
      &lt;Sentence Function=&quot;proviso&quot; Num=&quot;2&quot; WritingMode=&quot;vertical&quot;&gt;&#x305F;&#x3060;&#x3057;&#x3001;&#x81E8;&#x6642;&#x306B;&#x652F;&#x6255;&#x308F;&#x308C;&#x308B;&#x8CC3;&#x91D1;&#x3001;&#x8CDE;&#x4E0E;&#x305D;&#x306E;&#x4ED6;&#x3053;&#x308C;&#x306B;&#x6E96;&#x305A;&#x308B;&#x3082;&#x306E;&#x3067;&#x539A;&#x751F;&#x52B4;&#x50CD;&#x7701;&#x4EE4;&#x3067;&#x5B9A;&#x3081;&#x308B;&#x8CC3;&#x91D1;&#xFF08;&#x7B2C;&#x516B;&#x5341;&#x4E5D;&#x6761;&#x306B;&#x304A;&#x3044;&#x3066;&#x300C;&#x81E8;&#x6642;&#x306E;&#x8CC3;&#x91D1;&#x7B49;&#x300D;&#x3068;&#x3044;&#x3046;&#x3002;&#xFF09;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x3053;&#x306E;&#x9650;&#x308A;&#x3067;&#x306A;&#x3044;&#x3002;&lt;/Sentence&gt;
    &lt;/ParagraphSentence&gt;
  &lt;/Paragraph&gt;
&lt;/Article&gt;
</code></pre>
<p>&#x57FA;&#x672C;&#x7684;&#x306B;&#x9805;&#x6587;&#xFF08; <code>ParagraphSentence</code> &#xFF09;&#x306B;&#x542B;&#x307E;&#x308C;&#x308B;&#x6BB5;&#xFF08; <code>Sentence</code> &#xFF09;&#x306F;1&#x3064;&#x306E;&#x672C;&#x6587;&#xFF08;&#x5C5E;&#x6027;&#x304C; <code>Function=&quot;main&quot;</code> &#x306E;&#x3082;&#x306E;&#xFF09;&#x306E;&#x307F;&#x3067;&#x3059;&#x304C;&#x3001;&#x3053;&#x306E;&#x7B2C;24&#x6761;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;<strong>&#x305F;&#x3060;&#x3057;&#x66F8;</strong>&#xFF08;&#x5C5E;&#x6027;&#x304C; <code>Function=&quot;proviso&quot;</code> &#xFF09;&#x306E;&#x6BB5;&#xFF08; <code>Sentence</code> &#xFF09;&#x3092;&#x3082;&#x3064;&#x3053;&#x3068;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn15" id="fnref15">[15]</a></sup>&#x3002;</p>
<p>&#x9805;&#x306E;&#x5185;&#x5BB9;&#x3092;&#x3055;&#x3089;&#x306B;&#x7D30;&#x5206;&#x5316;&#x3057;&#x3066;&#x8A18;&#x8FF0;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308B;&#x5834;&#x5408;&#x306B;&#x306F;<strong>&#x53F7;</strong>&#xFF08; <code>Item</code> &#xFF09;&#x304C;&#x7528;&#x3044;&#x3089;&#x308C;&#x307E;&#x3059;&#x3002;&#x8457;&#x4F5C;&#x6A29;&#x6CD5;&#x7B2C;10&#x6761;&#x7B2C;3&#x9805;&#x306B;&#x306F;&#x3001;3&#x3064;&#x306E;&#x53F7;&#x304C;&#x542B;&#x307E;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<blockquote>
<p>&#xFF13;&#x3000;&#x7B2C;&#x4E00;&#x9805;&#x7B2C;&#x4E5D;&#x53F7;&#x306B;&#x63B2;&#x3052;&#x308B;&#x8457;&#x4F5C;&#x7269;&#x306B;&#x5BFE;&#x3059;&#x308B;&#x3053;&#x306E;&#x6CD5;&#x5F8B;&#x306B;&#x3088;&#x308B;&#x4FDD;&#x8B77;&#x306F;&#x3001;&#x305D;&#x306E;&#x8457;&#x4F5C;&#x7269;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x7528;&#x3044;&#x308B;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x8A00;&#x8A9E;&#x3001;&#x898F;&#x7D04;&#x53CA;&#x3073;&#x89E3;&#x6CD5;&#x306B;&#x53CA;&#x3070;&#x306A;&#x3044;&#x3002;&#x3053;&#x306E;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x3053;&#x308C;&#x3089;&#x306E;&#x7528;&#x8A9E;&#x306E;&#x610F;&#x7FA9;&#x306F;&#x3001;&#x6B21;&#x306E;&#x5404;&#x53F7;&#x306B;&#x5B9A;&#x3081;&#x308B;&#x3068;&#x3053;&#x308D;&#x306B;&#x3088;&#x308B;&#x3002;</p>
<p>&#x4E00;&#x3000;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x8A00;&#x8A9E;&#x3000;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x624B;&#x6BB5;&#x3068;&#x3057;&#x3066;&#x306E;&#x6587;&#x5B57;&#x305D;&#x306E;&#x4ED6;&#x306E;&#x8A18;&#x53F7;&#x53CA;&#x3073;&#x305D;&#x306E;&#x4F53;&#x7CFB;&#x3092;&#x3044;&#x3046;&#x3002;<br>
&#x3000;&#x4E8C;&#x3000;&#x898F;&#x7D04;&#x3000;&#x7279;&#x5B9A;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306B;&#x304A;&#x3051;&#x308B;&#x524D;&#x53F7;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x8A00;&#x8A9E;&#x306E;&#x7528;&#x6CD5;&#x306B;&#x3064;&#x3044;&#x3066;&#x306E;&#x7279;&#x5225;&#x306E;&#x7D04;&#x675F;&#x3092;&#x3044;&#x3046;&#x3002;<br>
&#x3000;&#x4E09;&#x3000;&#x89E3;&#x6CD5;&#x3000;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306B;&#x304A;&#x3051;&#x308B;&#x96FB;&#x5B50;&#x8A08;&#x7B97;&#x6A5F;&#x306B;&#x5BFE;&#x3059;&#x308B;&#x6307;&#x4EE4;&#x306E;&#x7D44;&#x5408;&#x305B;&#x306E;&#x65B9;&#x6CD5;&#x3092;&#x3044;&#x3046;&#x3002;</p>
<p><a href="https://elaws.e-gov.go.jp/document?lawid=345AC0000000048_20230614_505AC0000000053">&#x8457;&#x4F5C;&#x6A29;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x56DB;&#x5341;&#x4E94;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x56DB;&#x5341;&#x516B;&#x53F7;&#xFF09;</a></p>
</blockquote>
<p>&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3067;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF08;&#x8457;&#x4F5C;&#x6A29;&#x6CD5;&#x7B2C;10&#x6761;&#x7B2C;3&#x9805;&#x3088;&#x308A;&#x7B2C;1&#x53F7;&#x307E;&#x3067;&#x3092;&#x629C;&#x7C8B;&#xFF09;&#x3002;</p>
<pre><code class="language-xml">&lt;Paragraph Num=&quot;3&quot;&gt;
  &lt;ParagraphNum&gt;&#xFF13;&lt;/ParagraphNum&gt;
  &lt;ParagraphSentence&gt;
    &lt;Sentence Num=&quot;1&quot; WritingMode=&quot;vertical&quot;&gt;&#x7B2C;&#x4E00;&#x9805;&#x7B2C;&#x4E5D;&#x53F7;&#x306B;&#x63B2;&#x3052;&#x308B;&#x8457;&#x4F5C;&#x7269;&#x306B;&#x5BFE;&#x3059;&#x308B;&#x3053;&#x306E;&#x6CD5;&#x5F8B;&#x306B;&#x3088;&#x308B;&#x4FDD;&#x8B77;&#x306F;&#x3001;&#x305D;&#x306E;&#x8457;&#x4F5C;&#x7269;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x7528;&#x3044;&#x308B;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x8A00;&#x8A9E;&#x3001;&#x898F;&#x7D04;&#x53CA;&#x3073;&#x89E3;&#x6CD5;&#x306B;&#x53CA;&#x3070;&#x306A;&#x3044;&#x3002;&lt;/Sentence&gt;
    &lt;Sentence Num=&quot;2&quot; WritingMode=&quot;vertical&quot;&gt;&#x3053;&#x306E;&#x5834;&#x5408;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x3053;&#x308C;&#x3089;&#x306E;&#x7528;&#x8A9E;&#x306E;&#x610F;&#x7FA9;&#x306F;&#x3001;&#x6B21;&#x306E;&#x5404;&#x53F7;&#x306B;&#x5B9A;&#x3081;&#x308B;&#x3068;&#x3053;&#x308D;&#x306B;&#x3088;&#x308B;&#x3002;&lt;/Sentence&gt;
  &lt;/ParagraphSentence&gt;
  &lt;Item Num=&quot;1&quot;&gt;
    &lt;ItemTitle&gt;&#x4E00;&lt;/ItemTitle&gt;
    &lt;ItemSentence&gt;
      &lt;Column Num=&quot;1&quot;&gt;
        &lt;Sentence Num=&quot;1&quot; WritingMode=&quot;vertical&quot;&gt;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x8A00;&#x8A9E;&lt;/Sentence&gt;
      &lt;/Column&gt;
      &lt;Column Num=&quot;2&quot;&gt;
        &lt;Sentence Num=&quot;1&quot; WritingMode=&quot;vertical&quot;&gt;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x624B;&#x6BB5;&#x3068;&#x3057;&#x3066;&#x306E;&#x6587;&#x5B57;&#x305D;&#x306E;&#x4ED6;&#x306E;&#x8A18;&#x53F7;&#x53CA;&#x3073;&#x305D;&#x306E;&#x4F53;&#x7CFB;&#x3092;&#x3044;&#x3046;&#x3002;&lt;/Sentence&gt;
      &lt;/Column&gt;
    &lt;/ItemSentence&gt;
  &lt;/Item&gt;
  &lt;Item Num=&quot;2&quot;&gt;
&#xFF08;&#x4EE5;&#x4E0B;&#x7565;&#xFF09;
</code></pre>
<h3 id="%E7%B7%A8%E3%83%BB%E7%AB%A0%E3%83%BB%E7%AF%80%E3%83%BB%E6%AC%BE%E3%83%BB%E7%9B%AE">&#x7DE8;&#x30FB;&#x7AE0;&#x30FB;&#x7BC0;&#x30FB;&#x6B3E;&#x30FB;&#x76EE;</h3>
<p>&#x6761;&#x6587;&#x6570;&#x306E;&#x591A;&#x3044;&#x6CD5;&#x4EE4;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;<strong>&#x7DE8;</strong>&#xFF08; <code>Part</code> &#xFF09;&#x3001;<strong>&#x7AE0;</strong>&#xFF08; <code>Chapter</code> &#xFF09;&#x3001;<strong>&#x7BC0;</strong>&#xFF08; <code>Section</code> &#xFF09;&#x3001;<strong>&#x6B3E;</strong>&#xFF08; <code>Subsection</code> &#xFF09;&#x3001;<strong>&#x76EE;</strong>&#xFF08; <code>Division</code> &#xFF09;&#x3068;&#x3044;&#x3046;&#x533A;&#x5206;&#x3092;&#x7528;&#x3044;&#x3066;&#x6761;&#x3092;&#x307E;&#x3068;&#x3081;&#x307E;&#x3059;&#xFF08;&#x305F;&#x3060;&#x3057;&#x3001;&#x5FC5;&#x305A;&#x3057;&#x3082;&#x5168;&#x3066;&#x306E;&#x968E;&#x5C64;&#x304C;&#x5B58;&#x5728;&#x3059;&#x308B;&#x308F;&#x3051;&#x3067;&#x306F;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#xFF09;&#x3002;</p>
<p>&#x3088;&#x3063;&#x3066;&#x4E00;&#x822C;&#x306B;&#x306F;&#x3001;&#x6CD5;&#x4EE4;&#x306E;&#x5185;&#x5BB9;&#xFF08;&#x672C;&#x5247;&#xFF09;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x968E;&#x5C64;&#x69CB;&#x9020;&#x3068;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li>&#x672C;&#x5247; <code>MainProvision</code>
<ul>
<li>&#x7DE8; <code>Part</code>
<ul>
<li>&#x7AE0; <code>Chapter</code>
<ul>
<li>&#x7BC0; <code>Section</code>
<ul>
<li>&#x6B3E; <code>Subsection</code>
<ul>
<li>&#x76EE; <code>Division</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&#x306A;&#x304A;&#x3001;<strong>&#x6761;&#x540D;&#xFF08;&#x6761;&#x756A;&#x53F7;&#xFF09;&#x306F;&#x533A;&#x5206;&#x3092;&#x307E;&#x305F;&#x3044;&#x3067;&#x3082;&#x901A;&#x3057;&#x756A;&#x53F7;&#x304C;&#x632F;&#x3089;&#x308C;&#x307E;&#x3059;</strong>&#x3002;&#x3064;&#x307E;&#x308A;&#x3001;&#x7AE0;&#x3092;&#x307E;&#x305F;&#x3044;&#x3060;&#x3068;&#x3057;&#x3066;&#x3082;&#x3001;&#x3075;&#x305F;&#x305F;&#x3073;&#x7B2C;&#x4E00;&#x6761;&#x304B;&#x3089;&#x59CB;&#x3081;&#x308B;&#x3068;&#x3044;&#x3063;&#x305F;&#x3053;&#x3068;&#x306F;&#x3057;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<h2 id="%E6%B3%95%E4%BB%A4xml%E3%83%91%E3%83%BC%E3%82%B5%EF%BC%9A-ja-law-parser">&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#xFF1A; ja-law-parser</h2>
<p>&#x3055;&#x3066;&#x3001;XML&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x89E3;&#x6790;&#x3057;&#x3001;&#x306A;&#x3093;&#x3089;&#x304B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x51E6;&#x7406;&#x3092;&#x3059;&#x308B;&#x3068;&#x304D;&#x306B;&#x306F;&#x3001;&#x9069;&#x5F53;&#x306A;XML&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#xFF08;Python&#x306E;&#x5834;&#x5408;&#x306F; <a href="https://lxml.de/">lxml</a> &#x306A;&#x3069;&#xFF09;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x30D1;&#x30FC;&#x30B9;&#x3057;&#x3001;XPath&#x3067;&#x7279;&#x5B9A;&#x306E;&#x8981;&#x7D20;&#x3092;&#x53D6;&#x308A;&#x51FA;&#x3059;&#x3053;&#x3068;&#x306B;&#x306A;&#x308B;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3067;&#x3059;&#x304C;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306F;&#x524D;&#x8FF0;&#x306E;&#x901A;&#x308A;&#x3001;&#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30CA;&#x30EB;&#x306A;&#x8981;&#x7D20;&#x3092;&#x542B;&#x3080;&#x8907;&#x96D1;&#x306A;&#x69CB;&#x9020;&#x3092;&#x3082;&#x3063;&#x3066;&#x304A;&#x308A;&#x3001;&#x5834;&#x5408;&#x306B;&#x3088;&#x3063;&#x3066;&#x306F;&#x56F0;&#x96E3;&#x304C;&#x4F34;&#x3044;&#x307E;&#x3059;&#x3002;&#x76EE;&#x7684;&#x3068;&#x3059;&#x308B;&#x8981;&#x7D20;&#x3092;&#x53D6;&#x308A;&#x51FA;&#x3057;&#x305F;&#x308A;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x5FDC;&#x3058;&#x3066;&#x67D4;&#x8EDF;&#x306B;&#x30C7;&#x30FC;&#x30BF;&#x51E6;&#x7406;&#x3092;&#x3059;&#x308B;&#x306B;&#x306F;&#x3001;&#x8907;&#x96D1;&#x306A;XPath&#x3092;&#x7D44;&#x3093;&#x3060;&#x308A;&#x3001;&#x6DF1;&#x304F;&#x30CD;&#x30B9;&#x30C8;&#x3057;&#x305F;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x66F8;&#x304F;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308B;&#x304B;&#x3082;&#x3057;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002;&#x307E;&#x305F;&#x3001;&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x306E;&#x4ED5;&#x69D8;&#x306B;&#x3064;&#x3044;&#x3066;&#x9069;&#x5207;&#x306B;&#x7406;&#x89E3;&#x3057;&#x3066;&#x3044;&#x306A;&#x3044;&#x3068;&#x3001;&#x76EE;&#x7684;&#x306E;&#x8981;&#x7D20;&#x304C;&#x62BD;&#x51FA;&#x3067;&#x304D;&#x3066;&#x3044;&#x306A;&#x304B;&#x3063;&#x305F;&#x3001;&#x3068;&#x3044;&#x3063;&#x305F;&#x3053;&#x3068;&#x3082;&#x3042;&#x308A;&#x3048;&#x307E;&#x3059;&#x3002;</p>
<p>&#x305D;&#x3053;&#x3067;&#x3001;&#x4E0A;&#x8A18;&#x306E;&#x6CD5;&#x4EE4;&#x6A19;&#x6E96;XML&#x30B9;&#x30AD;&#x30FC;&#x30DE;&#x306B;&#x6E96;&#x62E0;&#x3059;&#x308B;&#x6CD5;&#x4EE4;XML&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3057;&#x3001;Python&#x306E;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#xFF08;<a href="https://docs.pydantic.dev/">pydantic</a>&#x306E;&#x30E2;&#x30C7;&#x30EB;&#xFF09;&#x306B;&#x5909;&#x63DB;&#x3059;&#x308B;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA; <a href="https://github.com/takuyaa/ja-law-parser">ja-law-parser</a> &#x3092;&#x3064;&#x304F;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x306E;&#x30D1;&#x30FC;&#x30B5;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x306F; <a href="https://github.com/takuyaa/ja-law-parser">GitHub</a> &#x3068; <a href="https://pypi.org/project/ja-law-parser/">PyPI</a> &#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x89E3;&#x6790;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x305F;&#x3068;&#x3048;&#x3070;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x5229;&#x70B9;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<ul>
<li>&#x660E;&#x793A;&#x7684;&#x306B;XML&#x3092;&#x6271;&#x308F;&#x305A;&#x306B;&#x3059;&#x307F;&#x3001;Python API&#x3060;&#x3051;&#x3067;&#x6C4E;&#x7528;&#x7684;&#x306A;&#x30C7;&#x30FC;&#x30BF;&#x51E6;&#x7406;&#x304C;&#x3067;&#x304D;&#x308B;
<ul>
<li>XML&#x3084;XPath&#x306E;&#x5B66;&#x7FD2;&#x30B3;&#x30B9;&#x30C8;&#x3092;&#x6255;&#x308F;&#x305A;&#x306B;&#x3059;&#x3080;</li>
<li>&#x5FC5;&#x8981;&#x306A;&#x69CB;&#x9020;&#x306E;&#x307F;&#x3092;&#x7C21;&#x5358;&#x306B;&#x62BD;&#x51FA;&#x3067;&#x304D;&#x308B;</li>
</ul>
</li>
<li>Pydantic&#x306E;&#x30E2;&#x30C7;&#x30EB;&#x306B;&#x5909;&#x63DB;&#x3055;&#x308C;&#x308B;&#x306E;&#x3067;&#x3001;<a href="https://docs.pydantic.dev/latest/api/base_model/">pydantic&#x306E;API</a>&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x3001;&#x30E2;&#x30C7;&#x30EB;&#x3092;JSON&#x306A;&#x3069;&#x306E;&#x4ED6;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x306B;&#x5909;&#x63DB;&#x3067;&#x304D;&#x308B;</li>
</ul>
<h3 id="ja-law-parser-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">ja-law-parser &#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</h3>
<p><code>pip</code> &#x3092;&#x4F7F;&#x3046;&#x5834;&#x5408;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3067;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-bash">pip install ja-law-parser
</code></pre>
<p><code>poetry</code> &#x306E;&#x5834;&#x5408;&#x306F;&#x4EE5;&#x4E0B;&#x3067;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-bash">poetry add ja-law-parser
</code></pre>
<h3 id="ja-law-parser-%E3%81%AE%E4%BD%BF%E3%81%84%E3%81%8B%E3%81%9F">ja-law-parser &#x306E;&#x4F7F;&#x3044;&#x304B;&#x305F;</h3>
<p><code>LawParser</code> &#x3092; import &#x3057;&#x3001; <code>parse</code> &#x95A2;&#x6570;&#x306B;XML&#x306E;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x30D1;&#x30B9;&#x3092;&#x4E0E;&#x3048;&#x308B;&#x3001;&#x3082;&#x3057;&#x304F;&#x306F; <code>parse_from</code> &#x95A2;&#x6570;&#x306B;XML&#x306E;&#x5185;&#x5BB9;&#xFF08;&#x6587;&#x5B57;&#x5217;&#x3082;&#x3057;&#x304F;&#x306F;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#xFF09;&#x3092;&#x4E0E;&#x3048;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x6CD5;&#x4EE4;&#xFF08; <code>Law</code> &#xFF09;&#x578B;&#x306E;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x304C;&#x8FD4;&#x3063;&#x3066;&#x304D;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306B;&#x306F;&#x4E0E;&#x3048;&#x305F;&#x6CD5;&#x4EE4;&#x306E;&#x60C5;&#x5831;&#x304C;&#x3059;&#x3079;&#x3066;&#x542B;&#x307E;&#x308C;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x81EA;&#x7531;&#x306B;&#x5C5E;&#x6027;&#xFF08;attributes&#xFF09;&#x306B;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3057;&#x305F;&#x308A;&#x3001;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x3092;&#x53D6;&#x308A;&#x51FA;&#x3057;&#x305F;&#x308A;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-python">from ja_law_parser.model import Article, Chapter, Law, Paragraph
from ja_law_parser.parser import LawParser

parser = LawParser()

law: Law = parser.parse(path=&quot;321CONSTITUTION_19470503_000000000000000.xml&quot;)
print(law.law_body.law_title.text)
# =&gt; &#x65E5;&#x672C;&#x56FD;&#x61B2;&#x6CD5;

chapter3: Chapter = law.law_body.main_provision.chapters[2]
print(chapter3.chapter_title.text)
# =&gt; &#x4E09;&#x7AE0;&#x3000;&#x56FD;&#x6C11;&#x306E;&#x6A29;&#x5229;&#x53CA;&#x3073;&#x7FA9;&#x52D9;

article11: Article = chapter3.articles[1]
print(article11.article_title.text)
# =&gt; &#x7B2C;&#x5341;&#x4E00;&#x6761;

paragraph11: Paragraph = article11.paragraphs[0]
print(paragraph11.paragraph_sentence.sentences[0].text)
# =&gt; &#x56FD;&#x6C11;&#x306F;&#x3001;&#x3059;&#x3079;&#x3066;&#x306E;&#x57FA;&#x672C;&#x7684;&#x4EBA;&#x6A29;&#x306E;&#x4EAB;&#x6709;&#x3092;&#x59A8;&#x3052;&#x3089;&#x308C;&#x306A;&#x3044;&#x3002;
print(paragraph11.paragraph_sentence.sentences[1].text)
# =&gt; &#x3053;&#x306E;&#x61B2;&#x6CD5;&#x304C;&#x56FD;&#x6C11;&#x306B;&#x4FDD;&#x969C;&#x3059;&#x308B;&#x57FA;&#x672C;&#x7684;&#x4EBA;&#x6A29;&#x306F;&#x3001;&#x4FB5;&#x3059;&#x3053;&#x3068;&#x306E;&#x3067;&#x304D;&#x306A;&#x3044;&#x6C38;&#x4E45;&#x306E;&#x6A29;&#x5229;&#x3068;&#x3057;&#x3066;&#x3001;&#x73FE;&#x5728;&#x53CA;&#x3073;&#x5C06;&#x6765;&#x306E;&#x56FD;&#x6C11;&#x306B;&#x4E0E;&#x3078;&#x3089;&#x308C;&#x308B;&#x3002;
</code></pre>
<h2 id="%E6%B3%95%E4%BB%A4%E3%81%AE%E6%A4%9C%E7%B4%A2">&#x6CD5;&#x4EE4;&#x306E;&#x691C;&#x7D22;</h2>
<p>&#x524D;&#x7F6E;&#x304D;&#x304C;&#x9577;&#x304F;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;Elasticsearch&#x306B;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3057;&#x3001;&#x691C;&#x7D22;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;<sup class="footnote-ref"><a href="#fn16" id="fnref16">[16]</a></sup>&#x3002;</p>
<h3 id="elasticsearch%E3%81%AE%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0">Elasticsearch&#x306E;&#x30DE;&#x30C3;&#x30D4;&#x30F3;&#x30B0;</h3>
<p>&#x4ECA;&#x56DE;&#x306F;&#x7C21;&#x5358;&#x306B;&#x3001;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#xFF08; <code>law_num</code> &#xFF09;&#x3001;&#x984C;&#x540D;&#xFF08; <code>law_title</code> &#xFF09;&#x3001;&#x5236;&#x5B9A;&#x6587;&#xFF08; <code>enact_statement</code> &#xFF09;&#x3001;&#x672C;&#x5247;&#x306E;&#x307F;&#x3092;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3057;&#x3066;&#x307F;&#x307E;&#x3059;&#x3002;Elasticsearch&#x306E;&#x30DE;&#x30C3;&#x30D4;&#x30F3;&#x30B0;&#x306F;&#x305F;&#x3068;&#x3048;&#x3070;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<pre><code class="language-json">{
  &quot;mappings&quot;: {
    &quot;properties&quot;: {
      &quot;law_num&quot;: {
        &quot;type&quot;: &quot;text&quot;,
        &quot;fields&quot;: {
          &quot;keyword&quot;: {
            &quot;type&quot;: &quot;keyword&quot;
          }
        }
      },
      &quot;law_title&quot;: {
        &quot;type&quot;: &quot;text&quot;,
        &quot;fields&quot;: {
          &quot;keyword&quot;: {
            &quot;type&quot;: &quot;keyword&quot;
          }
        }
      },
      &quot;enact_statement&quot;: {
        &quot;type&quot;: &quot;text&quot;,
        &quot;fields&quot;: {
          &quot;keyword&quot;: {
            &quot;type&quot;: &quot;keyword&quot;
          }
        }
      },
      &quot;main_provision&quot;: {
        &quot;type&quot;: &quot;text&quot;
      }
    }
  }
}
</code></pre>
<h3 id="%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%82%AF%E3%82%B7%E3%83%B3%E3%82%B0">&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30AF;&#x30B7;&#x30F3;&#x30B0;</h3>
<p>&#x3044;&#x3088;&#x3044;&#x3088;&#x6CD5;&#x4EE4;XML&#x30D1;&#x30FC;&#x30B5;&#x3067;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3057;&#x3001;Elasticsearch&#x306B;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x767B;&#x9332;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A; index_law &#x95A2;&#x6570;&#x3092;&#x66F8;&#x3044;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#xFF08;&#x5B9F;&#x969B;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x306F;GitHub&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x306B;&#x3042;&#x308A;&#x307E;&#x3059;&#xFF09;&#x3002;</p>
<pre><code class="language-python">from typing import Generator, Protocol

from elasticsearch import Elasticsearch

from ja_law_parser.model import Law
from ja_law_parser.parser import LawParser

def index_law() -&gt; None:
    parser = LawParser()
    client = Elasticsearch(hosts=&quot;http://localhost:9200/&quot;)

		# &#x6307;&#x5B9A;&#x3057;&#x305F;&#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C8;&#x30EA;&#x306B;&#x542B;&#x307E;&#x308C;&#x308B;XML&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x30A4;&#x30C6;&#x30EC;&#x30FC;&#x30C8;
    for file in Path(&quot;../data&quot;).glob(&quot;**/*.xml&quot;):
				# &#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x540D;&#x304B;&#x3089;&#x6CD5;&#x4EE4;&#x3092;&#x8B58;&#x5225;&#x3059;&#x308B;ID&#x3092;&#x62BD;&#x51FA;&#xFF08;&#x6CD5;&#x4EE4;ID_&#x6539;&#x6B63;&#x6CD5;&#x306E;&#x65BD;&#x884C;&#x65E5;_&#x6539;&#x6B63;&#x6CD5;&#x306E;&#x6CD5;&#x4EE4;ID&#xFF09;
        file_name = file.stem

				# &#x65BD;&#x884C;&#x65E5;&#x304C;&#x672A;&#x6765;&#x306E;&#x6CD5;&#x4EE4;&#x306F;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3057;&#x306A;&#x3044;
        enforce_date = date.fromisoformat(file_name.split(sep=&quot;_&quot;)[1])
        today = date.today()
        if today &lt; enforce_date:
            continue

				# XML&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3057;&#x3066;pydantic&#x306E;&#x30E2;&#x30C7;&#x30EB;&#x306B;&#x5909;&#x63DB;
        law: Law = parser.parse(path=file)

				# Elasticsearch&#x306B;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;
        client.index(
						index=&quot;ja_law&quot;,
            id=file.stem,
            document={
                &quot;law_num&quot;: law.law_num,
                &quot;law_title&quot;: text_or_none(law.law_body.law_title),
                &quot;enactg_statement&quot;: text_or_none(law.law_body.enact_statement),
                &quot;main_provision&quot;: texts_or_none(law.law_body.main_provision),
            },
        )

class Text(Protocol):
    @property
    def text(self) -&gt; str:
        ...

class Texts(Protocol):
    def texts(self) -&gt; Generator[str, None, None]:
        ...

def text_or_none(obj: Text | None) -&gt; str | None:
    if obj is None:
        return None
    return obj.text

def texts_or_none(obj: Texts | None) -&gt; str | None:
    if obj is None:
        return None
    return &quot; &quot;.join(obj.texts())
</code></pre>
<p>&#x4ECA;&#x56DE;&#x306F;&#x672C;&#x5247;&#x4EE5;&#x4E0B;&#x306E;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x3092;&#x307E;&#x308B;&#x307E;&#x308B;&#x691C;&#x7D22;&#x5BFE;&#x8C61;&#x3068;&#x3057;&#x3066;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3057;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x7279;&#x5B9A;&#x306E;&#x8981;&#x7D20;&#x306F;&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x3059;&#x308B;&#x306A;&#x3069;&#x306E;&#x5DE5;&#x592B;&#x3082;&#x3067;&#x304D;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<h3 id="%E6%B3%95%E4%BB%A4%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%A4%9C%E7%B4%A2">&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x691C;&#x7D22;</h3>
<p>&#x691C;&#x7D22;&#x5074;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x66F8;&#x3051;&#x307E;&#x3059;&#x3002;&#x4ECA;&#x56DE;&#x306F;&#x30B7;&#x30F3;&#x30D7;&#x30EB;&#x306B; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/8.11/query-dsl-multi-match-query.html">multi-match query</a> &#x3067;&#x8907;&#x6570;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#xFF08;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3001;&#x984C;&#x540D;&#x3001;&#x672C;&#x5247;&#xFF09;&#x3092;&#x5358;&#x306B;&#x30D5;&#x30EC;&#x30FC;&#x30BA;&#x691C;&#x7D22;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x3042;&#x305F;&#x308A;&#x3082;&#x8272;&#x3005;&#x5DE5;&#x592B;&#x306E;&#x4F59;&#x5730;&#x304C;&#x3042;&#x308A;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<pre><code class="language-python">from elastic_transport import ObjectApiResponse
from elasticsearch import Elasticsearch

def search_law(keyword: str, size: int) -&gt; ObjectApiResponse[Any]:
    client = Elasticsearch(hosts=&quot;http://localhost:9200/&quot;)
    return client.search(
        index=&quot;ja_law&quot;,
        query={
            &quot;multi_match&quot;: {
                &quot;query&quot;: keyword,
                &quot;type&quot;: &quot;phrase&quot;,
                &quot;fields&quot;: [&quot;law_num&quot;, &quot;law_title&quot;, &quot;main_provision&quot;],
            }
        },
        size=size,
        fields=[&quot;law_num.keyword&quot;, &quot;law_title.keyword&quot;],
        highlight={
            &quot;fields&quot;: {&quot;*&quot;: {&quot;pre_tags&quot;: [&quot; **&quot;], &quot;post_tags&quot;: [&quot;** &quot;]}},
            &quot;number_of_fragments&quot;: 1,
        },
    )
</code></pre>
<h3 id="%E6%A4%9C%E7%B4%A2ui">&#x691C;&#x7D22;UI</h3>
<p>&#x4ECA;&#x56DE;&#x306F;UI&#x3068;&#x3057;&#x3066; <a href="https://streamlit.io/">streamlit</a> &#x3092;&#x4F7F;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x30D5;&#x30A9;&#x30FC;&#x30E0;&#x306B;&#x30AF;&#x30A8;&#x30EA;&#x3092;&#x5165;&#x529B;&#x3057;&#x3066;Enter&#x30AD;&#x30FC;&#x3092;&#x62BC;&#x3059;&#x3068;&#x691C;&#x7D22;&#x7D50;&#x679C;&#x304C;&#x8868;&#x793A;&#x3055;&#x308C;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x3060;&#x3051;&#x306E;&#x30B7;&#x30F3;&#x30D7;&#x30EB;&#x306A;UI&#x3067;&#x3059;&#x3002;</p>
<pre><code class="language-python">import streamlit as st

from japanese_law_search.search import search_law

st.title(&quot;Japanese Law Search&quot;)

# &#x30AF;&#x30A8;&#x30EA;&#x306E;&#x5165;&#x529B;&#x30D5;&#x30A9;&#x30FC;&#x30E0;
query = st.text_input(&quot;Query&quot;, value=&quot;&quot;)
if query:
		# &#x691C;&#x7D22;&#x3092;&#x5B9F;&#x884C;&#x3057;&#x3066; top-20 &#x3092;&#x53D6;&#x5F97;
    res = search_law(index_name=&quot;ja_law&quot;, keyword=query, size=20)
    st.write(f&quot;{res.total_hits} hits&quot;)
    for doc in res.docs:
        c = st.container(border=True)
				# &#x984C;&#x540D;&#x3068;&#x6CD5;&#x4EE4;&#x756A;&#x53F7;&#x3001;e-Gov&#x3078;&#x306E;&#x30EA;&#x30F3;&#x30AF;&#x3092;&#x8868;&#x793A;
        c.markdown(
            f&quot;[{doc.law_title}&#xFF08;{doc.law_num}&#xFF09;](https://elaws.e-gov.go.jp/document?lawid={doc.id})&quot;
        )
				# &#x30D2;&#x30C3;&#x30C8;&#x3057;&#x305F;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x306E;&#x30CF;&#x30A4;&#x30E9;&#x30A4;&#x30C8;&#x3092;&#x8868;&#x793A;
        c.caption(
            &quot;&quot;.join([&quot;&quot;.join(highlites[0]) for highlites in doc.highlight.values()])
        )
</code></pre>
<p>&#x8981;&#x7D20;&#x304C;&#x5C11;&#x306A;&#x3044;&#x3068;&#x306F;&#x3044;&#x3048;&#x3001;&#x3053;&#x308C;&#x3060;&#x3051;&#x306E;&#x30B3;&#x30FC;&#x30C9;&#x3067;&#x7C21;&#x5358;&#x306B;&#x691C;&#x7D22;&#x753B;&#x9762;&#x306E;Web UI&#x304C;&#x4F5C;&#x6210;&#x3067;&#x304D;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x3002;&#x5B9F;&#x969B;&#x306B;&#x691C;&#x7D22;&#x3057;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x3053;&#x3093;&#x306A;&#x611F;&#x3058;&#x3067;&#x691C;&#x7D22;&#x7D50;&#x679C;&#x304C;&#x8868;&#x793A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p><img src="https://takuya-a.net/blog/content/images/2023/12/Untitled--4-.png" alt="&#x6CD5;&#x5F8B;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x691C;&#x7D22;" loading="lazy"></p>
<p>&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x6570;&#x304C;&#x5C11;&#x306A;&#x304F;&#x30AF;&#x30A8;&#x30EA;&#x3082;&#x5358;&#x7D14;&#x306A;&#x306E;&#x3067;&#x3001;&#x7D50;&#x679C;&#x306F;&#x77AC;&#x6642;&#x306B;&#x8FD4;&#x3063;&#x3066;&#x304D;&#x307E;&#x3059;&#x3002;&#x30CF;&#x30A4;&#x30E9;&#x30A4;&#x30C8;&#x304C;&#x3042;&#x308B;&#x3068;&#x3001;&#x3069;&#x306E;&#x6761;&#x6587;&#x306B;&#x30D2;&#x30C3;&#x30C8;&#x3057;&#x305F;&#x306E;&#x304B;&#x308F;&#x304B;&#x308A;&#x3084;&#x3059;&#x304F;&#x3066;&#x3044;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;&#x305F;&#x3060;&#x3001;&#x30D2;&#x30C3;&#x30C8;&#x3057;&#x305F;&#x6761;&#x756A;&#x53F7;&#x3068;&#x3001;&#x6761;&#x6587;&#x306E;&#x5168;&#x6587;&#x304C;&#x8868;&#x793A;&#x3055;&#x308C;&#x308B;&#x3068;&#x3001;&#x3088;&#x308A;&#x4F7F;&#x3044;&#x52DD;&#x624B;&#x304C;&#x3088;&#x304F;&#x306A;&#x308A;&#x305D;&#x3046;&#x306A;&#x6C17;&#x304C;&#x3057;&#x307E;&#x3059;<sup class="footnote-ref"><a href="#fn17" id="fnref17">[17]</a></sup>&#x3002;</p>
<h2 id="%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</h2>
<p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x65E5;&#x672C;&#x306E;&#x6CD5;&#x4EE4;&#x5236;&#x5EA6;&#x306B;&#x3064;&#x3044;&#x3066;&#x6982;&#x89B3;&#x3057;&#x305F;&#x3042;&#x3068;&#x3001;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x304C;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x308B;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x5F62;&#x5F0F;&#x3092;&#x89E3;&#x8AAC;&#x3057;&#x3001;&#x305D;&#x308C;&#x3092;&#x30D1;&#x30FC;&#x30B9;&#x3059;&#x308B;Python&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3092;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x3055;&#x3089;&#x306B;&#x3001;Elasticsearch&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3001;&#x5B9F;&#x969B;&#x306B;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3068;&#x691C;&#x7D22;&#x3092;&#x5B9F;&#x88C5;&#x3059;&#x308B;&#x30B5;&#x30F3;&#x30D7;&#x30EB;&#x3092;&#x898B;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x4ECA;&#x56DE;&#x306F;&#x3068;&#x308A;&#x3042;&#x3048;&#x305A;&#x52D5;&#x304F;&#x30B5;&#x30F3;&#x30D7;&#x30EB;&#x3092;&#x96D1;&#x306B;&#x3064;&#x304F;&#x308A;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x30DE;&#x30C3;&#x30D4;&#x30F3;&#x30B0;&#x3084;&#x30AF;&#x30A8;&#x30EA;&#x3001;&#x8A00;&#x8A9E;&#x89E3;&#x6790;&#xFF08;analyzer&#xFF09;&#x306A;&#x3069;&#x3092;&#x6539;&#x5584;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x3082;&#x3063;&#x3068;&#x3088;&#x3044;&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x304C;&#x3064;&#x304F;&#x308C;&#x308B;&#x306E;&#x3067;&#x306F;&#x306A;&#x3044;&#x304B;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x307F;&#x306A;&#x3055;&#x3093;&#x304C;&#x6CD5;&#x5F8B;&#x3084;&#x6CD5;&#x4EE4;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x5C11;&#x3057;&#x3067;&#x3082;&#x8EAB;&#x8FD1;&#x306B;&#x611F;&#x3058;&#x3089;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F;&#x306A;&#x3089;&#x5E78;&#x3044;&#x3067;&#x3059;&#x3002;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>2021&#x5E74;&#x3088;&#x308A;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#x306F;&#x7DCF;&#x52D9;&#x7701;&#x304B;&#x3089;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x5E81;&#x306B;&#x79FB;&#x7BA1;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002; <a href="https://www.e-gov.go.jp/news/2021-09-02t1914240900_715.html">https://www.e-gov.go.jp/news/2021-09-02t1914240900_715.html</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p>&#x6CD5;&#x5F8B; - Wikipedia <a href="https://ja.wikipedia.org/wiki/%E6%B3%95%E5%BE%8B">https://ja.wikipedia.org/wiki/&#x6CD5;&#x5F8B;</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p>&#x6CD5;&#x5F8B;&#x304C;&#x3067;&#x304D;&#x308B;&#x307E;&#x3067;&#xFF08;&#x5185;&#x95A3;&#x6CD5;&#x5236;&#x5C40;&#xFF09; <a href="https://www.clb.go.jp/recent-laws/process/">https://www.clb.go.jp/recent-laws/process/</a> <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn4" class="footnote-item"><p>&#x65E5;&#x672C;-&#x6CD5;&#x4EE4;&#x306E;&#x8ABF;&#x3079;&#x65B9; - &#x30EA;&#x30B5;&#x30FC;&#x30C1;&#x30FB;&#x30CA;&#x30D3;&#xFF08;&#x56FD;&#x7ACB;&#x56FD;&#x4F1A;&#x56F3;&#x66F8;&#x9928;&#xFF09; <a href="https://rnavi.ndl.go.jp/jp/guides/japan-hourei-research.html">https://rnavi.ndl.go.jp/jp/guides/japan-hourei-research.html</a> <a href="#fnref4" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn5" class="footnote-item"><p>&#x3044;&#x3057;&#x304B;&#x308F; &#x307E;&#x308A;&#x3053;; &#x85E4;&#x4E95; &#x5EB7;&#x5B50;; &#x6751;&#x4E95; &#x306E;&#x308A;&#x5B50;. &#x30EA;&#x30FC;&#x30AC;&#x30EB;&#x30FB;&#x30EA;&#x30B5;&#x30FC;&#x30C1; . &#x65E5;&#x672C;&#x8A55;&#x8AD6;&#x793E;. <a href="https://www.nippyo.co.jp/shop/book/7055.html">https://www.nippyo.co.jp/shop/book/7055.html</a> <a href="#fnref5" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref5:1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn6" class="footnote-item"><p>&#x6CD5;&#x4EE4; - Wikipedia <a href="https://ja.wikipedia.org/wiki/%E6%B3%95%E4%BB%A4">https://ja.wikipedia.org/wiki/&#x6CD5;&#x4EE4;</a> <a href="#fnref6" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn7" class="footnote-item"><p><a href="https://www.mirai-inc.jp/support/roppo/basic-knowledge.pdf">&#x6CD5;&#x5F8B;&#x7B49;&#x3092;&#x8AAD;&#x307F;&#x89E3;&#x304F;&#x3046;&#x3048;&#x3067;&#x5FC5;&#x8981;&#x306A;&#x57FA;&#x790E;&#x77E5;&#x8B58;&#xFF08;&#x682A;&#x5F0F;&#x4F1A;&#x793E;&#x307F;&#x3089;&#x3044;&#xFF09;</a> <a href="#fnref7" class="footnote-backref">&#x21A9;&#xFE0E;</a> <a href="#fnref7:1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn8" class="footnote-item"><p>&#x5168;&#x90E8;&#x6539;&#x6B63;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x3001;&#x5FC5;&#x8981;&#x306B;&#x5FDC;&#x3058;&#x3066;&#x6CD5;&#x4EE4;&#x306E;&#x984C;&#x540D;&#x304C;&#x5909;&#x3048;&#x308B;&#x3053;&#x3068;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;<a href="https://elaws.e-gov.go.jp/document?lawid=423AC1000000078_20230101_430AC1000000056">&#x30B9;&#x30DD;&#x30FC;&#x30C4;&#x57FA;&#x672C;&#x6CD5;&#xFF08;&#x5E73;&#x6210;&#x4E8C;&#x5341;&#x4E09;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x4E03;&#x5341;&#x516B;&#x53F7;&#xFF09;</a>&#x306F;&#x3001;&#x30B9;&#x30DD;&#x30FC;&#x30C4;&#x632F;&#x8208;&#x6CD5;&#xFF08;&#x662D;&#x548C;&#x4E09;&#x5341;&#x516D;&#x5E74;&#x6CD5;&#x5F8B;&#x7B2C;&#x767E;&#x56DB;&#x5341;&#x4E00;&#x53F7;&#xFF09;&#x304C;&#x5168;&#x90E8;&#x6539;&#x6B63;&#x3055;&#x308C;&#x305F;&#x6CD5;&#x4EE4;&#x3067;&#x3059;&#x3002; <a href="https://houseikyoku.sangiin.go.jp/column/column039.htm">https://houseikyoku.sangiin.go.jp/column/column039.htm</a> <a href="#fnref8" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn9" class="footnote-item"><p><a href="https://houseikyoku.sangiin.go.jp/column/column039.htm">https://houseikyoku.sangiin.go.jp/column/column039.htm</a> <a href="#fnref9" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn10" class="footnote-item"><p>DB&#x767B;&#x9332;&#x6CD5;&#x4EE4;&#x6570;&#xFF08;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#xFF09; <a href="https://elaws.e-gov.go.jp/registdb/">https://elaws.e-gov.go.jp/registdb/</a> <a href="#fnref10" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn11" class="footnote-item"><p>&#x30D8;&#x30EB;&#x30D7; - e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22; <a href="https://elaws.e-gov.go.jp/help/">https://elaws.e-gov.go.jp/help/</a> <a href="#fnref11" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn12" class="footnote-item"><p>&#x6CD5;&#x4EE4;ID&#x306B;&#x3064;&#x3044;&#x3066;&#xFF08;e-Gov&#x6CD5;&#x4EE4;&#x691C;&#x7D22;&#xFF09; <a href="https://elaws.e-gov.go.jp/file/LawIdNamingConvention.pdf">https://elaws.e-gov.go.jp/file/LawIdNamingConvention.pdf</a> <a href="#fnref12" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn13" class="footnote-item"><p><a href="https://houseikyoku.sangiin.go.jp/column/column010.htm">https://houseikyoku.sangiin.go.jp/column/column010.htm</a> <a href="#fnref13" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn14" class="footnote-item"><p>&#x4F8B;&#x5916;&#x3068;&#x3057;&#x3066;&#x3001;&#x6CD5;&#x4EE4;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x306A;&#x304B;&#x306B;&#x306F;&#x3001;&#x6761;&#xFF08; <code>Article</code> &#xFF09;&#x304B;&#x3089;&#x59CB;&#x307E;&#x3089;&#x305A;&#x3001;&#x9805;&#xFF08; <code>Paragraph</code> &#xFF09;&#x304B;&#x3089;&#x59CB;&#x307E;&#x308B;&#x6CD5;&#x4EE4;&#x3082;&#x3042;&#x308B;&#x305F;&#x3081;&#x3001;&#x6CE8;&#x610F;&#x304C;&#x5FC5;&#x8981;&#x3067;&#x3059;&#x3002;&#x4F8B;&#xFF1A;<a href="https://elaws.e-gov.go.jp/document?lawid=503M60000008044_20210401_000000000000000">&#x6709;&#x660E;&#x6D77;&#x53CA;&#x3073;&#x516B;&#x4EE3;&#x6D77;&#x7B49;&#x3092;&#x518D;&#x751F;&#x3059;&#x308B;&#x305F;&#x3081;&#x306E;&#x7279;&#x5225;&#x63AA;&#x7F6E;&#x306B;&#x95A2;&#x3059;&#x308B;&#x6CD5;&#x5F8B;&#x7B2C;&#x5341;&#x4E00;&#x6761;&#x7B2C;&#x4E00;&#x9805;&#x306B;&#x898F;&#x5B9A;&#x3059;&#x308B;&#x7279;&#x5B9A;&#x4E8B;&#x696D;&#x3092;&#x5B9A;&#x3081;&#x308B;&#x7701;&#x4EE4;&#xFF08;&#x4EE4;&#x548C;&#x4E09;&#x5E74;&#x7DCF;&#x52D9;&#x7701;&#x4EE4;&#x7B2C;&#x56DB;&#x5341;&#x56DB;&#x53F7;&#xFF09;</a> <a href="#fnref14" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn15" class="footnote-item"><p>&#x6CD5;&#x4EE4;&#x3068;&#x306F;&#xFF1F;&#x6CD5;&#x5F8B;&#x3068;&#x306E;&#x9055;&#x3044;&#x3084;&#x8AAD;&#x307F;&#x65B9;&#x306E;&#x30B3;&#x30C4;&#x3092;&#x89E3;&#x8AAC;&#xFF01; - &#x5951;&#x7D04;&#x30A6;&#x30A9;&#x30C3;&#x30C1; <a href="https://keiyaku-watch.jp/media/kisochishiki/hourei_yomikata/">https://keiyaku-watch.jp/media/kisochishiki/hourei_yomikata/</a> <a href="#fnref15" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn16" class="footnote-item"><p><a href="https://ai.google.dev/docs/embeddings_guide">Gemini</a>&#x306A;&#x3069;&#x3067;&#x6761;&#x6587;&#x306E;&#x6587;&#x57CB;&#x3081;&#x8FBC;&#x307F;&#x3092;&#x8A08;&#x7B97;&#x3057;&#x3001;Elasticsearch&#x306E;<a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html">kNN search</a>&#x3067;&#x691C;&#x7D22;&#x3059;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x306E;&#x3082;&#x8A66;&#x3057;&#x3066;&#x307F;&#x305F;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x6642;&#x9593;&#x304C;&#x8DB3;&#x308A;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x4ECA;&#x5F8C;&#x306E;&#x5BBF;&#x984C;&#x3068;&#x3057;&#x307E;&#x3059;&#x3002; <a href="#fnref16" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn17" class="footnote-item"><p>&#x3082;&#x3057;&#x304B;&#x3057;&#x305F;&#x3089;&#x3001;&#x6761;&#x306E;&#x5358;&#x4F4D;&#x3092;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3068;&#x3057;&#x3066;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3057;&#x3001;&#x30D1;&#x30C3;&#x30BB;&#x30FC;&#x30B8;&#x691C;&#x7D22;&#x306E;&#x3088;&#x3046;&#x306A;&#x5F62;&#x306B;&#x3059;&#x308B;&#x306E;&#x304C;&#x3044;&#x3044;&#x306E;&#x304B;&#x3082;&#x3057;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002;&#x30B9;&#x30B3;&#x30A2;&#x30EA;&#x30F3;&#x30B0;&#x306F;&#x96E3;&#x3057;&#x304F;&#x306A;&#x308A;&#x305D;&#x3046;&#x3067;&#x3059;&#x304C;&#x3002; <a href="#fnref17" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[2022振り返り]]></title><description><![CDATA[<p>&#x666E;&#x6BB5;&#x3001;&#x3053;&#x3046;&#x3044;&#x3063;&#x305F;&#x30D6;&#x30ED;&#x30B0;&#x306F;&#x3042;&#x307E;&#x308A;&#x66F8;&#x304B;&#x306A;&#x3044;&#x304C;&#x3001;&#x3044;&#x3044;&#x6A5F;&#x4F1A;&#x3060;&#x3057;&#x3001;&#x66F8;&#x304D;&#x6B8B;&#x3057;&#x3066;&#x3042;&#x308B;&#x3068;&#x3001;&#x306E;&#x3061;&#x306E;&#x3061;&#x898B;&#x8FD4;&#x3059;&#x306E;&#x306B;&#x4FBF;&#x5229;&#x304B;&#x306A;</p>]]></description><link>https://takuya-a.net/blog/2022-look-back/</link><guid isPermaLink="false">63ae55371e17720001e9f511</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Fri, 30 Dec 2022 08:20:13 GMT</pubDate><content:encoded><![CDATA[<p>&#x666E;&#x6BB5;&#x3001;&#x3053;&#x3046;&#x3044;&#x3063;&#x305F;&#x30D6;&#x30ED;&#x30B0;&#x306F;&#x3042;&#x307E;&#x308A;&#x66F8;&#x304B;&#x306A;&#x3044;&#x304C;&#x3001;&#x3044;&#x3044;&#x6A5F;&#x4F1A;&#x3060;&#x3057;&#x3001;&#x66F8;&#x304D;&#x6B8B;&#x3057;&#x3066;&#x3042;&#x308B;&#x3068;&#x3001;&#x306E;&#x3061;&#x306E;&#x3061;&#x898B;&#x8FD4;&#x3059;&#x306E;&#x306B;&#x4FBF;&#x5229;&#x304B;&#x306A;&#x3068;&#x601D;&#x3044;&#x3001;&#x4ECA;&#x5E74;&#x3084;&#x3063;&#x305F;&#x3053;&#x3068;&#x3092;&#x66F8;&#x304D;&#x51FA;&#x3057;&#x3066;&#x307F;&#x308B;&#x3002;&#x307B;&#x3068;&#x3093;&#x3069;&#x8DA3;&#x5473;&#x306E;&#x8A71;&#x3067;&#x3059;&#x3002;</p><!--kg-card-begin: markdown--><ul>
<li><a href="#%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C">&#x96FB;&#x5B50;&#x5DE5;&#x4F5C;</a></li>
<li><a href="#%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0">&#x7AF6;&#x6280;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;</a></li>
<li><a href="#%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3">&#x30D1;&#x30BD;&#x30B3;&#x30F3;</a></li>
<li><a href="#%E3%82%B2%E3%83%BC%E3%83%A0">&#x30B2;&#x30FC;&#x30E0;</a></li>
<li><a href="#%E7%99%BB%E5%B1%B1">&#x767B;&#x5C71;</a></li>
<li><a href="#%E3%82%B3%E3%83%BC%E3%83%92%E3%83%BC">&#x30B3;&#x30FC;&#x30D2;&#x30FC;</a></li>
<li><a href="#%E8%AB%96%E6%96%87%E8%AA%AD%E3%81%BF">&#x8AD6;&#x6587;&#x8AAD;&#x307F;</a></li>
<li><a href="#%E4%BB%95%E4%BA%8B">&#x4ED5;&#x4E8B;</a></li>
<li><a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</a></li>
</ul>
<!--kg-card-end: markdown--><h2 id="%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C">&#x96FB;&#x5B50;&#x5DE5;&#x4F5C;</h2><p>&#x53BB;&#x5E74;&#x3001;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x7406;&#x8AD6;&#x3068;&#x5B9F;&#x88C5;&#x3068;&#x3044;&#x3046;&#x672C;&#x3092;&#x3059;&#x3053;&#x3057;&#x8AAD;&#x3093;&#x3067;&#x30CF;&#x30FC;&#x30C9;&#x30A6;&#x30A7;&#x30A2;&#x3068;&#x3044;&#x3046;&#x304B;&#x96FB;&#x5B50;&#x56DE;&#x8DEF;&#x65B9;&#x9762;&#x306B;&#x8208;&#x5473;&#x304C;&#x6E67;&#x304D;&#x3001;&#x5E74;&#x672B;&#x306B;&#x30D6;&#x30EC;&#x30C3;&#x30C9;&#x30DC;&#x30FC;&#x30C9;&#x3084;&#x3089;&#x62B5;&#x6297;&#x3084;&#x3089;&#x3092;&#x8CB7;&#x3044;&#x63C3;&#x3048;&#x3066;&#x3001;LED&#x5149;&#x3089;&#x305B;&#x3066;&#x904A;&#x3093;&#x3060;&#x308A;&#x3057;&#x3066;&#x3044;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x96FB;&#x5B50;&#x5DE5;&#x4F5C;&#x5165;&#x9580;&#x3059;&#x308B; <a href="https://t.co/F3MQLZiFlS">pic.twitter.com/F3MQLZiFlS</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1471117651431034880?ref_src=twsrc%5Etfw">December 15, 2021</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">My first project <a href="https://t.co/vUo1ZI3ao3">pic.twitter.com/vUo1ZI3ao3</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1471141134881951752?ref_src=twsrc%5Etfw">December 15, 2021</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x305D;&#x3053;&#x304B;&#x3089;LTSpice&#x3092;&#x52C9;&#x5F37;&#x3057;&#x305F;&#x308A;&#x3057;&#x3066;&#x3001;&#x30B7;&#x30E5;&#x30DF;&#x30C3;&#x30C8;&#x30C8;&#x30EA;&#x30AC;&#x56DE;&#x8DEF;&#x3068;&#x3001;&#x305D;&#x308C;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x30AA;&#x30F3;&#x30AA;&#x30D5;&#x56DE;&#x8DEF;&#x3092;&#x7D44;&#x3081;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x30B7;&#x30E5;&#x30DF;&#x30C3;&#x30C8;&#x30C8;&#x30EA;&#x30AC;&#x5B9F;&#x969B;&#x306B;&#x7D44;&#x3093;&#x3060;&#x3002;&#x610F;&#x56F3;&#x901A;&#x308A;&#x306E;&#x6319;&#x52D5;&#x3057;&#x3066;&#x308B;&#x304B;&#x3069;&#x3046;&#x304B;&#x306F;&#x30AA;&#x30B7;&#x30ED;&#x30B9;&#x30B3;&#x30FC;&#x30D7;&#x306A;&#x3044;&#x3068;&#x308F;&#x304B;&#x3089;&#x306A;&#x3055;&#x305D;&#x3046; <a href="https://t.co/4NsetMyYi1">pic.twitter.com/4NsetMyYi1</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1477211508535074818?ref_src=twsrc%5Etfw">January 1, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x30ED;&#x30FC;&#x30D1;&#x30B9;&#x30D5;&#x30A3;&#x30EB;&#x30BF;+&#x30B7;&#x30E5;&#x30DF;&#x30C3;&#x30C8;&#x30C8;&#x30EA;&#x30AC;&#x306B;&#x3088;&#x308B;&#x30C1;&#x30E3;&#x30BF;&#x30EA;&#x30F3;&#x30B0;&#x9632;&#x6B62;&#x3064;&#x304D;&#x30AA;&#x30F3;&#x30AA;&#x30D5;&#x56DE;&#x8DEF;&#x3002;&#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF;&#x306E;&#x8ABF;&#x6574;&#x304C;&#x5927;&#x5909;&#x3060;&#x3063;&#x305F;&#x2026; <a href="https://t.co/S8t3PxG1Bx">pic.twitter.com/S8t3PxG1Bx</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1480437727447625729?ref_src=twsrc%5Etfw">January 10, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x305D;&#x308C;&#x304B;&#x3089;&#x3001;&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x57FA;&#x672C;&#x7684;&#x306A;&#x8AD6;&#x7406;&#x56DE;&#x8DEF;&#x3092;&#x30C7;&#x30A3;&#x30B9;&#x30AF;&#x30EA;&#x30FC;&#x30C8;&#x306E;<a href="https://www.notion.so/MOSFET-65482cf9e81b40cca89ecfe2eee91217">MOSFET</a>&#x3060;&#x3051;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x5B9F;&#x88C5;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x306E;&#x306B;&#x30C1;&#x30E3;&#x30EC;&#x30F3;&#x30B8;&#x3057;&#x305F;&#x3002;&#x6700;&#x7D42;&#x7684;&#x306B;&#x306F;NOT, NAND, NOR, XOR, XNOR&#x3001;D&#x30D5;&#x30EA;&#x30C3;&#x30D7;&#x30D5;&#x30ED;&#x30C3;&#x30D7;&#x3001;&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30EC;&#x30AF;&#x30B5;&#x3001;&#x534A;&#x52A0;&#x7B97;&#x5668;&#x30FB;&#x5168;&#x52A0;&#x7B97;&#x5668;&#x3042;&#x305F;&#x308A;&#x307E;&#x3067;&#x306F;MOSFET&#x3060;&#x3051;&#x3067;&#x5B9F;&#x88C5;&#x3067;&#x304D;&#x308B;&#x3053;&#x3068;&#x3092;&#x78BA;&#x8A8D;&#x3057;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x975E;&#x540C;&#x671F;&#x30EA;&#x30BB;&#x30C3;&#x30C8;&#x3064;&#x304D;D&#x30D5;&#x30EA;&#x30C3;&#x30D7;&#x30D5;&#x30ED;&#x30C3;&#x30D7;&#x3067;&#x304D;&#x305F;&#x3042;&#x3042;&#x3042;&#xFF01;&#x30C8;&#x30E9;&#x30F3;&#x30B9;&#x30D5;&#x30A1;&#x30FC;&#x30B2;&#x30FC;&#x30C8;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x308A;&#x3057;&#x3066;&#x30C8;&#x30E9;&#x30F3;&#x30B8;&#x30B9;&#x30BF;&#x6570;&#x3059;&#x3053;&#x3057;&#x6E1B;&#x3089;&#x305B;&#x305F;&#x3051;&#x3069;&#x3001;28&#x77F3;&#x4F7F;&#x3063;&#x3066;1&#x30D3;&#x30C3;&#x30C8;&#x4FDD;&#x5B58;&#x3067;&#x304D;&#x308B;&#x3060;&#x3051;&#x306E;&#x56DE;&#x8DEF; <a href="https://t.co/KS7SJcn9bC">pic.twitter.com/KS7SJcn9bC</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1485208291089461249?ref_src=twsrc%5Etfw">January 23, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x82B8;&#x8853;&#x70B9;&#x306E;&#x9AD8;&#x305D;&#x3046;&#x306A;4ch&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30EC;&#x30AF;&#x30B5;&#x3067;&#x304D;&#x305F;&#x304B;&#x3089;&#x898B;&#x3066; <a href="https://t.co/gi71DMYYgG">pic.twitter.com/gi71DMYYgG</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1486331242455134208?ref_src=twsrc%5Etfw">January 26, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x3042;&#x3068;&#x306F;&#x4E26;&#x884C;&#x3057;&#x3066;<a href="https://book.mynavi.jp/manatee/books/detail/id=114368">CPU&#x306E;&#x5275;&#x308A;&#x65B9;</a>&#x3068;&#x3044;&#x3046;&#x66F8;&#x7C4D;&#x3092;&#x8AAD;&#x3093;&#x3067;&#x3001;&#x7C21;&#x6613;&#x7684;&#x306A;&#x3082;&#x306E;&#x3067;&#x306F;&#x3042;&#x308B;&#x304C;&#x3001;CPU&#x306E;&#x69CB;&#x6210;&#x8981;&#x7D20;&#x304C;&#x7D30;&#x90E8;&#x306B;&#x6E21;&#x3063;&#x3066;&#x7406;&#x89E3;&#x3067;&#x304D;&#x305F;&#x306E;&#x306F;&#x3088;&#x304B;&#x3063;&#x305F;&#x3002;</p><p>&#x3053;&#x306E;&#x672C;&#x306B;&#x767B;&#x5834;&#x3059;&#x308B;TD4&#x3068;&#x3044;&#x3046;&#x30B7;&#x30F3;&#x30D7;&#x30EB;&#x306A;4bit CPU&#x3092;&#x30C7;&#x30A3;&#x30B9;&#x30AF;&#x30EA;&#x30FC;&#x30C8;&#x90E8;&#x54C1;&#x3060;&#x3051;&#x3067;&#x5B9F;&#x88C5;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x306E;&#x3092;&#x3084;&#x3063;&#x3066;&#x307F;&#x305F;&#x304B;&#x3063;&#x305F;&#x304C;&#x3001;&#x6642;&#x9593;&#x3068;&#x304A;&#x91D1;&#x304C;&#x304B;&#x304B;&#x308A;&#x3059;&#x304E;&#x308B;&#x3068;&#x3044;&#x3046;&#x306E;&#x3082;&#x3042;&#x3063;&#x3066;&#x65AD;&#x5FF5;&#xFF08;&#x4E2D;&#x65AD;&#xFF09;&#x3057;&#x3066;&#x3057;&#x307E;&#x3063;&#x305F;&#x3002;&#x305D;&#x308C;&#x306B;&#x5FC5;&#x8981;&#x306A;&#x30B3;&#x30F3;&#x30DD;&#x30FC;&#x30CD;&#x30F3;&#x30C8;&#x306F;&#x4E00;&#x901A;&#x308A;&#x5B9F;&#x88C5;&#x3067;&#x304D;&#x305F;&#x306E;&#x3067;&#x3001;&#x3067;&#x304D;&#x305D;&#x3046;&#x3068;&#x3044;&#x3046;&#x306E;&#x304C;&#x308F;&#x304B;&#x3063;&#x305F;&#x3068;&#x3053;&#x308D;&#x3067;&#x6E80;&#x8DB3;&#x3057;&#x3066;&#x3057;&#x307E;&#x3063;&#x3066;&#x3044;&#x308B;&#x72B6;&#x614B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://book.mynavi.jp/manatee/books/detail/id=114368"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CPU&#x306E;&#x5275;&#x308A;&#x304B;&#x305F;|Tech Book Zone Manatee</div><div class="kg-bookmark-description">&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x95A2;&#x9023;&#x306E;&#x96FB;&#x5B50;&#x66F8;&#x7C4D;&#x304C;&#x63C3;&#x3046;&#x5C02;&#x9580;&#x30B9;&#x30C8;&#x30A2;&#x300E;Tech Book Zone Manatee&#x300F;&#xFF08;&#x30C6;&#x30C3;&#x30AF;&#x30D6;&#x30C3;&#x30AF;&#x30BE;&#x30FC;&#x30F3; &#x30DE;&#x30CA;&#x30C6;&#x30A3;&#xFF09;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://book.mynavi.jp/files/user/img/manatee/common/manatee_logo_icon.png" alt><span class="kg-bookmark-author">&#x30DE;&#x30CA;&#x30C6;&#x30A3;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://book.mynavi.jp/files/topics/114368_ext_06_0.jpg" alt></div></a></figure><p>&#x95A2;&#x9023;&#x66F8;&#x7C4D;&#x3067;&#x8AAD;&#x3093;&#x3060;&#x3082;&#x306E;&#x3060;&#x3068;&#x3001;<a href="https://www.oreilly.co.jp/books/9784873117126/">&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x7406;&#x8AD6;&#x3068;&#x5B9F;&#x88C5;</a>&#x3068;&#x3044;&#x3046;&#x672C;&#x3082;&#x3042;&#x308B;&#x304C;&#x3001;&#x3053;&#x3061;&#x3089;&#x306F;&#x30B7;&#x30DF;&#x30E5;&#x30EC;&#x30FC;&#x30BF;&#x3092;&#x524D;&#x63D0;&#x306B;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x5C11;&#x3057;&#x8DA3;&#x304C;&#x7570;&#x306A;&#x308B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.oreilly.co.jp/books/9784873117126/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x7406;&#x8AD6;&#x3068;&#x5B9F;&#x88C5;</div><div class="kg-bookmark-description">&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x3092;&#x7406;&#x89E3;&#x3059;&#x308B;&#x305F;&#x3081;&#x306E;&#x6700;&#x5584;&#x306E;&#x65B9;&#x6CD5;&#x306F;&#x30BC;&#x30ED;&#x304B;&#x3089;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x3092;&#x4F5C;&#x308B;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x306E;&#x69CB;&#x6210;&#x8981;&#x7D20;&#x306F;&#x3001;&#x30CF;&#x30FC;&#x30C9;&#x30A6;&#x30A7;&#x30A2;&#x3001;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x3001;&#x30B3;&#x30F3;&#x30D1;&#x30A4;&#x30E9;&#x3001;OS&#x306B;&#x5927;&#x5225;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x672C;&#x66F8;&#x3067;&#x306F;&#x3001;&#x3053;&#x308C;&#x3089;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x306E;&#x69CB;&#x6210;&#x8981;&#x7D20;&#x3092;&#x3072;&#x3068;&#x3064;&#x305A;&#x3064;&#x7D44;&#x307F;&#x7ACB;&#x3066;&#x307E;&#x3059;&#x3002;&#x5177;&#x4F53;&#x7684;&#x306B;&#x306F;&#x3001;NAND&#x3068;&#x3044;&#x3046;&#x96FB;&#x5B50;&#x7D20;&#x5B50;&#x304B;&#x3089;&#x30B9;&#x30BF;&#x30FC;&#x30C8;&#x3057;&#x3001;&#x8AD6;&#x7406;&#x30B2;&#x30FC;&#x30C8;&#x3001;&#x52A0;&#x7B97;&#x5668;&#x3001;CPU&#x3092;&#x8A2D;&#x8A08;&#x3057;&#x307E;&#x3059;&#x3002;&#x305D;&#x3057;&#x3066;&#x3001;&#x30AA;&#x30DA;&#x30EC;&#x30FC;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3001;&#x30B3;&#x30F3;&#x30D1;&#x30A4;&#x30E9;&#x3001;&#x30D0;&#x30FC;&#x30C1;&#x30E3;&#x30EB;&#x30DE;&#x30B7;&#x30F3;&#x306A;&#x3069;&#x3092;&#x5B9F;&#x88C5;&#x3057;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x3092;&#x5B8C;&#x6210;&#x3055;&#x305B;&#x3066;&#x3001;&#x6700;&#x5F8C;&#x306B;&#x305D;&#x306E;&#x4E0A;&#x3067;&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#xFF08;&#x30C6;&#x30C8;&#x30EA;&#x30B9;&#x306A;&#x3069;&#xFF09;&#x3092;&#x52D5;&#x4F5C;&#x3055;&#x305B;&#x307E;&#x3059;&#x3002;&#x5B9F;&#x884C;&#x74B0;&#x5883;&#x306F;Java&#xFF08;Mac&#x3001;Windows&#x3001;Linux&#x3067;&#x52D5;&#x4F5C;&#xFF09;&#x3002; &#x25CF; &#x672C;&#x66F8;&#x306E;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x30B5;&#x30A4;&#x30C8;&#x25CF; &#x672C;&#x66F8;&#x3067;&#x4F7F;&#x7528;&#x3059;&#x308B;&#x30C4;&#x30FC;&#x30EB;&#x300C;N&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.oreilly.com/favicon.ico" alt><span class="kg-bookmark-author">O&apos;Reilly logo</span><span class="kg-bookmark-publisher">Noam Nisan&#x3001;Shimon Schocken&#x3000;&#x8457;&#x3001;&#x658E;&#x85E4; &#x5EB7;&#x6BC5;&#x3000;&#x8A33;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.oreilly.co.jp/books/images/picture_large978-4-87311-712-6.jpeg" alt></div></a></figure><p>Raspberry Pi Pico &#x3082;&#x8CB7;&#x3063;&#x305F;&#x306E;&#x3067;&#x6765;&#x5E74;&#x306F;&#x30DE;&#x30A4;&#x30B3;&#x30F3;&#x3082;&#x89E6;&#x3063;&#x3066;&#x307F;&#x305F;&#x3044;&#x3002;</p><h2 id="%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0">&#x7AF6;&#x6280;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;</h2><p>4&#x6708;&#x3054;&#x308D;&#x3001;&#x6700;&#x8FD1;&#x30B3;&#x30FC;&#x30C9;&#x66F8;&#x3044;&#x3066;&#x306A;&#x3044;&#x305E;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x306B;&#x6C17;&#x3065;&#x304D;&#x3001;&#x305A;&#x3063;&#x3068;&#x6C17;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x305F;<a href="https://atcoder.jp/">AtCoder</a>&#x3092;&#x59CB;&#x3081;&#x3066;&#x307F;&#x305F;&#x3002; </p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">AtCoder Beginners Selection - AtCoder <a href="https://t.co/3WYm9QLFMK">https://t.co/3WYm9QLFMK</a> &#x6700;&#x8FD1;&#x3042;&#x3093;&#x307E;&#x308A;&#x30B3;&#x30FC;&#x30C9;&#x66F8;&#x3044;&#x3066;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;AtCoder&#x767B;&#x9332;&#x3057;&#x3066;&#x7CBE;&#x9078;10&#x554F;&#x306B;&#x30C8;&#x30E9;&#x30A4;&#x3057;&#x3066;&#x307F;&#x305F;&#x3093;&#x3060;&#x3051;&#x3069;&#x3001;&#x4F55;&#x56DE;&#x304B;&#x306B;&#x5206;&#x3051;&#x3066;&#x306A;&#x3093;&#x3068;&#x304B;&#x5168;&#x554F;AC&#x3067;&#x304D;&#x305F;</p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1520299940718985217?ref_src=twsrc%5Etfw">April 30, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>AtCoder&#x306B;&#x306F;&#x307E;&#x305A;&#x306F;&#x3053;&#x308C;&#x3092;&#x3084;&#x3063;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3068;&#x3044;&#x3046;&#x5165;&#x9580;&#x7528;&#x306E;&#x554F;&#x984C;&#x304C;&#x7528;&#x610F;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x3002; &#x300C;&#x7CBE;&#x9078;10&#x554F;&#x300D;&#x3068;&#x547C;&#x3070;&#x308C;&#x3066;&#x3044;&#x3066;&#x3001;<a href="https://atcoder.jp/contests/abs">ABS (AtCoder Beginners Selection)</a> &#x3068;&#x3044;&#x3046;&#x540D;&#x524D;&#x3067;AtCoder&#x4E0A;&#x306B;&#x30B3;&#x30F3;&#x30C6;&#x30B9;&#x30C8;&#x3068;&#x3057;&#x3066;&#x516C;&#x958B;&#x3055;&#x308C;&#x3066;&#x304A;&#x308A;&#x3001;&#x3044;&#x3064;&#x3067;&#x3082;&#x81EA;&#x7531;&#x306B;&#x89E3;&#x3044;&#x3066;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x63D0;&#x51FA;&#x3057;&#x3066;&#x5B9F;&#x884C;&#x7D50;&#x679C;&#x3092;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x3092;&#x4F53;&#x9A13;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://qiita.com/drken/items/fd4e5e3630d0f5859067"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AtCoder &#x306B;&#x767B;&#x9332;&#x3057;&#x305F;&#x3089;&#x6B21;&#x306B;&#x3084;&#x308B;&#x3053;&#x3068; &#xFF5E; &#x3053;&#x308C;&#x3060;&#x3051;&#x89E3;&#x3051;&#x3070;&#x5341;&#x5206;&#x95D8;&#x3048;&#x308B;&#xFF01;&#x904E;&#x53BB;&#x554F;&#x7CBE;&#x9078; 10 &#x554F; &#xFF5E; - Qiita</div><div class="kg-bookmark-description">NTT &#x30C7;&#x30FC;&#x30BF;&#x6570;&#x7406;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3067;&#x30EA;&#x30B5;&#x30FC;&#x30C1;&#x30E3;&#x30FC;&#x3092;&#x3057;&#x3066;&#x3044;&#x308B;&#x5927;&#x69FB; (&#x901A;&#x79F0;&#x3001;&#x3051;&#x3093;&#x3061;&#x3087;&#x3093;) &#x3067;&#x3059;&#x3002; &#x597D;&#x304D;&#x306A;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306F;&#x6700;&#x5C0F;&#x30AB;&#x30C3;&#x30C8;&#x3084;&#x30DE;&#x30C3;&#x30C1;&#x30F3;&#x30B0;&#x3067;&#x3059;&#x304C;&#x3001;&#x4F1A;&#x793E;&#x3067;&#x306F;&#x306A;&#x305C;&#x304B;&#x300C;DP &#x304C;&#x597D;&#x304D;&#x306A;&#x4EBA;&#x300D;&#x3068;&#x547C;&#x3070;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x4ECA;&#x56DE;&#x306F;&#x3001;&#x6700;&#x8FD1;&#x6CE8;&#x76EE;&#x5EA6;&#x304C;&#x6025;&#x4E0A;&#x6607;&#x3057;&#x3066;&#x3044;&#x308B; AtCo...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.qiita.com/assets/favicons/public/apple-touch-icon-ec5ba42a24ae923f16825592efdc356f.png" alt><span class="kg-bookmark-author">Qiita</span><span class="kg-bookmark-publisher">drken</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&amp;w=1200&amp;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9QXRDb2RlciUyMCVFMyU4MSVBQiVFNyU5OSVCQiVFOSU4QyVCMiVFMyU4MSU5NyVFMyU4MSU5RiVFMyU4MiU4OSVFNiVBQyVBMSVFMyU4MSVBQiVFMyU4MiU4NCVFMyU4MiU4QiVFMyU4MSU5MyVFMyU4MSVBOCUyMCVFRiVCRCU5RSUyMCVFMyU4MSU5MyVFMyU4MiU4QyVFMyU4MSVBMCVFMyU4MSU5MSVFOCVBNyVBMyVFMyU4MSU5MSVFMyU4MSVCMCVFNSU4RCU4MSVFNSU4OCU4NiVFOSU5NyU5OCVFMyU4MSU4OCVFMyU4MiU4QiVFRiVCQyU4MSVFOSU4MSU4RSVFNSU4RSVCQiVFNSU5NSU4RiVFNyVCMiVCRSVFOSU4MSVCOCUyMDEwJTIwJUU1JTk1JThGJTIwJUVGJUJEJTlFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iNDc4NTJmMWZiNTMzMTViMDA5NmFjYjg2YTM3YTkwNw&amp;mark-x=142&amp;mark-y=112&amp;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwZHJrZW4mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTcwMzMxNTdmZGZjNWUxODRkZWY4NTQwM2UxNDMxZmNl&amp;blend-x=142&amp;blend-y=491&amp;blend-mode=normal&amp;s=3e06696e45b3753cf4564ade49f1e61f" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://atcoder.jp/contests/abs"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AtCoder Beginners Selection - AtCoder</div><div class="kg-bookmark-description">AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://img.atcoder.jp/assets/favicon.png" alt><span class="kg-bookmark-author">AtCoder</span><span class="kg-bookmark-publisher">AtCoder Inc.</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://img.atcoder.jp/assets/atcoder.png" alt></div></a></figure><p>&#x7CBE;&#x9078;10&#x554F;&#x3092;&#x89E3;&#x3044;&#x305F;&#x5F8C;&#x3001;5&#x6708;&#x672B;&#x304F;&#x3089;&#x3044;&#x306B;&#x304B;&#x3051;&#x3066;&#x3001;&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x30B3;&#x30F3;&#x30C6;&#x30B9;&#x30C8;&#x306E;&#x521D;&#x5FC3;&#x8005;&#x5411;&#x3051;&#x554F;&#x984C;&#x3092;&#x89E3;&#x3044;&#x305F;&#x3002;</p><p><a href="https://atcoder.jp/contests/typical90">&#x5178;&#x578B;90&#x554F;</a>&#x306F;&#x305D;&#x306E;&#x540D;&#x306E;&#x901A;&#x308A;&#x3001;&#x7AF6;&#x30D7;&#x30ED;&#x306E;&#x5178;&#x578B;&#x7684;&#x306A;&#x554F;&#x984C;&#x304B;&#x3089;&#x306A;&#x308B;&#x554F;&#x984C;&#x96C6;&#x3067;&#x3001;&#x69D8;&#x3005;&#x306A;&#x96E3;&#x6613;&#x5EA6;&#x306E;&#x554F;&#x984C;&#x304C;&#x542B;&#x307E;&#x308C;&#x3066;&#x304A;&#x308A;&#x3001;&#x81EA;&#x5206;&#x306E;&#x5B9F;&#x529B;&#x306B;&#x5408;&#x308F;&#x305B;&#x3066;&#x697D;&#x3057;&#x3081;&#x308B;&#x3088;&#x3046;&#x306A;&#x69CB;&#x6210;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://atcoder.jp/contests/typical90"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7AF6;&#x30D7;&#x30ED;&#x5178;&#x578B; 90 &#x554F; - AtCoder</div><div class="kg-bookmark-description">AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://img.atcoder.jp/assets/favicon.png" alt><span class="kg-bookmark-author">AtCoder</span><span class="kg-bookmark-publisher">AtCoder Inc.</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://img.atcoder.jp/assets/atcoder.png" alt></div></a></figure><p>&#x4ED6;&#x306B;&#x306F;&#x3001;ABC (AtCoder Beginner Contest)&#x3068;&#x547C;&#x3070;&#x308C;&#x308B;&#x521D;&#x5FC3;&#x8005;&#x301C;&#x4E2D;&#x7D1A;&#x8005;&#x5411;&#x3051;&#x306E;&#x30AB;&#x30C6;&#x30B4;&#x30EA;&#x304C;&#x3042;&#x308A;&#x3001;&#x305D;&#x308C;&#x3082;&#x3044;&#x304F;&#x3064;&#x304B;&#x89E3;&#x3044;&#x3066;&#x307F;&#x305F;&#xFF08;&#x3061;&#x306A;&#x307F;&#x306B;AtCoder&#x306B;&#x306F;&#x3001;ABC&#x3088;&#x308A;&#x3082;&#x96E3;&#x3057;&#x3044;ARC (AtCoder Regular Contest)&#x3001;AGC (AtCoder Grand Contest)&#x3001;&#x6700;&#x9069;&#x5316;&#x554F;&#x984C;&#x306A;&#x3069;&#x3092;&#x6271;&#x3046;AHC (AtCoder Heuristic Contest)&#x306A;&#x3069;&#x306E;&#x69D8;&#x3005;&#x306A;&#x30AB;&#x30C6;&#x30B4;&#x30EA;&#x304C;&#x3042;&#x308B;&#xFF09;&#x3002;</p><p>&#x63D0;&#x51FA;&#x306E;&#x7D50;&#x679C;&#x306F;<a href="https://kenkoooo.com/atcoder/">AtCoder Problems</a>&#x3068;&#x3044;&#x3046;&#x30B5;&#x30A4;&#x30C8;&#x3067;&#x78BA;&#x8A8D;&#x3067;&#x304D;&#x308B;&#x3002;&#x81EA;&#x5206;&#x306E;&#x63D0;&#x51FA;&#x7D50;&#x679C;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x611F;&#x3058;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://kenkoooo.com/atcoder/#/user/asanot?userPageTab=Submissions"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AtCoder Problems</div><div class="kg-bookmark-description">Manage your AtCoder problems.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://kenkoooo.com/atcoder/apple-touch-icon.png" alt></div></div></a></figure><p>&#x9031;&#x672B;&#x306B;&#x3061;&#x3087;&#x3053;&#x3061;&#x3087;&#x3053;&#x3068;&#x9032;&#x3081;&#x305F;&#x3051;&#x3069;&#x3001;&#x6563;&#x6B69;&#x3057;&#x305F;&#x308A;&#x3061;&#x3087;&#x3063;&#x3068;&#x3057;&#x305F;&#x30B9;&#x30AD;&#x30DE;&#x6642;&#x9593;&#x306B;&#x89E3;&#x6CD5;&#x3092;&#x8003;&#x3048;&#x308B;&#x306E;&#x304C;&#x601D;&#x3044;&#x306E;&#x307B;&#x304B;&#x697D;&#x3057;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;&#x6765;&#x5E74;&#x307E;&#x305F;&#x518D;&#x958B;&#x3057;&#x305F;&#x3044;&#x306A;&#x3068;&#x601D;&#x3046;&#x3002;</p><p>AtCoder&#x3061;&#x3083;&#x3093;&#x3068;&#x59CB;&#x3081;&#x308B;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x3001;Python&#x7528;&#x306E;&#x30C6;&#x30F3;&#x30D7;&#x30EC;&#x30FC;&#x30C8;&#x3068;&#x3061;&#x3087;&#x3063;&#x3068;&#x3057;&#x305F;&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8;&#x3092;&#x4F5C;&#x3063;&#x3066;&#x3001;&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3092;&#x3044;&#x304F;&#x3064;&#x304B;&#x53E9;&#x304F;&#x3060;&#x3051;&#x3067;&#x30B3;&#x30F3;&#x30C6;&#x30B9;&#x30C8;&#x7528;&#x306E;&#x74B0;&#x5883;&#x3092;&#x4F5C;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x3057;&#x305F;&#x306E;&#x3067;&#x3001;&#x8208;&#x5473;&#x306E;&#x3042;&#x308B;&#x65B9;&#x306F;&#x8997;&#x3044;&#x3066;&#x307F;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002; </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/takuyaa/atcoder"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - takuyaa/atcoder: AtCoder solutions.</div><div class="kg-bookmark-description">AtCoder solutions. Contribute to takuyaa/atcoder development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">takuyaa</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/e864499eee080a4ffd2ab9bbb47c11cbb9a4b793b08a1ae6d29693673c7c9eda/takuyaa/atcoder" alt></div></a></figure><h2 id="%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC">&#x81EA;&#x5B85;&#x30B5;&#x30FC;&#x30D0;&#x30FC;</h2><p>&#x53BB;&#x5E74;&#x307E;&#x3067;&#x306F;&#x305F;&#x3060;&#x306E;&#x6696;&#x623F;&#x3060;&#x3063;&#x305F;&#x30B5;&#x30FC;&#x30D0;&#x3092;&#x3001;&#x3061;&#x3083;&#x3093;&#x3068;&#x69CB;&#x7BC9;&#x3057;&#x306F;&#x3058;&#x3081;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x5BD2;&#x3044;&#x306E;&#x3067;&#x96FB;&#x6E90;&#x5165;&#x308C;&#x305F;&#x3002;&#x6696;&#x623F;&#x517C;ASMR&#x3002; <a href="https://t.co/ta9JPkrKHO">pic.twitter.com/ta9JPkrKHO</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1470950426539622400?ref_src=twsrc%5Etfw">December 15, 2021</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x4EEE;&#x60F3;&#x5316;&#x57FA;&#x76E4;&#x3068;&#x3057;&#x3066;<a href="https://www.proxmox.com/en/ ">Proxmox</a>&#x3092;&#x7269;&#x7406;&#x30DE;&#x30B7;&#x30F3;&#x306B;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3059;&#x308B;&#x3068;&#x3053;&#x308D;&#x304B;&#x3089;&#x30B9;&#x30BF;&#x30FC;&#x30C8;&#x3057;&#x305F;&#x3002;Proxmox&#x306F;KVM&#x306B;&#x7BA1;&#x7406;&#x753B;&#x9762;&#x3084;&#x4FBF;&#x5229;API&#x306A;&#x3069;&#x304C;&#x3064;&#x3044;&#x305F;&#x3082;&#x306E;&#x3067;&#x3001;vCPU&#x306A;&#x3069;&#x306E;&#x5236;&#x9650;&#x306A;&#x3057;&#x306B;&#x30D5;&#x30EA;&#x30FC;&#x3067;&#x4F7F;&#x3048;&#x308B;&#x306E;&#x3067;&#x8FD1;&#x5E74;&#x81EA;&#x5B85;&#x30B5;&#x30FC;&#x30D0;&#x30FC;&#x754C;&#x9688;&#x3067;&#x6D41;&#x884C;&#x3057;&#x3066;&#x3044;&#x308B;&#x69D8;&#x5B50;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.proxmox.com/en/ "><div class="kg-bookmark-content"><div class="kg-bookmark-title">Proxmox - Powerful open-source server solutions</div><div class="kg-bookmark-description">Proxmox develops the open-source virtualization platform Proxmox VE, the backup solution Proxmox Backup Server, and the Proxmox Mail Gateway, an open-source email security solution to protect your mail server.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.proxmox.com/templates/yoo_nano2/apple_touch_icon.png" alt><span class="kg-bookmark-author">Powerful open-source server solutions</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.proxmox.com/templates/yoo_nano2/apple_touch_icon.png" alt></div></a></figure><p>Kubernetes&#x306E;&#x30C7;&#x30A3;&#x30B9;&#x30C8;&#x30EA;&#x30D3;&#x30E5;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3068;&#x3057;&#x3066;Rancher&#x304C;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x308B;<a href="https://docs.rke2.io/">RKE2</a>&#x3092;&#x691C;&#x8A3C;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x3044;&#x307E;&#x306E;&#x3068;&#x3053;&#x308D;&#x5927;&#x304D;&#x306A;&#x969C;&#x5BB3;&#x3082;&#x306A;&#x304F;&#x5B89;&#x5B9A;&#x3057;&#x3066;&#x52D5;&#x3044;&#x3066;&#x3044;&#x308B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.rke2.io/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introduction | RKE 2</div><div class="kg-bookmark-description">RKE2, also known as RKE Government, is Rancher&#x2019;s next-generation Kubernetes distribution.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.rke2.io/img/favicon.png" alt><span class="kg-bookmark-author">logo</span></div></div><div class="kg-bookmark-thumbnail"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjEuMywgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzNDUuOTk3NjUwMSAxMTEuMzYyMzgxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNDUuOTk3NjUwMSAxMTEuMzYyMzgxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzM4NDc0NTt9Cgkuc3Qxe2ZpbGw6IzJFNjhFOTt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjMuODE5ODU0NywzMC4zMTM5MDc2aDIwLjgwMjk0OGM5Ljg3NzczMTMsMCwxNi41Mzc1OTc3LDQuNzg5MDU4NywxNi41Mzc1OTc3LDE0LjA2NzU1ODMKCQkJCWMwLDcuNTU4NzI3My01LjE2Mjk3OTEsMTIuMTIzNjgwMS0xMC4xNzczNjgyLDEzLjY5NDg2MjRjMS40OTY4ODcyLDEuMjcxNTYwNywyLjYxOTg1NzgsMi45OTI1NTM3LDMuNTE3NTAxOCw0Ljc4OTA1ODcKCQkJCWMyLjA5NDkwOTcsNC4yNjUzMzUxLDMuNTE2MjgxMSw4Ljk3ODg4MTgsNy45MzE0MjcsOC45Nzg4ODE4YzEuMTIyOTcwNiwwLDIuMDIwNjE0Ni0wLjM3MzkxNjYsMi4wMjA2MTQ2LTAuMzczOTE2NgoJCQkJbC0wLjk3MzE1OTgsOC45MDQ1NzkyYzAsMC0yLjY5MjkzMjEsMC42NzM1MzgyLTUuMDEzMTY4MywwLjY3MzUzODJjLTUuOTg2MzI4MSwwLTkuNDI4MzE0Mi0yLjMyMDIzNjItMTIuOTQ1ODAwOC0xMC4zMjcxNzEzCgkJCQljLTEuNDk1NjgxOC0zLjU5MDU3NjItMy41OTE3OTY5LTkuODc3NzQyOC02LjM2MDI0NDgtOS44Nzc3NDI4aC0yLjg0Mzk2MzZWODAuODIzMTQzaC0xMi40OTYzODM3VjMwLjMxMzkwNzZ6CgkJCQkgTTE3Ni4zMTYyMzg0LDM5LjM2ODMwMTR2MTIuNDIwODY0MUgxODAuODA2OWMzLjU5MTc4MTYsMCw3Ljc4MTYwMS0xLjEyMTc1MzcsNy43ODE2MDEtNi41MDg4MzQ4CgkJCQljMC00LjQxNTE0NTktMi44NDI3NDI5LTUuOTEyMDI5My02LjI4NTkzNDQtNS45MTIwMjkzSDE3Ni4zMTYyMzg0eiIvPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjA5LjY5MTA3MDYsMzAuMzEzOTA3NmgxMi40OTYzNjg0djE0LjE0MzA3NGMwLDEuNTcxMTgyMy0wLjIyNDEwNTgsMy44OTAxOTc4LTAuMzczOTE2Niw1LjYxMjQwNzcKCQkJCWgwLjI5OTYyMTZjMC44MjMzNDktMS4yNzE1NjA3LDEuODcwODAzOC0zLjIxNzg3NjQsMy4xNDIzNjQ1LTQuNzE0NzYzNmwxMi4zNDc3OTM2LTE1LjA0MDcxODFoMTMuNDY4MzA3NQoJCQkJbC0xNi40NjIwODE5LDE5LjgyOTc3NjhsMTcuMzYwOTQ2NywzMC42Nzk0NTg2SDIzNy42MDMzMDJsLTExLjY3NDI1NTQtMjEuMTc1NjMyNWwtMy43NDE2MDc3LDQuNTY0OTUyOVY4MC44MjMxNDNoLTEyLjQ5NjM2ODQKCQkJCVYzMC4zMTM5MDc2eiIvPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjU1LjkzNzQwODQsMzAuMzEzOTI2N2gzMy40NDc5MDY1djkuMjc4NDkyaC0yMC45NTE1MzgxdjEwLjg1MDg5MTFoMTcuNTg1MDUyNXY5LjI3ODQ5MmgtMTcuNTg1MDUyNQoJCQkJVjcxLjU0NDYzMmgyMS43MDA1OTJ2OS4yNzg0OTU4aC0zNC4xOTY5NjA0VjMwLjMxMzkyNjd6Ii8+CgkJPC9nPgoJCTxnPgoJCQk8Y2lyY2xlIGNsYXNzPSJzdDEiIGN4PSIzNC45MDgwNTgyIiBjeT0iNzYuMzk0MjEwOCIgcj0iNyIvPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzEuNDU4NjE4Miw1OC42ODE4MjM3Yy0wLjIwOTE4MjcsMC0wLjQxNjk5MjItMC4wMTA4MTA5LTAuNjIzMDkyNy0wLjAyOTM5NjEKCQkJCWMxLjgwMzQ4OTcsMy44OTkxNzc2LDIuOTU4OTMxLDguMTU2ODk4NSwzLjMwNjE5ODEsMTIuNjM5OTkxOGgxNC45NjU1NzYyCgkJCQljMi4xMzM2NjctMy43NjMwNTM5LDUuNjE4OTcyOC02LjY2MDY4MjcsOS43OTM1MDI4LTguMDI5MDIyMnYtNC41ODMyODI1aC0yNy40MTM0NzUKCQkJCUM3MS40Nzc5MjgyLDU4LjY4MDE1NjcsNzEuNDY4MTg1NCw1OC42ODE4MjM3LDcxLjQ1ODYxODIsNTguNjgxODIzN3oiLz4KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTQyLjEwNzE1NDgsMjcuNzQ0MDc5NnY5LjY0NjQwNDNjOC4yNDQzMDg1LDEuMTEyNDIyOSwxNS42MzY4NjM3LDQuOTM4MTEwNCwyMS4yNDkxNjg0LDEwLjU0OTMwNQoJCQkJbC00Ljg4ODAzODYtMjAuMTk1NzA5Mkg0Mi4xMDcxNTQ4eiIvPgoJCQk8Y2lyY2xlIGNsYXNzPSJzdDEiIGN4PSIxMDQuMzM4Mjc5NyIgY3k9Ijc5Ljg5NDIxMDgiIHI9IjMuNSIvPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTIxLjU4Njg5MTIsMEgxNC4zOTIzODI2QzYuNDc2NTM4MiwwLDAsNi40NzY2MjM1LDAsMTQuMzkyNDY4NXY4Mi41Nzc0Mzg0CgkJCQljMCw3LjkxNTg0NzgsNi40NzY1MzgyLDE0LjM5MjQ3MTMsMTQuMzkyMzgyNiwxNC4zOTI0NzEzaDEwNy4xOTQ1MTE0YzcuOTE1ODQwMSwwLDE0LjM5MjM4NzQtNi40NzY2MjM1LDE0LjM5MjM4NzQtMTQuMzkyNDcxMwoJCQkJVjE0LjM5MjQ2ODVDMTM1Ljk3OTI3ODYsNi40NzY2MjM1LDEyOS41MDI3MzEzLDAsMTIxLjU4Njg5MTIsMHogTTM0LjkwODA1ODIsOTcuMzk0MjEwOAoJCQkJYy0xMS41NzkzOTUzLDAtMjEuMDAwMDAxOS05LjQyMDU2MjctMjEuMDAwMDAxOS0yMVMyMy4zMjg2NjI5LDU1LjM5NDIwNywzNC45MDgwNTgyLDU1LjM5NDIwN3MyMSw5LjQyMDU2NjYsMjEsMjEuMDAwMDAzOAoJCQkJUzQ2LjQ4NzQ0OTYsOTcuMzk0MjEwOCwzNC45MDgwNTgyLDk3LjM5NDIxMDh6IE0xMDQuMzM4Mjc5Nyw5Ny4zOTQyMTA4CgkJCQljLTcuNzY2MTM2MiwwLTE0LjM2MzE1OTItNS4wODY1Nzg0LTE2LjY0NDE0MjItMTIuMTAxNzkxNGgtMjAuNDM2MjAzYy0zLjg2Mjk4NzUsMC02Ljk5NTIxNjQtMy4xMjkxNTA0LTctNi45OTE3OTg0CgkJCQlsLTAuMDA0NzgzNi00LjEwODA1NTFjMC0xMi43NjUwODcxLTEwLjM3ODMyMjYtMjMuMTQzNDA5Ny0yMy4xMzQ4NjQ4LTIzLjE0MzQwOTdIMjUuNjA4NjE3OGMtMy44NjU3MjI3LDAtNy0zLjEzMzkzNC03LTcKCQkJCXMzLjEzNDI3NzMtNyw3LTdoMi40OTg1MzUydi05LjMwNTA3NjZoLTIuNDk4NTM1MmMtMy44NjU3MjI3LDAtNy0zLjEzMzkzNTktNy03czMuMTM0Mjc3My03LDctN2gzOC4zNjczODU5CgkJCQljMy4yMzEzNDk5LDAsNi4wNDI5NjQ5LDIuMjEyMTA5Niw2LjgwMzgwNjMsNS4zNTMyMjE5bDYuMTkyMzM3LDI1LjU4MjgxMzNoMjYuNDE1MDg0OAoJCQkJYzUuMjQ1OTAzLDAsOS41MTM1NzI3LDQuMjY3Njc3Myw5LjUxMzU3MjcsOS41MTM1NzI3djEwLjQ0Njg5MThjNS4zMjg2MTMzLDMuMDAzMTEyOCw4LjkzNzQ3NzEsOC43MTMzMDI2LDguOTM3NDc3MSwxNS4yNTM2MzE2CgkJCQlDMTIxLjgzODI3OTcsODkuNTQzNzMxNywxMTMuOTg3ODkyMiw5Ny4zOTQyMTA4LDEwNC4zMzgyNzk3LDk3LjM5NDIxMDh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM0NS45OTc2NTAxLDgwLjY0ODgxMTNoLTM3LjMwMDc4MTJ2LTguODU1MjkzM2wxMi41NTA3ODEyLTEyLjI5NTIyMzIKCQkJYzMuNTg1OTM3NS0zLjYzMjk0MjIsNS45Mjk2ODc1LTYuMTEzNTU1OSw3LjAzMTI1LTcuNDQxODQ4OHMxLjg2OTE0MDYtMi40NjkyNjUsMi4zMDI3MzQ0LTMuNDIyOTA4OAoJCQljMC40MzM1OTM4LTAuOTUzNjQ3NiwwLjY1MDM5MDYtMS45NTI3MDU0LDAuNjUwMzkwNi0yLjk5NzE3NzFjMC0xLjI5NDIzMTQtMC40MzM1OTM4LTIuMzE1OTk4MS0xLjMwMDc4MTItMy4wNjUyOTI0CgkJCWMtMC44NjcxODc1LTAuNzQ5MjkwNS0yLjA4NTkzNzUtMS4xMjM5Mzk1LTMuNjU2MjUtMS4xMjM5Mzk1Yy0xLjYxNzE4NzUsMC0zLjI1MTk1MzEsMC40NDg0NDA2LTQuOTA0Mjk2OSwxLjM0NTMyNTUKCQkJYy0xLjY1MjM0MzgsMC44OTY4ODExLTMuNTIxNDg0NCwyLjIxOTQ5NzctNS42MDc0MjE5LDMuOTY3ODQ5N2wtNy42Mjg5MDYyLTguNjUwOTM2MQoJCQljMi42NDg0Mzc1LTIuMjkzMjkzLDQuODc1LTMuOTMzNzkyMSw2LjY3OTY4NzUtNC45MjE0OTczczMuNzY3NTc4MS0xLjc0MjY3NTgsNS44ODg2NzE5LTIuMjY0OTA5NwoJCQljMi4xMjEwOTM4LTAuNTIyMjM1OSw0LjUwNTg1OTQtMC43ODMzNTE5LDcuMTU0Mjk2OS0wLjc4MzM1MTljMy4zMjgxMjUsMCw2LjI5ODgyODEsMC41Njc2NDYsOC45MTIxMDk0LDEuNzAyOTQKCQkJYzIuNjEzMjgxMiwxLjEzNTI5MjEsNC42NDA2MjUsMi43NTMwODYxLDYuMDgyMDMxMiw0Ljg1MzM3ODNzMi4xNjIxMDk0LDQuNDU2MDI4LDIuMTYyMTA5NCw3LjA2NzE5OTcKCQkJYzAsMS45NTI3MDU0LTAuMjUxOTUzMSwzLjc1NzgyMzktMC43NTU4NTk0LDUuNDE1MzUxOXMtMS4yODMyMDMxLDMuMjg2Njc0NS0yLjMzNzg5MDYsNC44ODc0MzU5CgkJCWMtMS4wNTQ2ODc1LDEuNjAwNzY1Mi0yLjQ1NTA3ODEsMy4yODY2NzQ1LTQuMjAxMTcxOSw1LjA1NzczMTZzLTUuNDY2Nzk2OSw1LjEzMTUyNjktMTEuMTYyMTA5NCwxMC4wODE0MDE4djAuMzQwNTkxNGgxOS40NDE0MDYyCgkJCVY4MC42NDg4MTEzeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=#gh-light-mode-only" alt></div></a></figure><p>&#x5404;&#x7A2E;VM&#xFF08;RKE2&#x306E;&#x30CE;&#x30FC;&#x30C9;&#x3092;&#x542B;&#x3080;&#xFF09;&#x306F;Terraform&#x3092;&#x901A;&#x3057;&#x3066;Proxmox&#x4E0A;&#x306B;&#x69CB;&#x7BC9;&#x3057;&#x305F;&#x3002;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x9762;&#x3067;&#x306F;&#x3001;Kubernetes&#x306E;LoadBalancer type&#x306E;&#x5B9F;&#x88C5;&#x3068;&#x3057;&#x3066;<a href="https://metallb.universe.tf/">MetalLB</a>&#x3092;&#x5165;&#x308C;&#x305F;&#x3002;&#x30EB;&#x30FC;&#x30BF;&#x3068;BGP&#x30D4;&#x30A2;&#x3092;&#x5F35;&#x3063;&#x3066;BGP&#x30E2;&#x30FC;&#x30C9;&#x3067;&#x52D5;&#x3044;&#x3066;&#x3044;&#x308B;&#x3002;MetalLB&#x306B;&#x3088;&#x3063;&#x3066;Kubernetes&#x306E;&#x5916;&#x304B;&#x3089;&#x898B;&#x3048;&#x308B;IP&#x304C;&#x632F;&#x3089;&#x308C;&#x308B;&#x306E;&#x3067;&#x3001;&#x305D;&#x308C;&#x3092;&#x30EA;&#x30D0;&#x30FC;&#x30B9;&#x30D7;&#x30ED;&#x30AD;&#x30B7;&#x3084;&#x30EB;&#x30FC;&#x30BF;&#x304B;&#x3089;&#x53C2;&#x7167;&#x3059;&#x308B;&#x3002;&#x30B9;&#x30C8;&#x30EC;&#x30FC;&#x30B8;&#x306F;RKE2&#x3068;&#x540C;&#x3058;&#x304F;Rancher&#x304C;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x308B;<a href="https://longhorn.io/">Longhorn</a>&#x3092;&#x63A1;&#x7528;&#x3002;</p><p>&#x6700;&#x521D;&#x306F;&#x4EF2;&#x9593;&#x5185;&#x3067;&#x904A;&#x3076;&#x305F;&#x3081;&#x306E;&#x30B2;&#x30FC;&#x30E0;&#x30B5;&#x30FC;&#x30D0;&#x30FC;&#x3092;&#x52D5;&#x304B;&#x3057;&#x3066;&#x307F;&#x305F;&#x308A;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x305D;&#x306E;&#x3046;&#x3061;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x3092;&#x53D6;&#x3063;&#x305F;&#x308A;&#x3001;Cloudflare CDN&#x306E;&#x8A2D;&#x5B9A;&#x3084;&#x3089;&#x306A;&#x3093;&#x3084;&#x3089;&#x3092;&#x3057;&#x3066;&#x3001;&#x6700;&#x7D42;&#x7684;&#x306B;Kubernetes&#x4E0A;&#x3067;&#x52D5;&#x3044;&#x3066;&#x3044;&#x308B;Web&#x30B5;&#x30FC;&#x30D0;&#x304C;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30CD;&#x30C3;&#x30C8;&#x304B;&#x3089;&#x898B;&#x3048;&#x308B;&#x3068;&#x3053;&#x308D;&#x307E;&#x3067;&#x3067;&#x304D;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://t.co/X1CPdhdJ5R">https://t.co/X1CPdhdJ5R</a> &#x958B;&#x901A;&#x3057;&#x305F;&#x3088;&#x3002;&#x5BB6;&#x306E;Kubernetes&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x3067;&#x52D5;&#x3044;&#x3066;&#x308B;pod&#x306B;&#x3064;&#x306A;&#x304C;&#x3063;&#x3066;&#x307E;&#x3059;</p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1556303595779543046?ref_src=twsrc%5Etfw">August 7, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x3044;&#x307E;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x30B5;&#x30FC;&#x30D0;&#x304C;&#x81EA;&#x5B85;Kubernetes&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x3067;&#x52D5;&#x3044;&#x3066;&#x3044;&#x308B;&#x3002;</p><p><strong>&#x30B2;&#x30FC;&#x30E0;</strong></p><ul><li><a href="https://store.steampowered.com/app/1621690/Core_Keeper/">Core Keeper</a></li><li><a href="https://www.factorio.com/">Factorio</a></li><li><a href="https://www.minecraft.net/">Minecraft</a></li></ul><p><strong>Web&#x30B5;&#x30FC;&#x30D3;&#x30B9;</strong></p><ul><li><a href="https://ghost.org/">Ghost</a>&#xFF08;&#x30D6;&#x30ED;&#x30B0;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x3002;&#x3053;&#x306E;&#x30D6;&#x30ED;&#x30B0; <a href="https://takuya-a.net/blog/">https://takuya-a.net/blog/</a> &#x306F;Ghost&#x3067;&#x52D5;&#x3044;&#x3066;&#x3044;&#x308B;&#xFF09;</li><li><a href="https://github.com/techno-tim/littlelink-server">Littlelink</a>&#xFF08;&#x30D7;&#x30ED;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30DA;&#x30FC;&#x30B8;: <a href="https://takuya-a.net/">https://takuya-a.net/</a>&#xFF09;</li><li><a href="https://joinmastodon.org/">Mastodon</a>&#xFF08;&#x5206;&#x6563;&#x578B;SNS: <a href="https://mstdn.takuya-a.net/about">https://mstdn.takuya-a.net/about</a>&#xFF09;</li></ul><p><strong>&#x305D;&#x306E;&#x4ED6;</strong></p><ul><li><a href="https://github.com/troglobit/inadyn">Inadyn</a> (Dynamic DNS)</li><li><a href="https://traefik.io/">Traefik</a> &#xFF08;&#x30EA;&#x30D0;&#x30FC;&#x30B9;&#x30D7;&#x30ED;&#x30AD;&#x30B7;&#xFF09;</li><li><a href="https://prometheus.io/">Prometheus</a> &amp; <a href="https://grafana.com/">Grafana</a>&#xFF08;&#x30B5;&#x30FC;&#x30D0;&#x306E;&#x30E2;&#x30CB;&#x30BF;&#x30EA;&#x30F3;&#x30B0;&#xFF09;</li></ul><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">&#x304A;&#x3046;&#x3061;&#x306E;k8s&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x306B;Prometheus&#x3068;Grafana&#x3044;&#x308C;&#x305F;&#x3088; <a href="https://t.co/Tf7do4Bxoq">pic.twitter.com/Tf7do4Bxoq</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1573287690480816129?ref_src=twsrc%5Etfw">September 23, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x4ED6;&#x306B;&#x3082;&#x3001;VM&#x306E;&#x30D0;&#x30C3;&#x30AF;&#x30A2;&#x30C3;&#x30D7;&#x306E;&#x305F;&#x3081;&#x306B;<a href="https://www.truenas.com/">TrueNAS</a>&#x3092;iSCSI target&#x3068;&#x3057;&#x3066;&#x52D5;&#x304B;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;&#x3042;&#x3068;&#x306F;PC&#x30EB;&#x30FC;&#x30BF;&#x3068;&#x3057;&#x3066;<a href="https://openwrt.org/">OpenWRT</a>&#x3092;&#x691C;&#x8A3C;&#x4E2D;&#x3002;&#x305F;&#x307E;&#x306B;&#x30EB;&#x30FC;&#x30BF;&#x304C;&#x304A;&#x304B;&#x3057;&#x304F;&#x306A;&#x3063;&#x3066;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30CD;&#x30C3;&#x30C8;&#x63A5;&#x7D9A;&#x304C;&#x58CA;&#x308C;&#x3066;&#x3057;&#x307E;&#x3046;&#x3053;&#x3068;&#x304C;&#x4F55;&#x56DE;&#x304B;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;OpenWRT&#x3067;WAN&#x3092;&#x5197;&#x9577;&#x5316;&#x3057;&#x305F;&#x3044;&#x3068;&#x8003;&#x3048;&#x3066;&#x3044;&#x308B;&#x3002;</p><p>&#x6765;&#x5E74;&#x306F;&#x30EA;&#x30E2;&#x30FC;&#x30C8;&#x63A5;&#x7D9A;&#x74B0;&#x5883;&#x3092;&#x6574;&#x3048;&#x305F;&#x308A;&#x3001;&#x8907;&#x6570;&#x4EBA;&#x3067;&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x3092;&#x904B;&#x7528;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308B;&#x3068;&#x697D;&#x3057;&#x3044;&#x304B;&#x306A;&#x3068;&#x304B;&#x5984;&#x60F3;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;&#x3044;&#x308D;&#x3044;&#x308D;&#x77E5;&#x898B;&#x3082;&#x6E9C;&#x307E;&#x3063;&#x3066;&#x304D;&#x305F;&#x306E;&#x3067;&#x3001;Kubernetes&#x306E;&#x30DE;&#x30CB;&#x30D5;&#x30A7;&#x30B9;&#x30C8;&#x3092;&#x554F;&#x984C;&#x306A;&#x3044;&#x7BC4;&#x56F2;&#x3067;&#x516C;&#x958B;&#x3057;&#x305F;&#x308A;&#x3001;&#x30D6;&#x30ED;&#x30B0;&#x304B;&#x306A;&#x3093;&#x304B;&#x306B;&#x307E;&#x3068;&#x3081;&#x305F;&#x3044;&#x3068;&#x601D;&#x3046;&#x3002;</p><h2 id="%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3">&#x30D1;&#x30BD;&#x30B3;&#x30F3;</h2><p>&#x5F15;&#x304D;&#x7D9A;&#x304D;5&#x5E74;&#x524D;&#x306B;&#x8CB7;&#x3063;&#x305F;&#x81EA;&#x4F5C;PC&#x3092;&#x4F7F;&#x3044;&#x7D9A;&#x3051;&#x3066;&#x3044;&#x308B;&#x3002;CPU&#x30AF;&#x30FC;&#x30E9;&#x30FC;&#x3092;&#x9759;&#x97F3;&#x306E;&#x3082;&#x306E;&#x306B;&#x8CB7;&#x3044;&#x66FF;&#x3048;&#x305F;&#x304F;&#x3089;&#x3044;&#x3002;CPU&#x30D5;&#x30A1;&#x30F3;&#x306E;&#x97F3;&#x304C;&#x307B;&#x3068;&#x3093;&#x3069;&#x805E;&#x3053;&#x3048;&#x306A;&#x3044;&#x304F;&#x3089;&#x3044;&#x9759;&#x304B;&#x306B;&#x306F;&#x306A;&#x3063;&#x305F;&#x304C;&#x3001;&#x8FD1;&#x304F;&#x306B;&#x3042;&#x308B;&#x30B5;&#x30FC;&#x30D0;&#x30FC;&#x304C;&#x3046;&#x308B;&#x3055;&#x3059;&#x304E;&#x3066;&#x610F;&#x5473;&#x306F;&#x306A;&#x304B;&#x3063;&#x305F;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://noctua.at/en/nf-a12x25-pwm"><div class="kg-bookmark-content"><div class="kg-bookmark-title">NF-A12x25 PWM</div><div class="kg-bookmark-description">The NF-A12x25 is a highly optimised next-generation 120mm fan that integrates Noctua&#x2019;s latest innovations in aerodynamic engineering in order to achieve an unprecedented level of quiet cooling performance. It takes state-of-the-art technologies such as the AAO (Advanced Acoustic Optimisation) frame&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://noctua.at/pub/media/favicon/default/fevicon.png" alt><span class="kg-bookmark-author">noctua</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://noctua.at/pub/media/catalog/product/cache/6517c62f5899ad6aa0ba23ceb3eeff97/n/o/noctua_start_nf_a12x25_1.jpg" alt></div></a></figure><p>PC&#x306E;&#x7528;&#x9014;&#x306F;&#x4E3B;&#x306B;&#x30B2;&#x30FC;&#x30E0;&#x3068;&#x3001;&#x8DA3;&#x5473;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;&#x3068;&#x304B;&#x30B5;&#x30FC;&#x30D0;&#x30FC;&#x306E;&#x8A2D;&#x5B9A;&#x4F5C;&#x696D;&#x3068;&#x304B;&#x3002;&#x30B2;&#x30FC;&#x30E0;&#x4EE5;&#x5916;&#x3067;&#x306F;&#x57FA;&#x672C;&#x7684;&#x306B;WSL2&#x306E;&#x4E2D;&#x306E;Ubuntu&#x3067;&#x4F5C;&#x696D;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;&#x30A8;&#x30C7;&#x30A3;&#x30BF;&#x306F;VSCode&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x3066;&#x3001;WSL&#x3060;&#x304B;&#x3089;&#x56F0;&#x3063;&#x305F;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x306F;&#x8D77;&#x304D;&#x3066;&#x3044;&#x306A;&#x3044;&#x3002;&#x4E2D;&#x3067;&#x3068;&#x304F;&#x306B;&#x96E3;&#x3057;&#x3044;&#x3053;&#x3068;&#x306F;&#x3057;&#x3066;&#x3044;&#x306A;&#x3044;&#x306E;&#x3067;&#x3001;&#x901A;&#x5E38;&#x306E;Linux&#x3067;&#x306E;&#x958B;&#x767A;&#x3068;&#x540C;&#x7B49;&#x306E;&#x4F53;&#x9A13;&#x304C;&#x5F97;&#x3089;&#x308C;&#x3066;&#x3044;&#x308B;&#x3002;</p><h2 id="%E3%82%B2%E3%83%BC%E3%83%A0">&#x30B2;&#x30FC;&#x30E0;</h2><p>&#x4ECA;&#x5E74;&#x306F;<a href="https://magic.wizards.com/en">Magic: The Gathering</a>&#x304C;&#x30DE;&#x30A4;&#x30D6;&#x30FC;&#x30E0;&#x3067;&#x3001;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x30FB;&#x30A2;&#x30CA;&#x30ED;&#x30B0;&#x554F;&#x308F;&#x305A;&#x3051;&#x3063;&#x3053;&#x3046;&#x904A;&#x3093;&#x3060;&#x3002;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x306E;&#x307B;&#x3046;&#x306F;&#x3001;&#x6570;&#x5E74;&#x524D;&#x304B;&#x3089;<a href="https://magic.wizards.com/en/mtgarena">MTG Arena</a>&#x3092;&#x69CB;&#x7BC9;&#x30E1;&#x30A4;&#x30F3;&#x3067;&#x3084;&#x3063;&#x3066;&#x3044;&#x305F;&#x3051;&#x3069;&#x3001;&#x4ECA;&#x5E74;&#x306F;&#x30EA;&#x30DF;&#x30C6;&#x30C3;&#x30C9;&#x3001;&#x7279;&#x306B;&#x30C9;&#x30E9;&#x30D5;&#x30C8;&#x3082;&#x904A;&#x3076;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F;&#xFF08;&#x30DE;&#x30B8;&#x30C3;&#x30AF;&#x306F;&#x904A;&#x3073;&#x65B9;&#x304C;&#x3081;&#x3061;&#x3083;&#x304F;&#x3061;&#x3083;&#x3044;&#x3063;&#x3071;&#x3044;&#x5B58;&#x5728;&#x3059;&#x308B;&#xFF01;&#xFF09;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://magic.wizards.com/en/mtgarena"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Play the CCG Free on PC, iOS and Android | Magic: The Gathering Arena</div><div class="kg-bookmark-description">Magic: The Gathering Arena puts the original CCG at your fingertips. Build a deck to play with friends or challenge the AI to master your strategy!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://magic.wizards.com/assets/favicon.ico" alt><span class="kg-bookmark-author">MAGIC: THE GATHERING</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://images.ctfassets.net/s5n2t79q9icq/cAQJBdFMcKDZY4BhUUsDx/616212775582792942f3927c843aea80/arena_Meta-ShareImage.jpg" alt></div></a></figure><p>&#x30A2;&#x30CA;&#x30ED;&#x30B0;&#xFF08;&#x7D19;&#xFF09;&#x306F;&#x3001;&#x53BB;&#x5E74;&#x306E;&#x79CB;&#x3054;&#x308D;&#x304B;&#x3089;&#x3001;&#x30A8;&#x30AD;&#x30B9;&#x30D1;&#x30F3;&#x30B7;&#x30E7;&#x30F3;&#x304C;&#x51FA;&#x308B;&#x305F;&#x3073;&#x306B;&#x305D;&#x308C;&#x3092;1&#x30DC;&#x30C3;&#x30AF;&#x30B9;&#x8CB7;&#x3063;&#x3066;&#x3001;4&#x4EBA;&#x3067;&#x96C6;&#x307E;&#x3063;&#x3066;<a href="http://mtgwiki.com/wiki/&#x30EA;&#x30DF;&#x30C6;&#x30C3;&#x30C9;">&#x30EA;&#x30DF;&#x30C6;&#x30C3;&#x30C9;</a>&#x3068;&#x3044;&#x3046;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x3067;&#x904A;&#x3076;&#x3001;&#x3068;&#x3044;&#x3046;&#x306E;&#x3092;&#x3084;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;&#x30DC;&#x30C3;&#x30AF;&#x30B9;&#x306B;&#x306F;1&#x30D1;&#x30C3;&#x30AF;15&#x679A;&#x5165;&#x308A;&#x306E;&#x30D6;&#x30FC;&#x30B9;&#x30BF;&#x30FC;&#x30D1;&#x30C3;&#x30AF;&#x304C;36&#x30D1;&#x30C3;&#x30AF;&#x5165;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;<a href="http://mtgwiki.com/wiki/&#x30D6;&#x30FC;&#x30B9;&#x30BF;&#x30FC;&#x30FB;&#x30C9;&#x30E9;&#x30D5;&#x30C8;">&#x30C9;&#x30E9;&#x30D5;&#x30C8;</a>1&#x56DE;&#x3067;12&#x30D1;&#x30C3;&#x30AF;&#x3001;&#x6B8B;&#x308A;&#x306E;24&#x30D1;&#x30C3;&#x30AF;&#x3067;<a href="http://mtgwiki.com/wiki/&#x30B7;&#x30FC;&#x30EB;&#x30C9;">&#x30B7;&#x30FC;&#x30EB;&#x30C9;</a>&#x3092;1&#x56DE;&#x3084;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x30EB;&#x30FC;&#x30C1;&#x30F3;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;&#x305D;&#x306E;&#x3046;&#x3061;8&#x4EBA;&#x306E;&#x30C9;&#x30E9;&#x30D5;&#x30C8;&#x3082;&#x3084;&#x3063;&#x3066;&#x307F;&#x305F;&#x3044;&#x3002;</p><p>&#x306A;&#x305C;&#x304B;&#x7D19;&#x306E;&#x30C7;&#x30C3;&#x30AD;&#x69CB;&#x7BC9;&#x306B;&#x3082;&#x8208;&#x5473;&#x304C;&#x51FA;&#x3066;&#x304D;&#x3066;&#x3001;&#x30D1;&#x30A4;&#x30AA;&#x30CB;&#x30A2;&#x30C1;&#x30E3;&#x30EC;&#x30F3;&#x30B8;&#x30E3;&#x30FC;&#x30C7;&#x30C3;&#x30AD;&#x3068;&#x3044;&#x3046;&#x69CB;&#x7BC9;&#x6E08;&#x307F;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x30D9;&#x30FC;&#x30B9;&#x306B;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x7D44;&#x307F;&#x59CB;&#x3081;&#x305F;&#x3002;&#x5C11;&#x3057;&#x305A;&#x3064;&#x30AB;&#x30FC;&#x30C9;&#x3092;&#x8CB7;&#x3044;&#x96C6;&#x3081;&#x3066;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x7D44;&#x3093;&#x3067;&#x3044;&#x304F;&#x306E;&#x306F;&#x30C7;&#x30B8;&#x30BF;&#x30EB;&#x3068;&#x306F;&#x9055;&#x3063;&#x305F;&#x4F53;&#x9A13;&#x3067;&#x3001;&#x3068;&#x3066;&#x3082;&#x5C0A;&#x3044;&#x3002;&#x305B;&#x3063;&#x304B;&#x304F;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x7D44;&#x3093;&#x3060;&#x306E;&#x3067;&#x3001;&#x6765;&#x5E74;&#x306F;&#x5E97;&#x8217;&#x3067;&#x958B;&#x50AC;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x5927;&#x4F1A;&#x306B;&#x53C2;&#x52A0;&#x3057;&#x3066;&#x307F;&#x305F;&#x3044;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;</p><p>&#x3042;&#x3068;&#x306F;&#x3001;<a href="http://mtgwiki.com/wiki/&#x7D71;&#x7387;&#x8005;&#x6226;">&#x7D71;&#x7387;&#x8005;</a>&#x3068;&#x3044;&#x3046;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x306B;&#x8A98;&#x308F;&#x308C;&#x305F;&#x306E;&#x3067;&#x3001;&#x624B;&#x6301;&#x3061;&#x306E;&#x30AB;&#x30FC;&#x30C9;&#x3092;&#x30D9;&#x30FC;&#x30B9;&#x306B;&#x30C7;&#x30C3;&#x30AD;&#x3092;&#x7D44;&#x3093;&#x3067;&#x307F;&#x3066;&#x3044;&#x308B;&#x3002;&#x3053;&#x308C;&#x306F;&#x3053;&#x308C;&#x3067;&#x30C7;&#x30C3;&#x30AD;&#x306E;&#x30BB;&#x30AA;&#x30EA;&#x30FC;&#x304C;&#x5168;&#x7136;&#x9055;&#x3046;&#x306E;&#x3067;&#x697D;&#x3057;&#x3044;&#x3002;</p><h2 id="%E7%99%BB%E5%B1%B1">&#x767B;&#x5C71;</h2><p>&#x590F;&#x306B;&#x5927;&#x5E73;&#x5C71;&#x306B;&#x30CF;&#x30A4;&#x30AD;&#x30F3;&#x30B0;&#x306B;&#x884C;&#x3063;&#x305F;&#x306E;&#x304C;&#x4ECA;&#x5E74;&#x552F;&#x4E00;&#x306E;&#x767B;&#x5C71;&#x6D3B;&#x52D5;&#x3002;&#x771F;&#x590F;&#x3060;&#x3063;&#x305F;&#x306E;&#x3067;&#x3081;&#x3061;&#x3083;&#x304F;&#x3061;&#x3083;&#x6691;&#x304B;&#x3063;&#x305F;&#x3051;&#x3069;&#x697D;&#x3057;&#x304B;&#x3063;&#x305F;&#x3002;&#x96C4;&#x5927;&#x306A;&#x98A8;&#x666F;&#x306E;&#x30A2;&#x30EB;&#x30D7;&#x30B9;&#x3082;&#x3044;&#x3044;&#x3051;&#x3069;&#x3001;&#x4F4E;&#x5C71;&#x306E;&#x697D;&#x3057;&#x3055;&#x3082;&#x307E;&#x305F;&#x3042;&#x308B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://yamap.com/activities/18245232"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x52DD;&#x4E0A;&#x5C71;&#x30FB;&#x9DF2;&#x5CF0;&#x5C71;&#x30FB;&#x5927;&#x5E73;&#x5C71;&#x30FB;&#x5929;&#x5712; / takuya&#x3055;&#x3093;&#x306E;&#x938C;&#x5009;&#x30A2;&#x30EB;&#x30D7;&#x30B9;&#xFF08;&#x5927;&#x5E73;&#x5C71;&#x30FB;&#x5929;&#x53F0;&#x5C71;&#xFF09;&#x306E;&#x6D3B;&#x52D5;&#x30C7;&#x30FC;&#x30BF; | YAMAP / &#x30E4;&#x30DE;&#x30C3;&#x30D7;</div><div class="kg-bookmark-description">No.1&#x767B;&#x5C71;&#x30A2;&#x30D7;&#x30EA;YAMAP&#x3002;&#x30AA;&#x30D5;&#x30E9;&#x30A4;&#x30F3;&#x306E;&#x5C71;&#x4E2D;&#x3067;&#x3082;&#x73FE;&#x5728;&#x5730;&#x3092;&#x78BA;&#x8A8D;&#x3067;&#x304D;&#x308B;&#x3002;&#x6700;&#x65B0;&#x306E;&#x30EB;&#x30FC;&#x30C8;&#x72B6;&#x6CC1;&#x3092;&#x306F;&#x3058;&#x3081;&#x3001;&#x5168;&#x56FD;&#x5404;&#x5730;&#x306E;&#x767B;&#x5C71;&#x60C5;&#x5831;&#x3092;&#x7DB2;&#x7F85;&#x3002;YAMAP&#x3067;&#x3042;&#x306A;&#x305F;&#x306E;&#x767B;&#x5C71;&#x306F;&#x3082;&#x3063;&#x3068;&#x697D;&#x3057;&#x304F;&#x3001;&#x5B89;&#x5168;&#x306B;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://yamap.com/favicon.ico" alt><span class="kg-bookmark-author">YAMAP</span><span class="kg-bookmark-publisher">takuya</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.yamap.com/images/ogp_new.png" alt></div></a></figure><p>&#x6765;&#x5E74;&#x306B;&#x306F;&#x69CD;&#x30F6;&#x5CB3;&#x306B;&#x8A98;&#x308F;&#x308C;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x5C71;&#x306B;&#x3082;&#x3082;&#x3063;&#x3068;&#x884C;&#x304D;&#x305F;&#x3044;&#x3002;</p><p>1&#x5E74;&#x304F;&#x3089;&#x3044;&#x524D;&#x306B;&#x596E;&#x767A;&#x3057;&#x3066;LOWA&#x306E;&#x767B;&#x5C71;&#x9774;&#x3092;&#x8CB7;&#x3063;&#x305F;&#x306E;&#x3060;&#x3051;&#x3069;&#x3001;&#x8DB3;&#x306B;&#x5408;&#x3063;&#x3066;&#x306A;&#x3044;&#x3063;&#x307D;&#x304F;&#x3066;&#x6BCE;&#x56DE;&#x8DB3;&#x304C;&#x75DB;&#x304F;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x8CB7;&#x3044;&#x63DB;&#x3048;&#x3088;&#x3046;&#x304B;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;&#x5C71;&#x306B;&#x884C;&#x3051;&#x3066;&#x306A;&#x3044;&#x7406;&#x7531;&#x306E;&#x5927;&#x304D;&#x306A;&#x7406;&#x7531;&#x306E;&#x3072;&#x3068;&#x3064;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x30B7;&#x30E5;&#x30C3;&#x3068;&#x8CB7;&#x3063;&#x305F;&#x3089;&#x3088;&#x3055;&#x305D;&#x3046;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.iwatani-primus.co.jp/products/lowa/items/L220052/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x30C1;&#x30A7;&#x30D9;&#x30C0;&#x30FC;&#x30EC; EVO GT Ws&#x30FB;L220052&#xFF08;&#x30A2;&#x30EB;&#x30D1;&#x30A4;&#x30F3;&#xFF09; LOWA&#x30ED;&#x30FC;&#x30D0;&#x30FC;&#x516C;&#x5F0F;&#x30B5;&#x30A4;&#x30C8;&#xFF5C;&#x30A4;&#x30EF;&#x30BF;&#x30CB;&#x30FB;&#x30D7;&#x30EA;&#x30E0;&#x30B9;&#x682A;&#x5F0F;&#x4F1A;&#x793E;</div><div class="kg-bookmark-description">LOWA&#xFF08;&#x30ED;&#x30FC;&#x30D0;&#x30FC;&#xFF09;&#x3007;&#x3007;&#x3007;&#x3007;&#x306E;&#x88FD;&#x54C1;&#x7D39;&#x4ECB;&#x30DA;&#x30FC;&#x30B8;&#x3067;&#x3059;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.iwatani-primus.co.jp/products/lowa/assets/images/common/apple-touch-icon.png" alt><span class="kg-bookmark-author">&#x30A4;&#x30EF;&#x30BF;&#x30CB;&#x30FB;&#x30D7;&#x30EA;&#x30E0;&#x30B9;</span><span class="kg-bookmark-publisher">LOWA&#xFF08;&#x30ED;&#x30FC;&#x30D0;&#x30FC;&#xFF09;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.iwatani-primus.co.jp/products/lowa/assets/images/ogp.jpg" alt></div></a></figure><h2 id="%E3%82%B3%E3%83%BC%E3%83%92%E3%83%BC">&#x30B3;&#x30FC;&#x30D2;&#x30FC;</h2><p>&#x53BB;&#x5E74;&#x306E;&#x6625;&#x306B;&#x30BB;&#x30DF;&#x30B3;&#x30DE;&#x30FC;&#x30B7;&#x30E3;&#x30EB;&#x306E;&#x30A8;&#x30B9;&#x30D7;&#x30EC;&#x30C3;&#x30BD;&#x30DE;&#x30B7;&#x30F3;&#x3092;&#x8CB7;&#x3063;&#x305F;&#x3051;&#x3069;&#x3001;2022&#x5E74;&#x3082;&#x307B;&#x307C;&#x6BCE;&#x65E5;&#x4F7F;&#x3063;&#x305F;&#x3002;&#x30BF;&#x30F3;&#x30D1;&#x30FC;&#x3092;&#x8CB7;&#x3044;&#x66FF;&#x3048;&#x305F;&#x308A;&#x3001;&#x3044;&#x304F;&#x3064;&#x304B;&#x5468;&#x8FBA;&#x6A5F;&#x5668;&#x3092;&#x30A2;&#x30C3;&#x30D7;&#x30C7;&#x30FC;&#x30C8;&#x3057;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="ja" dir="ltr">58.5mm&#x306E;&#x30BF;&#x30F3;&#x30D1;&#x30FC;&#x304C;&#x6B32;&#x3057;&#x304F;&#x3066;Pullman&#x306E;BigStep&#xFF08;3&#x4E07;3000&#x5186;&#x304F;&#x3089;&#x3044;&#x3059;&#x308B;&#xFF09;&#x8CB7;&#x3044;&#x305D;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x305F;&#x3051;&#x3069;&#x30AF;&#x30EA;&#x30C3;&#x30AF;&#x76F4;&#x524D;&#x3067;&#x8E0F;&#x307F;&#x3068;&#x3069;&#x307E;&#x3063;&#x3066;&#x30A2;&#x30EA;&#x30A8;&#x30AF;&#x3067;&#x63A2;&#x3057;&#x305F;&#x3089;2500&#x5186;&#x306E;&#x304C;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x8CB7;&#x3063;&#x305F;&#x3002;3&#x4E07;&#x5186;&#x5F97;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002; <a href="https://t.co/EgkYKSB4uv">https://t.co/EgkYKSB4uv</a></p>&#x2014; takuya-a (@takuya_b) <a href="https://twitter.com/takuya_b/status/1505217396122198018?ref_src=twsrc%5Etfw">March 19, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>&#x30E9;&#x30C6;&#x30A2;&#x30FC;&#x30C8;&#x306F;&#x305D;&#x3093;&#x306A;&#x306B;&#x4E0A;&#x9054;&#x3057;&#x3066;&#x306A;&#x304F;&#x3066;&#x3001;&#x307E;&#x3060;&#x30CF;&#x30FC;&#x30C8;&#x304C;&#x63CF;&#x3051;&#x308B;&#x7A0B;&#x5EA6;&#x3002;&#x3057;&#x304B;&#x3082;&#x3001;&#x305F;&#x307E;&#x306B;&#x5931;&#x6557;&#x3059;&#x308B;&#x3002;&#x6765;&#x5E74;&#x306F;&#x30EA;&#x30FC;&#x30D5;&#x3068;&#x304B;&#x63CF;&#x3051;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x305F;&#x3044;&#x3002;</p><!--kg-card-begin: html--><blockquote class="instagram-media" data-instgrm-captioned data-instgrm-permalink="https://www.instagram.com/p/CXNFrt7vioh/?utm_source=ig_embed&amp;utm_campaign=loading" data-instgrm-version="14" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:16px;"> <a href="https://www.instagram.com/p/CXNFrt7vioh/?utm_source=ig_embed&amp;utm_campaign=loading" style=" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;" target="_blank"> <div style=" display: flex; flex-direction: row; align-items: center;"> <div style="background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div></div></div><div style="padding: 19% 0;"></div> <div style="display:block; height:50px; margin:0 auto 12px; width:50px;"><svg width="50px" height="50px" viewbox="0 0 60 60" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-511.000000, -20.000000)" fill="#000000"><g><path d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"/></g></g></g></svg></div><div style="padding-top: 8px;"> <div style=" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;">&#x3053;&#x306E;&#x6295;&#x7A3F;&#x3092;Instagram&#x3067;&#x898B;&#x308B;</div></div><div style="padding: 12.5% 0;"></div> <div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;"><div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div> <div style="background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div></div><div style="margin-left: 8px;"> <div style=" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;"></div> <div style=" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)"></div></div><div style="margin-left: auto;"> <div style=" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div> <div style=" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div> <div style=" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div></div></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div></div></a><p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a href="https://www.instagram.com/p/CXNFrt7vioh/?utm_source=ig_embed&amp;utm_campaign=loading" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">&#x6D45;&#x91CE; &#x5353;&#x4E5F;(@takuya_asn)&#x304C;&#x30B7;&#x30A7;&#x30A2;&#x3057;&#x305F;&#x6295;&#x7A3F;</a></p></div></blockquote> <script async src="//www.instagram.com/embed.js"></script><!--kg-card-end: html--><h2 id="%E8%AB%96%E6%96%87%E8%AA%AD%E3%81%BF">&#x8AD6;&#x6587;&#x8AAD;&#x307F;</h2><p>&#x79CB;&#x306B;&#x3001;1&#x5E74;&#x3076;&#x308A;&#x306B;<a href="https://sigir.jp/post/2022-11-12-irreading_2022fall/">IR Reading</a>&#x3067;&#x8AD6;&#x6587;&#x7D39;&#x4ECB;&#x3057;&#x305F;&#x3002;ANN&#xFF08;&#x8FD1;&#x4F3C;&#x8FD1;&#x508D;&#x63A2;&#x7D22;&#xFF09;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3092;&#x3001;&#x5BFE;&#x7167;&#x5B66;&#x7FD2;&#x306E;&#x67A0;&#x7D44;&#x307F;&#x3067;&#x6700;&#x9069;&#x5316;&#x3059;&#x308B;&#x3068;&#x3044;&#x3063;&#x305F;&#x3088;&#x3046;&#x306A;&#x5185;&#x5BB9;&#x3067;&#x3001;&#x306A;&#x304B;&#x306A;&#x304B;&#x9762;&#x767D;&#x304B;&#x3063;&#x305F;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe id="talk_frame_952441" class="speakerdeck-iframe" src="//speakerdeck.com/player/84fc868957434abd9a1f5fbd387a2409" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</figure><p>&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3068;&#x3044;&#x3048;&#x3070;&#x3001;2021 &#x5E74;&#x306E;&#x590F;&#x306F;Lucene&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30D0;&#x30A4;&#x30CA;&#x30EA;&#x3092;&#x89E3;&#x6790;&#x3057;&#x3066;&#x3044;&#x305F;&#xFF08;&#x5B8C;&#x6210;&#x3057;&#x3066;&#x306A;&#x304F;&#x3066;&#x307E;&#x3060;&#x4E0B;&#x66F8;&#x304D;&#x72B6;&#x614B;&#x30FB;&#x30FB;&#x30FB;&#xFF09;&#x3002;&#x6765;&#x5E74;&#x3001;Lucene 9&#x30D9;&#x30FC;&#x30B9;&#x3067;&#x307E;&#x305F;&#x3061;&#x3083;&#x3093;&#x3068;&#x89E3;&#x6790;&#x3057;&#x3066;&#x30D6;&#x30ED;&#x30B0;&#x3082;&#x66F8;&#x304D;&#x4E0A;&#x3052;&#x305F;&#x3044;&#x3002;</p><p><a href="https://stop-the-world.hatenablog.com/draft/entry/NXbtOo1V1X261E94FKRPr5eNXmM">https://stop-the-world.hatenablog.com/draft/entry/NXbtOo1V1X261E94FKRPr5eNXmM</a></p><p>&#x4ECA;&#x5E74;&#x306F;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x5727;&#x7E2E;&#x6280;&#x6CD5;&#x306B;&#x95A2;&#x3059;&#x308B;&#x8AD6;&#x6587;&#x3092;&#x30B5;&#x30FC;&#x30D9;&#x30A4;&#x3057;&#x3066;&#x30E1;&#x30E2;&#x3092;&#x66F8;&#x3044;&#x305F;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://takuya-a.net/blog/inverted-index-compression-techniques/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x5727;&#x7E2E;&#x6280;&#x6CD5;</div><div class="kg-bookmark-description">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306F;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306E;&#x5B9F;&#x88C5;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x4E2D;&#x5FC3;&#x7684;&#x306A;&#x5F79;&#x5272;&#x3092;&#x679C;&#x305F;&#x3059;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3067;&#x3042;&#x308B;&#x3002; &#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306F;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3068;&#x3068;&#x3082;&#x306B;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306E;&#x6027;&#x80FD;&#x306B;&#x76F4;&#x7D50;&#x3059;&#x308B;&#x3002;&#x3068;&#x304F;&#x306B;&#x5927;&#x898F;&#x6A21;&#x306A;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x30AD;&#x30E3;&#x30C3;&#x30B7;&#x30E5;&#x52B9;&#x7387;&#x3092;&#x9AD8;&#x3081;&#x3066;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x3092;&#x9AD8;&#x901F;&#x5316;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x5727;&#x7E2E;&#x306F;&#x5FC5;&#x8981;&#x4E0D;&#x53EF;&#x6B20;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002; &#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3001;&#x3068;&#x304F;&#x306B;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x8FD1;&#x5E74;&#x306E;&#x624B;&#x6CD5;&#x3092;&#x7C21;&#x5358;&#x306B;&#x307E;&#x3068;&#x3081;&#x308B;&#x3002; &#x76EE;&#x6B21; * &#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x57FA;&#x672C; * &#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x7279;&#x6027; * &#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x30D1;&#x30BF;&#x30FC;&#x30F3; * &#x8FD1;&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://takuya-a.net/blog/favicon.ico" alt><span class="kg-bookmark-author">Stop-the-world</span><span class="kg-bookmark-publisher">Takuya Asano</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.ghost.org/v4.0.0/images/publication-cover.jpg" alt></div></a></figure><p>&#x4EE3;&#x8868;&#x7684;&#x306A;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x305D;&#x306E;&#x3046;&#x3061;Rust&#x3042;&#x305F;&#x308A;&#x3067;&#x518D;&#x5B9F;&#x88C5;&#x3057;&#x3066;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;&#x3092;&#x53D6;&#x3063;&#x3066;&#x307F;&#x305F;&#x3044;&#x3002;</p><h2 id="%E4%BB%95%E4%BA%8B">&#x4ED5;&#x4E8B;</h2><p>&#x5E74;&#x660E;&#x3051;&#x306E;1&#x6708;31&#x65E5;&#x4ED8;&#x3067;&#x73FE;&#x8077;&#x3092;&#x9000;&#x8077;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x3063;&#x305F;&#x3002;&#x76DB;&#x5927;&#x306A;&#x9001;&#x5225;&#x4F1A;&#x3082;&#x958B;&#x3044;&#x3066;&#x3044;&#x305F;&#x3060;&#x3044;&#x3066;&#x3001;&#x7ACB;&#x6D3E;&#x306A;&#x8272;&#x7D19;&#x307E;&#x3067;&#x9802;&#x3044;&#x3066;&#x611F;&#x6FC0;&#x3057;&#x3066;&#x3057;&#x307E;&#x3063;&#x305F;&#x3002;&#x672C;&#x5F53;&#x306B;&#x3042;&#x308A;&#x304C;&#x3068;&#x3046;&#x3054;&#x3056;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x3044;&#x308D;&#x3093;&#x306A;&#x65B9;&#x306B;&#x611F;&#x8B1D;&#x306E;&#x8A00;&#x8449;&#x3092;&#x3044;&#x305F;&#x3060;&#x3051;&#x305F;&#x306E;&#x3067;&#x3001;&#x30C1;&#x30FC;&#x30E0;&#x306B;&#x591A;&#x5C11;&#x306F;&#x8CA2;&#x732E;&#x3067;&#x304D;&#x305F;&#x306E;&#x304B;&#x306A;&#x3068;&#x5B09;&#x3057;&#x3044;&#x6C17;&#x6301;&#x3061;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p><p>&#x6765;&#x5E74;2&#x6708;1&#x65E5;&#x304B;&#x3089;&#x306F;<a href="https://legalontech.jp/">LegalOn Technologies</a>&#x3068;&#x3044;&#x3046;&#x4F1A;&#x793E;&#x3067;&#x50CD;&#x304D;&#x307E;&#x3059;&#x3002;&#x3072;&#x304D;&#x3064;&#x3065;&#x304D;&#x691C;&#x7D22;&#x30FB;&#x63A8;&#x85A6;&#x306B;&#x95A2;&#x308F;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308B;&#x306E;&#x3067;&#x3001;&#x754C;&#x9688;&#x306E;&#x7686;&#x3055;&#x3093;&#x306F;&#x307E;&#x305F;&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;</p><h2 id="%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">&#x304A;&#x308F;&#x308A;&#x306B;</h2><p>&#x6765;&#x5E74;&#x3082;&#x697D;&#x3057;&#x3044;1&#x5E74;&#x306B;&#x3057;&#x3066;&#x3044;&#x304D;&#x305F;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;&#x3067;&#x306F;&#x3067;&#x306F;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[転置インデックスの圧縮技法]]></title><description><![CDATA[<p>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306F;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306E;&#x5B9F;&#x88C5;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x4E2D;&#x5FC3;&#x7684;&#x306A;&#x5F79;&#x5272;&#x3092;&#x679C;&#x305F;&#x3059;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3067;&#x3042;&#x308B;&#x3002;</p><p>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;</p>]]></description><link>https://takuya-a.net/blog/inverted-index-compression-techniques/</link><guid isPermaLink="false">6354a957791ec3000116b9dd</guid><dc:creator><![CDATA[Takuya Asano]]></dc:creator><pubDate>Sun, 23 Oct 2022 14:09:36 GMT</pubDate><content:encoded><![CDATA[<p>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306F;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306E;&#x5B9F;&#x88C5;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x4E2D;&#x5FC3;&#x7684;&#x306A;&#x5F79;&#x5272;&#x3092;&#x679C;&#x305F;&#x3059;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3067;&#x3042;&#x308B;&#x3002;</p><p>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306F;&#x3001;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3068;&#x3068;&#x3082;&#x306B;&#x3001;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306E;&#x6027;&#x80FD;&#x306B;&#x76F4;&#x7D50;&#x3059;&#x308B;&#x3002;&#x3068;&#x304F;&#x306B;&#x5927;&#x898F;&#x6A21;&#x306A;&#x691C;&#x7D22;&#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x30AD;&#x30E3;&#x30C3;&#x30B7;&#x30E5;&#x52B9;&#x7387;&#x3092;&#x9AD8;&#x3081;&#x3066;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x3092;&#x9AD8;&#x901F;&#x5316;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x5727;&#x7E2E;&#x306F;&#x5FC5;&#x8981;&#x4E0D;&#x53EF;&#x6B20;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;</p><p>&#x3053;&#x306E;&#x8A18;&#x4E8B;&#x3067;&#x306F;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x3001;&#x3068;&#x304F;&#x306B;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x8FD1;&#x5E74;&#x306E;&#x624B;&#x6CD5;&#x3092;&#x7C21;&#x5358;&#x306B;&#x307E;&#x3068;&#x3081;&#x308B;&#x3002;</p><h2 id="%E7%9B%AE%E6%AC%A1">&#x76EE;&#x6B21;</h2><!--kg-card-begin: markdown--><ul>
<li><a href="#%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E5%9F%BA%E6%9C%AC">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x57FA;&#x672C;</a>
<ul>
<li><a href="#%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0%E3%81%A8%E7%89%B9%E6%80%A7">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x7279;&#x6027;</a></li>
<li><a href="#%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x30D1;&#x30BF;&#x30FC;&#x30F3;</a></li>
</ul>
</li>
<li><a href="%E8%BF%91%E5%B9%B4%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E5%9C%A7%E7%B8%AE%E6%8A%80%E6%B3%95">&#x8FD1;&#x5E74;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x5727;&#x7E2E;&#x6280;&#x6CD5;</a>
<ul>
<li><a href="#variable-byte-family">Variable-Byte Family</a>
<ul>
<li><a href="#vbyte-variable-byte-thielheaps72">VByte</a></li>
<li><a href="#varint-gb-dean09">Varint-GB</a></li>
<li><a href="#varint-g8iu-stepanov11">Varint-G8IU</a></li>
<li><a href="#masked-vbyte-plaisance15">Masked-VByte</a></li>
<li><a href="#stream-vbyte-lemire18">Stream-VByte</a></li>
<li><a href="#opt-vbyte-pibiriventurini20">Opt-VByte</a></li>
</ul>
</li>
<li><a href="#simple-family">Simple Family</a>
<ul>
<li><a href="#simple9-anhmoffat05">Simple9</a></li>
<li><a href="#simple16-zhang08">Simple16</a></li>
<li><a href="#simple8b-anhmoffat10">Simple8b</a></li>
<li><a href="#qmx-trotman14">QMX</a></li>
</ul>
</li>
<li><a href="#pfor-family">PFor Family</a>
<ul>
<li><a href="#pfordelta-zukowski06">PForDelta</a></li>
<li><a href="#newpfd-yan09">NewPFD</a></li>
<li><a href="#opt-pfor-yan09">Opt-PFor</a></li>
<li><a href="#fast-pfor-simdpfordelta-simdbp128-lemireboytsov15">Fast-PFor, SIMDPforDelta, SIMDBP128</a></li>
</ul>
</li>
<li><a href="#elias-fano-family">Elias-Fano Family</a>
<ul>
<li><a href="#elias-fano-elias74-fano71">Elias-Fano</a></li>
<li><a href="#pef-ottavianoventurini14">PEF</a></li>
<li><a href="#roaring-chambi16-lemire16-lemire18">Roaring</a></li>
<li><a href="#slicing-pibiri19">Slicing</a></li>
</ul>
</li>
<li><a href="#binary-interpolative">Binary Interpolative</a>
<ul>
<li><a href="#bic-moffatstuiver96-moffatstuiver00">BIC</a></li>
</ul>
</li>
<li><a href="#directly-addressable">Directly-Addressable</a>
<ul>
<li><a href="#dac-brisaboa13">DAC</a></li>
</ul>
</li>
<li><a href="#dictionary-based">Dictionary-based</a>
<ul>
<li><a href="#dint-pibiri19">DINT</a></li>
</ul>
</li>
<li><a href="#bitmap-compression">Bitmap Compression</a>
<ul>
<li><a href="#bbc-antoshenkov95">BBC</a></li>
<li><a href="#wah-kesheng01">WAH</a></li>
<li><a href="#ewah-lemire10">EWAH</a></li>
<li><a href="#concise-colantoniopietro10">CONCISE</a></li>
<li><a href="#plwah-deli%C3%A8gepedersen10">PLWAH</a></li>
<li><a href="#valwah-guzun14">VALWAH</a></li>
<li><a href="#sbh-kim16">SBH</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#%E5%AE%9F%E8%A3%85%E3%81%A8%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF">&#x5B9F;&#x88C5;&#x3068;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;</a>
<ul>
<li><a href="#2ibench">2i_bench</a></li>
<li><a href="#icbench">IcBench</a></li>
<li><a href="#javafastpfor">JavaFastPFOR</a></li>
</ul>
</li>
<li><a href="#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE">&#x53C2;&#x8003;&#x6587;&#x732E;</a></li>
</ul>
<!--kg-card-end: markdown--><h2 id="%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E5%9F%BA%E6%9C%AC">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x57FA;&#x672C;</h2><p>&#x5177;&#x4F53;&#x7684;&#x306A;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x6280;&#x6CD5;&#x306B;&#x3064;&#x3044;&#x3066;&#x89E6;&#x308C;&#x308B;&#x524D;&#x306B;&#x3001;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x57FA;&#x672C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x3056;&#x3063;&#x304F;&#x308A;&#x3068;&#x8AAC;&#x660E;&#x3059;&#x308B;&#x3002;</p><h3 id="%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0%E3%81%A8%E7%89%B9%E6%80%A7">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#x3068;&#x7279;&#x6027;</h3><p><strong>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9; (inverted index)</strong> &#x306F;&#x3001;<strong>&#x30BF;&#x30FC;&#x30E0;&#x8F9E;&#x66F8; (term dictionary)</strong> &#x3068;<strong>&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8; (posting lists)</strong> &#xFF08;&#x8EE2;&#x7F6E;&#x30EA;&#x30B9;&#x30C8; (inverted list) &#x3068;&#x3082;&#xFF09;&#x304B;&#x3089;&#x69CB;&#x6210;&#x3055;&#x308C;&#x308B;&#x3002;</p><p>&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306F;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x69CB;&#x9020;&#x3092;&#x3082;&#x3061;&#x3001;<strong>&#x30BF;&#x30FC;&#x30E0; (term)</strong> &#x3068;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x304C;&#x4E00;&#x5BFE;&#x4E00;&#x3067;&#x5BFE;&#x5FDC;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-3.png" class="kg-image" alt="Christopher D. Manning, Prabhakar Raghavan, and Hinrich Sch&#xFC;tze. 2008. Introduction to Information Retrieval. Cambridge University Press, USA." loading="lazy" width="771" height="356" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-3.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-3.png 771w" sizes="(min-width: 720px) 720px"><figcaption>Christopher D. Manning, Prabhakar Raghavan, and Hinrich Sch&#xFC;tze. 2008. Introduction to Information Retrieval. p.7 Figure 1.3</figcaption></figure><p>&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5404;&#x8981;&#x7D20;&#x306E;&#x3053;&#x3068;&#x3092;&#x3001;<strong>&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0; (posting)</strong> &#x3068;&#x3044;&#x3044;&#x3001;&#x305D;&#x306E;&#x30BF;&#x30FC;&#x30E0;&#x304C;&#x542B;&#x307E;&#x308C;&#x308B;&#x6587;&#x66F8; ID &#x3092;&#x610F;&#x5473;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;&#x305F;&#x3068;&#x3048;&#x3070;&#x4E0A;&#x8A18;&#x306E;&#x4F8B;&#x3067;&#x306F;&#x3001;&#x6587;&#x66F8; 2, 31, 54, 101 &#x306B; Calpurnia &#x3068;&#x3044;&#x3046;&#x30BF;&#x30FC;&#x30E0;&#x304C;&#x542B;&#x307E;&#x308C;&#x3066;&#x3044;&#x308B;&#x3002;</p><p>&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306A;&#x7279;&#x5FB4;&#x3092;&#x3082;&#x3063;&#x3066;&#x3044;&#x308B;&#x3002;</p><ul><li>&#x975E;&#x8CA0;&#x306E;&#x6574;&#x6570;&#x306E;&#x307F;&#x304C;&#x542B;&#x307E;&#x308C;&#x308B;</li><li>&#x540C;&#x3058;&#x6570;&#x306F;&#x542B;&#x307E;&#x308C;&#x306A;&#x3044;</li><li>&#x5358;&#x8ABF;&#x5897;&#x52A0;&#x6570;&#x5217;&#xFF08;&#x30BD;&#x30FC;&#x30C8;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#xFF09;</li><li>&#x30B3;&#x30EC;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#xFF08;&#x6587;&#x66F8;&#x96C6;&#x5408;&#xFF09;&#x306B;&#x3088;&#x308B;&#x304C;&#x3001;&#x5024;&#x306E;&#x5206;&#x5E03;&#x306F;&#x504F;&#x3063;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x304C;&#x591A;&#x3044;</li></ul><p>&#x591A;&#x304F;&#x306E;&#x6280;&#x6CD5;&#x304C;&#x3053;&#x308C;&#x3089;&#x306E;&#x7279;&#x6027;&#x3092;&#x3046;&#x307E;&#x304F;&#x4F7F;&#x3063;&#x3066;&#x3001;&#x52B9;&#x7387;&#x7684;&#x306A;&#x5727;&#x7E2E;&#x3092;&#x5B9F;&#x73FE;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fstop-the-world.hatenablog.com%2Fentry%2Fcs276-information-retrieval-2" title="Information Retrieval and Web Search &#x307E;&#x3068;&#x3081;(2): &#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9; - stop-the-world" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></figure><h3 id="%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3">&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x30D1;&#x30BF;&#x30FC;&#x30F3;</h3><p>&#x691C;&#x7D22;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306F;&#x57FA;&#x672C;&#x3001;&#x30B7;&#x30FC;&#x30B1;&#x30F3;&#x30B7;&#x30E3;&#x30EB;&#x306B;&#xFF08;&#x524D;&#x304B;&#x3089;&#x9806;&#x756A;&#x306B;&#xFF09;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3055;&#x308C;&#x308B;&#x3002;</p><p>&#x305F;&#x3060;&#x3057;&#x3001;<strong>AND &#x30AF;&#x30A8;&#x30EA; (conjunction query, intersection)</strong> &#x306A;&#x3069;&#x306E;&#x3001;&#x8907;&#x6570;&#x306E;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x307E;&#x305F;&#x3050;&#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406;&#x3067;&#x306F;&#x3001;&#x52B9;&#x7387;&#x5316;&#x306E;&#x305F;&#x3081;&#x3001;&#x3044;&#x305A;&#x308C;&#x304B;&#x306E;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x306E;&#x30AB;&#x30FC;&#x30BD;&#x30EB;&#x3092;&#x7279;&#x5B9A;&#x306E;&#x6587;&#x66F8; ID &#x307E;&#x3067;&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x6700;&#x9069;&#x5316;&#x304C;&#x884C;&#x308F;&#x308C;&#x308B;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fstop-the-world.hatenablog.com%2Fentry%2Fcs276-information-retrieval-3" title="Information Retrieval and Web Search &#x307E;&#x3068;&#x3081;(3): &#x30AF;&#x30A8;&#x30EA;&#x51E6;&#x7406; - stop-the-world" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></figure><p><strong>OR &#x30AF;&#x30A8;&#x30EA; (disjunction query, union)</strong> &#x306B;&#x304A;&#x3044;&#x3066;&#x3082;&#x3001;MaxScore &#x3084; WAND &#x306A;&#x3069;&#x306E;&#x679D;&#x5208;&#x308A; (pruning) &#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x306B;&#x3088;&#x308A;&#x3001;&#x3053;&#x306E;&#x3088;&#x3046;&#x306A;&#x30B9;&#x30AD;&#x30C3;&#x30D7;&#x304C;&#x7A4D;&#x6975;&#x7684;&#x306B;&#x884C;&#x308F;&#x308C;&#x308B;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe id="talk_frame_678594" class="speakerdeck-iframe" src="//speakerdeck.com/player/1d03fc81e678419d9f87a97a77efa818" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</figure><h2 id="%E8%BF%91%E5%B9%B4%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E5%9C%A7%E7%B8%AE%E6%8A%80%E6%B3%95">&#x8FD1;&#x5E74;&#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x5727;&#x7E2E;&#x6280;&#x6CD5;</h2><p>Techniques for Inverted Index Compression &#x3068;&#x3044;&#x3046;&#x30B5;&#x30FC;&#x30D9;&#x30A4;&#x8AD6;&#x6587;&#x306B;&#x3066;&#x3001;2019&#x5E74;&#x307E;&#x3067;&#x306E;&#x6574;&#x6570;&#xFF08;&#x5217;&#xFF09;&#x5727;&#x7E2E;&#x6280;&#x6CD5;&#x304C;&#x8ABF;&#x67FB;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B; [Pibiri&amp;Venturini21]&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-4.png" class="kg-image" alt loading="lazy" width="1426" height="1036" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-4.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-4.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-4.png 1426w" sizes="(min-width: 720px) 720px"><figcaption>Giulio Ermanno Pibiri and Rossano Venturini. 2020. Techniques for Inverted Index Compression. Table 1</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://doi.org/10.1145/3415148"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Techniques for Inverted Index Compression | ACM Computing Surveys</div><div class="kg-bookmark-description">The data structure at the core of large-scale search engines is the inverted index, which is essentially a collection of sorted integer sequences called inverted lists. Because of the many documents indexed by such engines and stringent performance...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://doi.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Computing Surveys</span><span class="kg-bookmark-publisher">Giulio Ermanno Pibiri ISTI-CNR, Pisa, Italy</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/ac26fc21-bd9f-4739-b283-2d0d09d1e65d/3441629.cover.jpg" alt></div></a></figure><p>&#x307E;&#x305F;&#x3001; An Experimental Study of Bitmap Compression vs. Inverted List Compression &#x3067;&#x306F;&#x3001; bitmap compression &#x3068;&#x547C;&#x3070;&#x308C;&#x308B;&#x624B;&#x6CD5;&#x7FA4;&#x3068;&#x3001;&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;&#x6280;&#x6CD5;&#x3068;&#x306E;&#x6BD4;&#x8F03;&#x304C;&#x306A;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B; [Wang+17]&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-5.png" class="kg-image" alt loading="lazy" width="1528" height="426" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-5.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-5.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-5.png 1528w" sizes="(min-width: 720px) 720px"><figcaption>Jianguo Wang, Chunbin Lin, Yannis Papakonstantinou, and Steven Swanson. 2017. An Experimental Study of Bitmap Compression vs. Inverted List Compression. Figure 1</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://doi.org/10.1145/3035918.3064007"><div class="kg-bookmark-content"><div class="kg-bookmark-title">An Experimental Study of Bitmap Compression vs. Inverted List Compression | Proceedings of the 2017 ACM International Conference on Management of Data</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://doi.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Jianguo Wang University of California, San Diego, San Diego, CA, USA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/1c5293d2-b637-4b8b-91e8-4031d8772f8b/3035918.3064007.key.jpg" alt></div></a></figure><p>&#x4EE5;&#x4E0B;&#x3067;&#x306F;&#x3001;&#x305D;&#x308C;&#x305E;&#x308C;&#x306E;&#x5727;&#x7E2E;&#x6280;&#x6CD5;&#x306B;&#x3064;&#x3044;&#x3066;&#x3001;&#x7C21;&#x5358;&#x306B;&#x7D39;&#x4ECB;&#x3059;&#x308B;&#x3002;</p><h2 id="variable-byte-family">Variable-Byte Family</h2><ul><li>&#x6574;&#x6570;&#x5024;&#x3092;&#x305D;&#x308C;&#x305E;&#x308C;&#x5727;&#x7E2E;</li><li>&#x30D3;&#x30C3;&#x30C8;&#x3067;&#x306F;&#x306A;&#x304F;&#x30D0;&#x30A4;&#x30C8;&#x5358;&#x4F4D;&#x306B;&#x63C3;&#x3048;&#x308B; (byte-aligned)</li><li>SIMD &#x304C;&#x4F7F;&#x3048;&#x308B;&#x306E;&#x3067;&#x9AD8;&#x901F;&#x5316;&#x3057;&#x3084;&#x3059;&#x3044;</li></ul><h3 id="vbyte-variable-byte-thielheaps72">VByte (Variable-Byte) [Thiel&amp;Heaps72]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x6574;&#x6570;&#x5024;&#x3092;&#x30D0;&#x30A4;&#x30C8;&#x306E;&#x4E26;&#x3073;&#x306B;&#x3059;&#x308B;
<ul>
<li>1 byte &#x306F; 1 bit &#x306E;&#x30B3;&#x30F3;&#x30C8;&#x30ED;&#x30FC;&#x30EB;&#x30D3;&#x30C3;&#x30C8;&#x3068; 7 bit &#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D3;&#x30C3;&#x30C8;&#x3067;&#x8868;&#x73FE;</li>
</ul>
</li>
<li>&#x6700;&#x521D;&#x306E;&#x30D0;&#x30A4;&#x30C8;&#x306E;&#x307F;&#x30B3;&#x30F3;&#x30C8;&#x30ED;&#x30FC;&#x30EB;&#x30D3;&#x30C3;&#x30C8;&#x3092; 0 &#x306B;&#x3059;&#x308B;
<ul>
<li>&#x7D9A;&#x3044;&#x3066;&#x3044;&#x308B;&#x30D0;&#x30A4;&#x30C8;&#x3067;&#x306F;&#x30B3;&#x30F3;&#x30C8;&#x30ED;&#x30FC;&#x30EB;&#x30D3;&#x30C3;&#x30C8;&#x306F; 1</li>
</ul>
</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x3001; 65790 &#x306F; <strong>0</strong>0000100.<strong>1</strong>0000001.<strong>1</strong>1111110 &#x3068;&#x306A;&#x308B;</li>
<li>&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;&#x3068;&#x304D;&#x306F;&#x30C7;&#x30FC;&#x30BF;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x9023;&#x7D50;</li>
<li>&#x5927;&#x304D;&#x3044;&#x6574;&#x6570;&#x5024;&#x306E;&#x3068;&#x304D;&#x306B;&#x306F;&#x52B9;&#x7387;&#x7684;</li>
</ul>
<!--kg-card-end: markdown--><p><strong>&#x53C2;&#x8003;</strong></p><ul><li>Information Retrieval: Implementing and Evaluating Search Engines 6.3.4, 6.6</li><li>&#x4E0B;&#x8A18;&#x306E;&#x8B1B;&#x7FA9;&#x30B9;&#x30E9;&#x30A4;&#x30C9; p.16</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/jermp/data_compression_course/blob/master/2_integer_codes/2_integer_codes.pdf"><div class="kg-bookmark-content"><div class="kg-bookmark-title">data_compression_course/2_integer_codes.pdf at master &#xB7; jermp/data_compression_course</div><div class="kg-bookmark-description">A Crash Course on Data Compression. Contribute to jermp/data_compression_course development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">jermp</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/03babfd1bf5217243b80243288f57284654136f283fce952eb56e86cad03c718/jermp/data_compression_course" alt></div></a></figure><h3 id="varint-gb-dean09">Varint-GB [Dean09]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x30D0;&#x30A4;&#x30C8;&#x5358;&#x4F4D; (byte-aligned) &#x306A;&#x306E;&#x306F;&#x540C;&#x3058;</li>
<li>&#x6700;&#x521D;&#x306E; 2 bit &#x3092;&#x9577;&#x3055;&#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x306E;&#x306B;&#x4F7F;&#x3046;</li>
<li>4&#x3064;&#x306E;&#x6574;&#x6570;&#x5024;&#x3054;&#x3068;&#x306B;&#x30B0;&#x30EB;&#x30FC;&#x30D4;&#x30F3;&#x30B0;
<ul>
<li>&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x3054;&#x3068;&#x306E; 2 bit &#x3092;&#x96C6;&#x3081;&#x3066;&#x3001; 8 bit &#x306E;&#x30BF;&#x30B0;&#x3092;&#x4F5C;&#x308B;</li>
<li>&#x30BF;&#x30B0;&#x3092;&#x898B;&#x308C;&#x3070; 4 &#x3064;&#x306E;&#x6574;&#x6570;&#x5024;&#x3092;&#x305D;&#x308C;&#x305E;&#x308C;&#x3069;&#x306E;&#x9577;&#x3055;&#x3067;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308C;&#x3070;&#x3088;&#x3044;&#x304B;&#x308F;&#x304B;&#x308B;</li>
</ul>
</li>
<li>&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x304C; Variable-Byte &#x3088;&#x308A;&#x9AD8;&#x901F;
<ul>
<li>&#x5F93;&#x6765;&#x306E; Variable-Byte &#x306F; ~180M numbers/sec</li>
<li>Varint-GB &#x306F; ~400M numbers/sec</li>
</ul>
</li>
<li>Google &#x306E;&#x8EE2;&#x7F6E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306E;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x306B;&#x63A1;&#x7528;&#x3055;&#x308C;&#x305F;</li>
<li>Varint-GB &#x3068;&#x547C;&#x3070;&#x308C;&#x3066;&#x3044;&#x308B;
<ul>
<li>Group varint &#x3067;&#x3001;&#x9577;&#x3055;&#x306E;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x306F; binary (not unary)</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-6.png" class="kg-image" alt loading="lazy" width="1845" height="1379" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-6.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-6.png 1000w, https://takuya-a.net/blog/content/images/size/w1600/2022/10/image-6.png 1600w, https://takuya-a.net/blog/content/images/2022/10/image-6.png 1845w" sizes="(min-width: 720px) 720px"><figcaption>Jeffrey Dean. 2009. Challenges in building large-scale information retrieval systems: invited talk p.63</figcaption></figure><p><strong>&#x53C2;&#x8003;</strong></p><ul><li>&#x4E0B;&#x8A18;&#x306E;&#x30B9;&#x30E9;&#x30A4;&#x30C9; pp.55-63</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://research.google/pubs/pub37797/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Challenges in building large-scale information retrieval systems: invited talk &#x2013; Google Research</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://research.google/static/images/favicon-6da5620880159634213e197fafca1dde0272153be3e4590818533fab8d040770.ico" alt><span class="kg-bookmark-author">Google Research</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://research.google/static/images/share-9cd7266ef5001b20f98e01062c26189fa69ed6c784df04caf809668887fd339a.png" alt></div></a></figure><h3 id="varint-g8iu-stepanov11">Varint-G8IU [Stepanov+11]</h3><!--kg-card-begin: markdown--><ul>
<li>SIMD &#x547D;&#x4EE4;&#x3067;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x5316;</li>
<li>Varint-GB &#x3068;&#x540C;&#x3058;&#x3088;&#x3046;&#x306B;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x3054;&#x3068;&#x306B; 1 byte &#x306E;&#x30B3;&#x30F3;&#x30C8;&#x30ED;&#x30FC;&#x30EB;&#x30D0;&#x30A4;&#x30C8;&#xFF08;&#x30BF;&#x30B0;&#xFF09;&#x3092;&#x4F7F;&#x3046;</li>
<li>&#x3072;&#x3068;&#x3064;&#x306E;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x306E;&#x4E2D;&#x306B; 2 &#x304B;&#x3089; 8 &#x306E;&#x6574;&#x6570;&#x3092;&#x5165;&#x308C;&#x3089;&#x308C;&#x308B;
<ul>
<li>&#x56FA;&#x5B9A;&#x30B5;&#x30A4;&#x30BA; (e.g., 8 bytes) &#x306E;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306B;&#x3067;&#x304D;&#x308B;&#x3060;&#x3051;&#x591A;&#x304F;&#x306E;&#x6574;&#x6570;&#x3092;&#x8A70;&#x3081;&#x8FBC;&#x3080;</li>
<li>&#x56FA;&#x5B9A;&#x30B5;&#x30A4;&#x30BA;&#x3067;&#x3042;&#x308B;&#x3053;&#x3068;&#x3067; SIMD &#x3068;&#x76F8;&#x6027;&#x304C;&#x3044;&#x3044;</li>
</ul>
</li>
<li>Amazon &#x306E; Stepanov &#x306B;&#x3088;&#x3063;&#x3066;&#x958B;&#x767A;&#x3055;&#x308C;&#x305F;
<ul>
<li>&#x7279;&#x8A31;&#x304C;&#x53D6;&#x3089;&#x308C;&#x3066;&#x3044;&#x308B;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-7.png" class="kg-image" alt loading="lazy" width="767" height="295" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-7.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-7.png 767w" sizes="(min-width: 720px) 720px"><figcaption>Alexander Stepanov, Anil Gangolli, Daniel Rose, Ryan Ernst, and Paramjit Oberoi. 2011. SIMD-based decoding of posting lists. Figure 3</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-8.png" class="kg-image" alt loading="lazy" width="765" height="274" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-8.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-8.png 765w" sizes="(min-width: 720px) 720px"><figcaption>Alexander Stepanov, Anil Gangolli, Daniel Rose, Ryan Ernst, and Paramjit Oberoi. 2011. SIMD-based decoding of posting lists. Figure 5</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1145/2063576.2063627"><div class="kg-bookmark-content"><div class="kg-bookmark-title">SIMD-based decoding of posting lists | Proceedings of the 20th ACM international conference on Information and knowledge management</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Alexander A. Stepanov A9.com, Palo Alto, CA, USA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/1034024c-3aaf-42d7-96d5-ca78b9d196de/2063576.cover.jpg" alt></div></a></figure><p><strong>&#x53C2;&#x8003;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://lemire.me/blog/2017/09/27/stream-vbyte-breaking-new-speed-records-for-integer-compression/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Stream VByte: breaking new speed records for integer compression</div><div class="kg-bookmark-description">In many information systems, we work with arrays of integers. For example, maybe you need to keep track of which records in a database contain a given value. This sort of mapping can be expressed as an array of integers. These arrays can end up taking up a large fraction of your memory or disk &#x2026; Con&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://lemire.me/blog/wp-content/uploads/2015/10/profile2011_152.jpg" alt><span class="kg-bookmark-author">Daniel Lemire&apos;s blog</span><span class="kg-bookmark-publisher">View all posts by Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lemire.me/img/portrait2018facebook.jpg" alt></div></a></figure><h3 id="masked-vbyte-plaisance15">Masked-VByte [Plaisance+15]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x540C;&#x3058;&#x304F; VByte &#x306E; SIMD &#x5B9F;&#x88C5;</li>
<li>&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x306F;&#x30AA;&#x30EA;&#x30B8;&#x30CA;&#x30EB;&#x306E; Variable-Byte &#x3068;&#x540C;&#x3058;</li>
<li>&#x30C7;&#x30B3;&#x30FC;&#x30C9;
<ul>
<li>&#x5C02;&#x7528;&#x306E; SIMD &#x547D;&#x4EE4;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3001;&#x6700;&#x521D;&#x306B; MSBs (most significant bits) &#x3092;&#x96C6;&#x3081;&#x308B;</li>
<li>&#x4E8B;&#x524D;&#x306B;&#x69CB;&#x7BC9;&#x3055;&#x308C;&#x305F;&#x30EB;&#x30C3;&#x30AF;&#x30A2;&#x30C3;&#x30D7;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3068;&#x30B7;&#x30E3;&#x30C3;&#x30D5;&#x30EB;&#x547D;&#x4EE4;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x6574;&#x6570;&#x306B;&#x5909;&#x63DB;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x30AA;&#x30EA;&#x30B8;&#x30CA;&#x30EB;&#x306E; VByte &#x3088;&#x308A;&#x306F;&#x901F;&#x3044;&#x304C;&#x3001; Varint-G8IU &#x3088;&#x308A;&#x306F;&#x9045;&#x3044;
<ul>
<li>&#x305F;&#x3060;&#x3057;&#x3001; Varint-G8IU &#x3068;&#x9055;&#x3063;&#x3066;&#x30D1;&#x30C6;&#x30F3;&#x30C8;&#x30D5;&#x30EA;&#x30FC;</li>
</ul>
</li>
<li>Indeed &#x306E; Jeff Plaisance &#x306B;&#x3088;&#x3063;&#x3066;&#x958B;&#x767A;&#x3055;&#x308C;&#x305F;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-9.png" class="kg-image" alt loading="lazy" width="1331" height="500" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-9.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-9.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-9.png 1331w" sizes="(min-width: 720px) 720px"><figcaption>Jeff Plaisance, Nathan Kurz, and Daniel Lemire. 2015. Vectorized VByte Decoding. Figure 1</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1503.07387"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Vectorized VByte Decoding</div><div class="kg-bookmark-description">We consider the ubiquitous technique of VByte compression, which representseach integer as a variable length sequence of bytes. The low 7 bits of eachbyte encode a portion of the integer, and the high bit of each byte is reservedas a continuation flag. This flag is set to 1 for all bytes except t&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Jeff Plaisance</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><ul><li><a href="https://maskedvbyte.org/">https://maskedvbyte.org/</a> &#x304B;&#x3089; C/C++ &#x5B9F;&#x88C5;&#x304C;&#x30C0;&#x30A6;&#x30F3;&#x30ED;&#x30FC;&#x30C9;&#x53EF;&#x80FD;</li></ul><h3 id="stream-vbyte-lemire18">Stream-VByte [Lemire+18]</h3><!--kg-card-begin: markdown--><ul>
<li>SIMD &#x3067;&#x9AD8;&#x901F;&#x306A;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x9054;&#x6210;</li>
<li>Varint-GB &#x306F;&#x5236;&#x5FA1;&#x30D0;&#x30A4;&#x30C8;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D0;&#x30A4;&#x30C8;&#x304C;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30EA;&#x30FC;&#x30D6;&#x3067;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;SIMD &#x306B;&#x3088;&#x308B;&#x4E26;&#x884C;&#x51E6;&#x7406;&#x304C;&#x96E3;&#x3057;&#x304B;&#x3063;&#x305F;
<ul>
<li>&#x53EF;&#x5909;&#x9577;&#x306A;&#x306E;&#x3067;&#x3001;&#x524D;&#x306E;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x306E;&#x5236;&#x5FA1;&#x30D0;&#x30A4;&#x30C8;&#x3092;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3057;&#x306A;&#x3044;&#x3068;&#x6B21;&#x306E;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x304C;&#x3069;&#x3053;&#x306B;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x306E;&#x304B;&#x308F;&#x304B;&#x3089;&#x306A;&#x3044;</li>
<li>&#x3053;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x306E;&#x4F9D;&#x5B58;&#x95A2;&#x4FC2;&#x306B;&#x3088;&#x308A;&#x3001;&#x4E26;&#x5217;&#x5316;&#x3057;&#x3088;&#x3046;&#x3068;&#x3057;&#x3066;&#x3082;CPU&#x304C;&#x904A;&#x3093;&#x3067;&#x3057;&#x307E;&#x3046;</li>
</ul>
</li>
<li>&#x5236;&#x5FA1;&#x30D3;&#x30C3;&#x30C8;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x5225;&#x306E;&#x5834;&#x6240;&#x306B;&#x4FDD;&#x5B58;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067; CPU &#x306B;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x4F9B;&#x7D66;&#x3057;&#x3064;&#x3065;&#x3051;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x308B;</li>
<li>Varint-G8IU &#x3088;&#x308A;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x304C;&#x6700;&#x5927;&#x3067;2&#x500D;&#x9AD8;&#x901F;
<ul>
<li>&#x6761;&#x4EF6;&#x306B;&#x3088;&#x3063;&#x3066;&#x306F; memcpy &#x3092;&#x8D85;&#x3048;&#x308B;&#x901F;&#x5EA6;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-11.png" class="kg-image" alt loading="lazy" width="969" height="402" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-11.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-11.png 969w" sizes="(min-width: 720px) 720px"><figcaption>Daniel Lemire, Nathan Kurz, and Christoph Rupp. 2018. Stream VByte: Faster byte-oriented integer compression. Figure 3</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-12.png" class="kg-image" alt loading="lazy" width="1116" height="485" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-12.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-12.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-12.png 1116w" sizes="(min-width: 720px) 720px"><figcaption>Daniel Lemire, Nathan Kurz, and Christoph Rupp. 2018. Stream VByte: Faster byte-oriented integer compression. Figure 5</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1709.08990"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Stream VByte: Faster Byte-Oriented Integer Compression</div><div class="kg-bookmark-description">Arrays of integers are often compressed in search engines. Though there aremany ways to compress integers, we are interested in the popular byte-orientedinteger compression techniques (e.g., VByte or Google&#x2019;s Varint-GB). They areappealing due to their simplicity and engineering convenience. Amazo&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/lemire/streamvbyte"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - lemire/streamvbyte: Fast integer compression in C using the StreamVByte codec</div><div class="kg-bookmark-description">Fast integer compression in C using the StreamVByte codec - GitHub - lemire/streamvbyte: Fast integer compression in C using the StreamVByte codec</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/9ea147cabf93dccda383b6850e0b7c34529c9bcdb362f7dfe304a074809b6fa9/lemire/streamvbyte" alt></div></a></figure><h3 id="opt-vbyte-pibiriventurini20">Opt-VByte [Pibiri&amp;Venturini20]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x8907;&#x6570;&#x306E;&#x53EF;&#x5909;&#x9577;&#x306E;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306B;&#x5206;&#x5272;</li>
<li>&#x5BC6;&#x306A;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306F;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3067;&#x3001;&#x758E;&#x306A;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306F; VByte &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;
<ul>
<li>Cardinality &#x306B;&#x3088;&#x308B;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;</li>
<li>PEF &#x3068;&#x540C;&#x3058;&#x30A2;&#x30D7;&#x30ED;&#x30FC;&#x30C1;</li>
</ul>
</li>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x9078;&#x3073;&#x65B9;&#x3092;&#x6700;&#x9069;&#x5316;&#x3059;&#x308B;
<ul>
<li>&#x6700;&#x9069;&#x306A;&#x5206;&#x5272;&#x3092;&#x6642;&#x9593;&#x8A08;&#x7B97;&#x91CF; &#x398;(n)&#x3001;&#x7A7A;&#x9593;&#x8A08;&#x7B97;&#x91CF; O(1) &#x3067;&#x53B3;&#x5BC6;&#x89E3;&#x3092;&#x898B;&#x3064;&#x3051;&#x3089;&#x308C;&#x308B;</li>
<li>&#x5B9A;&#x6570;&#x4FC2;&#x6570;&#x306F;&#x975E;&#x5E38;&#x306B;&#x5C0F;&#x3055;&#x3044;&#x306E;&#x3067;&#x3001;&#x5B9F;&#x969B;&#x306B;&#x306F;&#x304B;&#x306A;&#x308A;&#x9AD8;&#x901F;</li>
<li>VByte &#x3067;&#x306A;&#x304F;&#x3066;&#x3082;&#x3001; point-wise &#x306A;&#x6574;&#x6570;&#x306E;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C0;&#x30FC;&#xFF08;Unary, Golomb, etc&#xFF09;&#x306A;&#x3089;&#x306A;&#x3093;&#x3067;&#x3082;&#x9069;&#x7528;&#x53EF;&#x80FD;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-13.png" class="kg-image" alt loading="lazy" width="816" height="494" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-13.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-13.png 816w" sizes="(min-width: 720px) 720px"><figcaption>Giulio Ermanno Pibiri and Rossano Venturini. 2020. On Optimally Partitioning Variable-Byte Codes. Fig. 2</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1109/TKDE.2019.2911288"><div class="kg-bookmark-content"><div class="kg-bookmark-title">On Optimally Partitioning Variable-Byte Codes | IEEE Transactions on Knowledge and Data Engineering</div><div class="kg-bookmark-description">The ubiquitous &lt;italic&gt;Variable-Byte&lt;/italic&gt; encoding is one of the fastest compressedrepresentation for integer sequences. However, its compression ratio is usually notcompetitive with other more sophisticated encoders, especially when the integers to...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">IEEE Transactions on Knowledge and Data Engineering</span><span class="kg-bookmark-publisher">Giulio Ermanno Pibiri ISTI-CNR and the University of Pisa, Pisa, Italy</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg" alt></div></a></figure><p><a href="https://rossanoventurini.github.io/papers/TKDE20.pdf">https://rossanoventurini.github.io/papers/TKDE20.pdf</a></p><p><strong>&#x5B9F;&#x88C5;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/jermp/opt_vbyte"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - jermp/opt_vbyte: Optimal partitioning of Variable-Byte codes for better compression and fast decoding.</div><div class="kg-bookmark-description">Optimal partitioning of Variable-Byte codes for better compression and fast decoding. - GitHub - jermp/opt_vbyte: Optimal partitioning of Variable-Byte codes for better compression and fast decoding.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">jermp</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/fccbeef9fde336ca1fe6cf6e7632d9fd01a277a235cbb093343582be925b3201/jermp/opt_vbyte" alt></div></a></figure><h2 id="simple-family">Simple Family</h2><ul><li>Variable-Byte &#x3068;&#x306F;&#x9055;&#x3063;&#x3066;&#x3001;&#x30BD;&#x30FC;&#x30C8;&#x6E08;&#x307F;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x306B;&#x9069;&#x3057;&#x305F;&#x624B;&#x6CD5;&#xFF08;PFor&#x306A;&#x3069;&#x3068;&#x540C;&#x69D8;&#xFF09;</li><li>&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x8981;&#x7D20;&#x9593;&#x306E;&#x5DEE;&#x5206; (gap) &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;</li><li>&#x8907;&#x6570;&#x306E;&#x5DEE;&#x5206;&#x3092; 1 word (32 bits - 128 bits) &#x306B;&#x8A70;&#x3081;&#x8FBC;&#x3080;</li><li>&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x306B;&#x3088;&#x3063;&#x3066;&#x30C7;&#x30FC;&#x30BF;&#x90E8;&#x5206;&#x3092;&#x3069;&#x3046;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;&#x304B;&#xFF08;&#x30D3;&#x30C3;&#x30C8;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#xFF09;&#x3092;&#x6C7A;&#x3081;&#x308B;</li></ul><h3 id="simple9-anhmoffat05">Simple9 [Anh&amp;Moffat05]</h3><!--kg-card-begin: markdown--><ul>
<li>Simple4b &#x3068;&#x3082;&#x547C;&#x3070;&#x308C;&#x308B;</li>
<li>32 bits &#x306E;&#x4E2D;&#x306B;&#x3067;&#x304D;&#x308B;&#x3060;&#x3051;&#x5DEE;&#x5206; (gap) &#x3092;&#x8A70;&#x3081;&#x8FBC;&#x3080;</li>
<li>4 bits &#x304B;&#x3089;&#x306A;&#x308B;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x3068;&#x3001;&#x6B8B;&#x308A;&#x306E; 28 bits &#x306B;&#x5206;&#x3051;&#x308B;</li>
<li>&#x5168;9&#x7A2E;&#x985E;&#x306E;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x306B;&#x3088;&#x3063;&#x3066;&#x6B8B;&#x308A;&#x306E; 28 bits &#x306B;&#x4F55;&#x500B;&#x306E;&#x6574;&#x6570;&#x3092;&#x8A70;&#x3081;&#x308B;&#x304B;&#x3092;&#x6C7A;&#x3081;&#x308B;
<ul>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x304C; <code>0000</code> &#x306E;&#x3068;&#x304D;&#x306F; 1 bit &#x306E;&#x6574;&#x6570; 28 &#x500B;&#x3092;&#x8A70;&#x3081;&#x308B;</li>
<li><code>0010</code> &#x306E;&#x3068;&#x304D;&#x306F; 3 bits &#x306E;&#x6574;&#x6570;&#x3092; 9 &#x500B;&#x8A70;&#x3081;&#x308B;&#xFF08;&#x3053;&#x306E;&#x3068;&#x304D; 1 bit &#x306F;&#x7121;&#x99C4;&#x306B;&#x306A;&#x308B;&#xFF09;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-26.png" class="kg-image" alt loading="lazy" width="1298" height="587" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-26.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-26.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-26.png 1298w" sizes="(min-width: 720px) 720px"><figcaption>Giulio Ermanno Pibiri and Rossano Venturini. 2020. Techniques for Inverted Index Compression. Table 6</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1023/B%3AINRT.0000048490.99518.5c"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Inverted Index Compression Using Word-Aligned Binary Codes | Information Retrieval</div><div class="kg-bookmark-description">We examine index representation techniques for document-based inverted files, andpresent a mechanism for compressing them using word-aligned binary codes. The newapproach allows extremely fast decoding of inverted lists during query processing,while ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">Information Retrieval</span><span class="kg-bookmark-publisher">Vo Ngoc Anh Department of Computer Science and Software Engineering, The University of Melbourne, Victoria 3010, Australia</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg" alt></div></a></figure><h3 id="simple16-zhang08">Simple16 [Zhang+08]</h3><!--kg-card-begin: markdown--><ul>
<li>Simple9 &#x3068;&#x540C;&#x69D8;&#x306B;&#x3001;32 bit &#x306E;&#x4E2D;&#x306B;&#x3067;&#x304D;&#x308B;&#x3060;&#x3051;&#x5DEE;&#x5206; (gap) &#x3092;&#x8A70;&#x3081;&#x8FBC;&#x3080;</li>
<li>4 bits &#x304B;&#x3089;&#x306A;&#x308B;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x3068;&#x3001;&#x6B8B;&#x308A;&#x306E; 28 bits &#x306B;&#x5206;&#x3051;&#x308B;</li>
<li>&#x5168;16&#x7A2E;&#x985E;&#x306E;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x3067;&#x3001;&#x6B8B;&#x308A;&#x306E; 28 bits &#x306B;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x6574;&#x6570;&#x3092;&#x8A70;&#x3081;&#x308B;&#x304B;&#xFF08;&#x30D3;&#x30C3;&#x30C8;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#xFF09;&#x3092;&#x6C7A;&#x3081;&#x308B;
<ul>
<li>&#x305F;&#x3068;&#x3048;&#x3070; 5, 5, 5, 5, 4, 4 &#x3067;&#x5408;&#x8A08; 28 bits</li>
<li>Simple9 &#x3067;&#x306F;&#x7121;&#x99C4;&#x306A;&#x30D3;&#x30C3;&#x30C8;&#x304C;&#x3042;&#x3063;&#x305F;&#x304C;&#x3001;&#x305D;&#x308C;&#x304C;&#x306A;&#x304F;&#x306A;&#x308B;</li>
<li>&#x5168;&#x30D3;&#x30C3;&#x30C8;&#x30D1;&#x30BF;&#x30FC;&#x30F3;: <a href="https://github.com/lemire/JavaFastPFOR/blob/1b9f1290edf66ec2b439c5d192a91c187d292812/src/main/java/me/lemire/integercompression/Simple16.java#L174-L182">https://github.com/lemire/JavaFastPFOR/blob/1b9f1290edf66ec2b439c5d192a91c187d292812/src/main/java/me/lemire/integercompression/Simple16.java#L174-L182</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/abs/10.1145/1367497.1367550"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Performance of compressed inverted list caching in search engines | Proceedings of the 17th international conference on World Wide Web</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Jiangong Zhang Polytechnic University, Brooklyn, NY, USA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/9fbcc178-4a94-40fa-b27b-260c07a82cd9/1367497.cover.jpg" alt></div></a></figure><p><a href="http://ra.ethz.ch/CDstore/www2008/www2008.org/papers/pdf/p387-zhangA.pdf">http://ra.ethz.ch/CDstore/www2008/www2008.org/papers/pdf/p387-zhangA.pdf</a></p><h3 id="simple8b-anhmoffat10">Simple8b [Anh&amp;Moffat10]</h3><ul><li>Simple16 &#x306E;&#x4E9C;&#x7A2E;</li><li>32 bits &#x3067;&#x306F;&#x306A;&#x304F; 64 bits &#x306E;&#x4E2D;&#x306B;&#x6574;&#x6570;&#x3092;&#x8A70;&#x3081;&#x308B;</li><li>4 bits &#x306E;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x3068;&#x3001;&#x6B8B;&#x308A;&#x306E; 60 bits &#x306B;&#x5206;&#x3051;&#x308B;</li><li>&#x5168;14&#x7A2E;&#x985E;&#x306E;&#x30BB;&#x30EC;&#x30AF;&#x30BF;</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.5555/1712666.1712668"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Index compression using 64-bit words | Software&#x2014;Practice &amp; Experience</div><div class="kg-bookmark-description">Modern computers typically make use of 64-bit words as the fundamental unit of dataaccess. However the decade-long migration from 32-bit architectures has not been reflectedin compression technology, because of a widespread assumption that effective ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">Software&#x2014;Practice &amp; Experience</span><span class="kg-bookmark-publisher">Vo Ngoc Anh Department of Computer Science and Software Engineering, The University of Melbourne, Victoria 3010, Australia</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg" alt></div></a></figure><h3 id="qmx-trotman14">QMX [Trotman14]</h3><!--kg-card-begin: markdown--><ul>
<li>SIMD &#x547D;&#x4EE4;&#x3092;&#x6D3B;&#x7528;</li>
<li>&#x540C;&#x3058;&#x304F; Simple &#x306E;&#x4E9C;&#x7A2E;&#x3067;&#x3001;128 bits &#x3082;&#x3057;&#x304F;&#x306F; 256 bits &#x306E;&#x306A;&#x304B;&#x306B;&#x6574;&#x6570;&#x3092;&#x8A70;&#x3081;&#x308B;</li>
<li>&#x4ED6;&#x306E; Simple &#x3068;&#x306F;&#x9055;&#x3044;&#x3001;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#xFF08;<strong>eXtractors</strong> &#x3068;&#x547C;&#x3076;&#xFF09;&#x3068;&#x30C7;&#x30FC;&#x30BF;&#xFF08;<strong>Quantities</strong> &#x3068;&#x547C;&#x3076;&#xFF09;&#x3092;&#x5225;&#x3005;&#x306B;&#x4FDD;&#x5B58;&#x3059;&#x308B;
<ul>
<li>&#x5225;&#x306E;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0;&#x3068;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067; CPU &#x304C;&#x904A;&#x3070;&#x306A;&#x3044;&#x3088;&#x3046;&#x306B;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x306E;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0;&#x306F;&#x30E9;&#x30F3;&#x30EC;&#x30F3;&#x30B0;&#x30B9;&#x7B26;&#x53F7; (RLE) &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3055;&#x308C;&#x308B;
<ul>
<li>&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x306F; 16 &#x7A2E;&#x985E;&#x3057;&#x304B;&#x306A;&#x3044;&#x306E;&#x3067;&#x3001;&#x540C;&#x3058;&#x3082;&#x306E;&#x304C;&#x7D9A;&#x304D;&#x3084;&#x3059;&#x3044;&#x305F;&#x3081;</li>
<li><code>(value, length)</code> &#x306E;&#x30DA;&#x30A2;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x30BB;&#x30EC;&#x30AF;&#x30BF;&#x306E;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0;&#x304C; <code>[12, 12, 12, 5, 7, 7, 7, 7, 9, 9]</code> &#x3060;&#x3063;&#x305F;&#x3068;&#x304D;&#x3001;RLE &#x306F; <code>[(12, 3), (5, 1), (7, 4), (9, 2)]</code> &#x3068;&#x306A;&#x308B;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1145/2682862.2682870"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Compression, SIMD, and Postings Lists | Proceedings of the 2014 Australasian Document Computing Symposium</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Other conferences</span><span class="kg-bookmark-publisher">Andrew Trotman Department of Computer Science, University of Otago, Dunedin, New Zealand</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/1112bb52-eeb8-438a-b917-11d9e299b74c/2682862.cover.jpg" alt></div></a></figure><h2 id="pfor-family">PFor Family</h2><!--kg-card-begin: markdown--><ul>
<li>Patched Frame-of-Reference</li>
<li>Simple &#x3068;&#x540C;&#x69D8;&#x306B;&#x3001;&#x30BD;&#x30FC;&#x30C8;&#x6E08;&#x307F;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x306B;&#x9069;&#x3057;&#x305F;&#x624B;&#x6CD5;
<ul>
<li>&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x8981;&#x7D20;&#x9593;&#x306E;&#x5DEE;&#x5206; (gap) &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x5358;&#x4F4D;&#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x4E2D;&#x306B;&#x5927;&#x304D;&#x3044;&#x5DEE;&#x5206;&#x304C;&#x3042;&#x308B;&#x3068;&#x3001;&#x305D;&#x308C;&#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x306E;&#x306B;&#x5FC5;&#x8981;&#x306A;&#x30D3;&#x30C3;&#x30C8;&#x6570;&#x304C;&#x5897;&#x3048;&#x308B;&#x305F;&#x3081;&#x3001;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x52B9;&#x7387;&#x304C;&#x60AA;&#x304F;&#x306A;&#x308B;</li>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x4E2D;&#x306E;&#x5927;&#x304D;&#x3044;&#x5DEE;&#x5206;&#x306F;&#x5225;&#x306E;&#x5834;&#x6240;&#x306B;&#x4FDD;&#x5B58;&#x3059;&#x308C;&#x3070;&#x3001;&#x5C0F;&#x3055;&#x3044;&#x5DEE;&#x5206;&#x306F;&#x5C11;&#x306A;&#x3044;&#x30D3;&#x30C3;&#x30C8;&#x6570;&#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3067;&#x304D;&#x308B;
<ul>
<li>&#x5B9F;&#x30C7;&#x30FC;&#x30BF;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F;&#x3001;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5DEE;&#x5206;&#x306F;&#x307B;&#x3068;&#x3093;&#x3069;&#x306E;&#x5834;&#x5408;&#x5C0F;&#x3055;&#x3044;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x5DEE;&#x5206;&#x304C; 15 &#x4EE5;&#x4E0B;&#x306A;&#x3089;&#x3001;&#x5404;&#x5DEE;&#x5206;&#x306F; 4 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x53EF;&#x80FD;</li>
<li>&#x3053;&#x306E;&#x30A2;&#x30D7;&#x30ED;&#x30FC;&#x30C1;&#x3092; patching &#x3068;&#x547C;&#x3076;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><h3 id="pfordelta-zukowski06">PForDelta [Zukowski+06]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x3054;&#x3068;&#x306B;2&#x3064;&#x306E;&#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF; b &#x3068; k &#x3092;&#x9078;&#x3076;
<ul>
<li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x4E2D;&#x306E;&#x6574;&#x6570;&#x306E;&#x307B;&#x3068;&#x3093;&#x3069; (e.g., 90%) &#x304C; <code>[b, b + 2^k - 1)</code> &#x306E;&#x7BC4;&#x56F2;&#x306B;&#x5165;&#x308B;&#x3088;&#x3046;&#x306B;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x305D;&#x306E;&#x7BC4;&#x56F2;&#x306B;&#x5165;&#x308B;&#x5DEE;&#x5206; <code>x</code> &#x306F;&#x3001; <code>x - b</code> &#x3092; k &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;</li>
<li>k &#x30D3;&#x30C3;&#x30C8;&#x306B;&#x53CE;&#x307E;&#x3089;&#x306A;&#x3044;&#x3001;&#x5927;&#x304D;&#x3044;&#x5DEE;&#x5206;&#x306F;&#x4F8B;&#x5916; (exception) &#x3068;&#x3057;&#x3066;&#x5225;&#x306E;&#x5834;&#x6240;&#x306B;&#x4FDD;&#x5B58;&#x3059;&#x308B;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070; <code>[3, 4, 7, 21, 9, 12, 5, 16, 6, 2, 34]</code> &#x3068;&#x3044;&#x3046;&#x30EA;&#x30B9;&#x30C8;&#x304C;&#x3042;&#x3063;&#x305F;&#x3068;&#x304D;&#x3001;<code>b = 2</code>, <code>k = 4</code> &#x3092;&#x9078;&#x3076;&#x3068;
<ul>
<li><code>[1, 2, 5, *, 7, 10, 3, *, 4, 0, *]</code> &#x3068;&#x306A;&#x308A;&#xFF08; <code>*</code> &#x306F; exception&#xFF09;&#x3001; exception &#x306F; <code>[21, 17, 34]</code> &#x3068;&#x306A;&#x308B;</li>
</ul>
</li>
<li>&#x5143;&#x8AD6;&#x6587;&#x3067;&#x306F;&#x3001;&#x30C7;&#x30A3;&#x30B9;&#x30AF;&#x4E0A;&#x3067;&#x306E;&#x5404;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x3092;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B;&#x5B9A;&#x3081;&#x3066;&#x3044;&#x308B;
<ul>
<li>header: &#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF; (b, k) &#x306E;&#x5024;&#x3068;&#x3001;&#x4ED6;&#x306E;&#x9818;&#x57DF;&#x306E;&#x958B;&#x59CB;&#x4F4D;&#x7F6E;&#x3068;&#x30B5;&#x30A4;&#x30BA;&#x306A;&#x3069;&#x304C;&#x4FDD;&#x5B58;&#x3055;&#x308C;&#x308B;</li>
<li>entry point section: 128&#x500B;&#x3054;&#x3068;&#x306B;&#x3001;&#x6B21;&#x306E;&#x4F8B;&#x5916;&#x306E;&#x4F4D;&#x7F6E;&#x3068;&#x3001;&#x5BFE;&#x5FDC;&#x3059;&#x308B; exception section &#x306E;&#x30AA;&#x30D5;&#x30BB;&#x30C3;&#x30C8;&#x3092;&#x4FDD;&#x5B58;&#x3059;&#x308B;&#x9818;&#x57DF;</li>
<li>code section: &#x305D;&#x308C;&#x305E;&#x308C;&#x306E;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3055;&#x308C;&#x305F;&#x5024;&#x3092;&#x683C;&#x7D0D;&#x3059;&#x308B;&#x9818;&#x57DF;
<ul>
<li>&#x4F8B;&#x5916;&#x306E;&#x5834;&#x5408;&#x306B;&#x306F;&#x3001;&#x6B21;&#x306E;&#x4F8B;&#x5916;&#x3078;&#x306E;&#x30AA;&#x30D5;&#x30BB;&#x30C3;&#x30C8;&#x304C;&#x66F8;&#x304B;&#x308C;&#x308B;</li>
<li>&#x6B21;&#x306E;&#x4F8B;&#x5916;&#x304C;&#x96E2;&#x308C;&#x3059;&#x304E;&#x3066;&#x3044;&#x3066; k &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x8868;&#x73FE;&#x3067;&#x304D;&#x306A;&#x3044;&#x5834;&#x5408;&#x3001;&#x4F8B;&#x5916;&#x3067;&#x306A;&#x3044;&#x5024;&#x3092;&#x9069;&#x5F53;&#x306B;&#x9078;&#x3093;&#x3067;&#x4F8B;&#x5916;&#x3068;&#x3057;&#x3066;&#x6271;&#x3046;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308B;</li>
</ul>
</li>
<li>exception section: &#x4F8B;&#x5916;&#x306E;&#x5024;&#x3092;&#x4FDD;&#x5B58;&#x3059;&#x308B;&#x3001;&#x5F8C;&#x308D;&#x306B;&#x5411;&#x304B;&#x3063;&#x3066;&#x4F38;&#x3073;&#x308B;&#x9818;&#x57DF;</li>
</ul>
</li>
<li>&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3067;&#x5206;&#x5C90;&#x4E88;&#x6E2C;&#x304C;&#x767A;&#x751F;&#x3057;&#x306A;&#x3044;&#x306E;&#x3067;&#x9AD8;&#x901F;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-14.png" class="kg-image" alt loading="lazy" width="722" height="557" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-14.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-14.png 722w" sizes="(min-width: 720px) 720px"><figcaption>Marcin Zukowski, Sandor Heman, Niels Nes, and Peter Boncz. 2006. Super-Scalar RAM-CPU Cache Compression. Figure 3</figcaption></figure><p><a href="https://www.researchgate.net/publication/4234735_Super-scalar_RAM-CPU_cache_compression">https://www.researchgate.net/publication/4234735_Super-scalar_RAM-CPU_cache_compression</a></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://slidesplayer.net/slide/11190388/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Today&#x2019;s Paper Hao Yan, Shuai Ding and Torsten Suel - ppt download</div><div class="kg-bookmark-description">&#x80CC;&#x666F;&#x77E5;&#x8B58;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://slidesplayer.net/favicon.ico" alt><span class="kg-bookmark-author">ppt download</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://slidesplayer.net/static/blue_design/img/logo_slideplayer.png" alt></div></a></figure><h3 id="newpfd-yan09">NewPFD [Yan+09]</h3><!--kg-card-begin: markdown--><ul>
<li>PForDelta + Simple16</li>
<li>&#x4F8B;&#x5916; (exception) &#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x4F8B;&#x5916;&#x306E;&#x30AA;&#x30D5;&#x30BB;&#x30C3;&#x30C8;&#x5024;&#x3068;&#x4F8B;&#x5916;&#x3092;2&#x3064;&#x306E;&#x5225;&#x306E;&#x914D;&#x5217;&#x306B;&#x4FDD;&#x5B58;&#x3059;&#x308B;
<ul>
<li>code section &#x306E;&#x4F8B;&#x5916;&#x306B;&#x5BFE;&#x5FDC;&#x3059;&#x308B;&#x5834;&#x6240;&#x306B;&#x306F;&#x3001;&#x4F8B;&#x5916;&#x306E;&#x4E0B;&#x4F4D; b &#x30D3;&#x30C3;&#x30C8;&#x3092;&#x66F8;&#x304F;</li>
<li>&#x4F8B;&#x5916;&#x306E;&#x6B8B;&#x308A;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x5225;&#x306E;&#x914D;&#x5217;&#x306B;&#x66F8;&#x304F;</li>
<li>&#x4F8B;&#x5916;&#x306E;&#x30AA;&#x30D5;&#x30BB;&#x30C3;&#x30C8;&#xFF08;&#x6B21;&#x306E;&#x4F8B;&#x5916;&#x3078;&#x306E;&#x4F4D;&#x7F6E;&#x5DEE;&#x5206;&#xFF09;&#x3092;&#x5225;&#x306E;&#x914D;&#x5217;&#x306B;&#x66F8;&#x304F;</li>
<li>&#x3053;&#x306E;2&#x3064;&#x306E;&#x914D;&#x5217;&#x3092; Simple16 &#x3067;&#x3055;&#x3089;&#x306B;&#x5727;&#x7E2E;&#x3059;&#x308B;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/abs/10.1145/1526709.1526764"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Inverted index compression and query processing with optimized document ordering | Proceedings of the 18th international conference on World wide web</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Hao Yan Polytechnic Institute of NYU, Brooklyn, NY, USA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/5c809f98-28af-4fea-8c56-2d62ea627723/1526709.cover.jpg" alt></div></a></figure><figure class="kg-card kg-embed-card"><iframe src="https://www.slideshare.net/slideshow/embed_code/key/6Y0qppLeOuTXTR" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/JavaDM/ss-3561377" title="&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;" target="_blank">&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;</a> </strong> from <strong><a href="https://www.slideshare.net/JavaDM" target="_blank">JAVA DM</a></strong> </div>

</figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://slidesplayer.net/slide/11190388/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Today&#x2019;s Paper Hao Yan, Shuai Ding and Torsten Suel - ppt download</div><div class="kg-bookmark-description">&#x80CC;&#x666F;&#x77E5;&#x8B58;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://slidesplayer.net/favicon.ico" alt><span class="kg-bookmark-author">ppt download</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://slidesplayer.net/static/blue_design/img/logo_slideplayer.png" alt></div></a></figure><h3 id="opt-pfor-yan09">Opt-PFor [Yan+09]</h3><ul><li>PForDelta &#x306E;&#x6700;&#x9069;&#x5316;&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;</li><li>&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x30B5;&#x30A4;&#x30BA;&#x304C;&#x5C0F;&#x3055;&#x304F;&#x306A;&#x308B;&#x3088;&#x3046;&#x306B;&#x3001;&#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF; b, k &#x3092;&#x6700;&#x9069;&#x5316;</li><li>PForDelta &#x3088;&#x308A;&#x5C0F;&#x3055;&#x304F;&#x306A;&#x308B;&#x304C;&#x3001;&#x901F;&#x5EA6;&#x306F;&#x5C11;&#x3057;&#x3060;&#x3051;&#x843D;&#x3061;&#x308B;</li><li>NewPFD &#x3068;&#x540C;&#x3058;&#x8AD6;&#x6587;&#x3067;&#x63D0;&#x5531;&#x3055;&#x308C;&#x305F;</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1145/1526709.1526764"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Inverted index compression and query processing with optimized document ordering | Proceedings of the 18th international conference on World wide web</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Hao Yan Polytechnic Institute of NYU, Brooklyn, NY, USA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/5c809f98-28af-4fea-8c56-2d62ea627723/1526709.cover.jpg" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/javasoze/kamikaze/blob/master/src/main/java/com/kamikaze/pfordelta/PForDelta.java"><div class="kg-bookmark-content"><div class="kg-bookmark-title">kamikaze/PForDelta.java at master &#xB7; javasoze/kamikaze</div><div class="kg-bookmark-description">DocId set compression and set operation library. Contribute to javasoze/kamikaze development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">javasoze</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/b70b8c76dbea5137495eb1b89f461ee706c108963db6de57b2f2fad290ac8ea0/javasoze/kamikaze" alt></div></a></figure><h3 id="fast-pfor-simdpfordelta-simdbp128-lemireboytsov15">Fast-PFor, SIMDPforDelta, SIMDBP128 [Lemire&amp;Boytsov15]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x3053;&#x308C;&#x3082; PForDelta &#x306E;&#x4E9C;&#x7A2E;</li>
<li>&#x4F8B;&#x5916;&#x3092;&#x30DA;&#x30FC;&#x30B8;&#xFF08;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#xFF09;&#x306B;&#x5727;&#x7E2E;&#x3059;&#x308B;
<ul>
<li>&#x305F;&#x3068;&#x3048;&#x3070; 1 &#x30DA;&#x30FC;&#x30B8;&#x306F; 32 &#x500B;&#x306E;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x3067;&#x69CB;&#x6210;&#x3055;&#x308C;&#x308B;</li>
<li>&#x30DA;&#x30FC;&#x30B8;&#x3054;&#x3068;&#x306B;&#x4F8B;&#x5916;&#x3092;&#x307E;&#x3068;&#x3081;&#x3066;&#x8A18;&#x9332;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x30DA;&#x30FC;&#x30B8;&#x5358;&#x4F4D;&#x3067;&#x307E;&#x3068;&#x3081;&#x3066;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x9AD8;&#x901F;&#x5316;</li>
<li>SIMD &#x3067;&#x3055;&#x3089;&#x306B;&#x9AD8;&#x901F;&#x5316;&#x3067;&#x304D;&#x308B;
<ul>
<li>SIMDPforDelta, SIMDBP128</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1002/spe.2203"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Decoding billions of integers per second through vectorization | Software&#x2014;Practice &amp; Experience</div><div class="kg-bookmark-description">In many important applications-such as search engines and relational database systems-dataare stored in the form of arrays of integers. Encoding and, most importantly, decodingof these arrays consumes considerable CPUtime. Therefore, substantial ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">Software&#x2014;Practice &amp; Experience</span><span class="kg-bookmark-publisher">D. Lemire LICEF Research Center, TELUQ, Montreal, QC, Canada</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/do/10.1145/contrib-81100092997/rel-imgonly/small1.png" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1209.2137"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Decoding billions of integers per second through vectorization</div><div class="kg-bookmark-description">In many important applications -- such as search engines and relationaldatabase systems -- data is stored in the form of arrays of integers. Encodingand, most importantly, decoding of these arrays consumes considerable CPU time.Therefore, substantial effort has been made to reduce costs associate&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/lemire/JavaFastPFOR"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - lemire/JavaFastPFOR: A simple integer compression library in Java</div><div class="kg-bookmark-description">A simple integer compression library in Java . Contribute to lemire/JavaFastPFOR development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/bcc7ee07595c14cb318d61d4dcef6ea1637fbb4b5603d758ed26b4062ba4fe91/lemire/JavaFastPFOR" alt></div></a></figure><h2 id="elias-fano-family">Elias-Fano Family</h2><ul><li>Elias-Fano &#x3068;&#x305D;&#x306E;&#x4E9C;&#x7A2E;&#xFF08;&#x4ED6;&#x306E;&#x624B;&#x6CD5;&#x3068;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x305F;&#x30CF;&#x30A4;&#x30D6;&#x30EA;&#x30C3;&#x30C9;&#x3092;&#x542B;&#x3080;&#xFF09;</li></ul><h3 id="elias-fano-elias74-fano71">Elias-Fano [Elias74, Fano71]</h3><!--kg-card-begin: markdown--><ul>
<li>&#x30BD;&#x30FC;&#x30C8;&#x6E08;&#x307F;&#x6574;&#x6570;&#x914D;&#x5217;&#x306F;&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x304C;&#x5171;&#x6709;&#x3057;&#x3084;&#x3059;&#x3044;&#x3053;&#x3068;&#x306B;&#x7740;&#x76EE;</li>
<li>&#x4E0B;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#xFF08; <code>l</code> &#x30D3;&#x30C3;&#x30C8;&#x3068;&#x3059;&#x308B;&#xFF09;&#x3068;&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x5206;&#x3051;&#x3066;&#x4FDD;&#x5B58;&#x3059;&#x308B;
<ul>
<li>&#x4E0B;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x306F;&#x305D;&#x306E;&#x307E;&#x307E;</li>
<li>&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x306F;&#x3001;&#x540C;&#x3058;&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x3082;&#x3064;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#xFF08;&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#xFF09;&#x3054;&#x3068;&#x306B;&#x3001;&#x305D;&#x306E;&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x306E;&#x500B;&#x6570;&#x3092; Unary code &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x4EE5;&#x4E0B;&#x306E;&#x4F8B;&#x3067;&#x306F;&#x3001;&#x30AF;&#x30E9;&#x30B9;&#x30BF;&#x306E;&#x6570;&#x304C;&#x305D;&#x308C;&#x305E;&#x308C; 3, 3, 1, 1, 2, 0, 1, 1 &#x306A;&#x306E;&#x3067;&#x3001;&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x306F; <code>1110.1110.10.10.110.0.10.10</code> &#x3068;&#x3044;&#x3046;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306B;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3055;&#x308C;&#x308B;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-15.png" class="kg-image" alt loading="lazy" width="1570" height="580" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-15.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-15.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-15.png 1570w" sizes="(min-width: 720px) 720px"><figcaption>Giulio Ermanno Pibiri and Rossano Venturini. 2020. Techniques for Inverted Index Compression. Table 7</figcaption></figure><!--kg-card-begin: markdown--><ul>
<li>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x304C;&#x53EF;&#x80FD;
<ul>
<li>&#x4E0B;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x306E;&#x914D;&#x5217; ( <code>low_bits</code> ) &#x304B;&#x3089;&#x306E;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x3001;&#x5358;&#x306B; <code>low_bits[i]</code> &#x3067;&#x3088;&#x3044;</li>
<li>&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3057;&#x305F;&#x914D;&#x5217; ( <code>high_bits</code> ) &#x306F;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x306A;&#x306E;&#x3067;&#x3001; Rank &#x6F14;&#x7B97;&#x3068; Select &#x6F14;&#x7B97;&#x3092;&#x5229;&#x7528;&#x3067;&#x304D;&#x308B;</li>
<li><code>i</code> &#x756A;&#x76EE;&#x306E;&#x8981;&#x7D20;&#x306E;&#x4E0A;&#x4F4D;&#x30D3;&#x30C3;&#x30C8;&#x306E;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x3001; <code>Rank0(Select1(i))</code> &#x3092;&#x8A08;&#x7B97;&#x3059;&#x308C;&#x3070;&#x3088;&#x3044;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/abs/10.1145/321812.321820"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Efficient Storage and Retrieval by Content and Address of Static Files | Journal of the ACM</div><div class="kg-bookmark-description">We consider a set of static files or inventories, each consisting of the same numberof entries, each entry a binary word of the same fixed length selected (with replacement)from the set of all binary sequences of that length, and the entries in each ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">Journal of the ACM</span><span class="kg-bookmark-publisher">Peter Elias Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, MA</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/a2112c16-d703-43c7-891e-d159a575b59e/default_cover.jpg" alt></div></a></figure><h3 id="pef-ottavianoventurini14">PEF [Ottaviano&amp;Venturini14]</h3><!--kg-card-begin: markdown--><ul>
<li>Partitioned Elias-Fano</li>
<li>Elias-Fano &#x306B;&#x5BFE;&#x3057;&#x3066;&#x3001;&#x30AB;&#x30FC;&#x30C7;&#x30A3;&#x30CA;&#x30EA;&#x30C6;&#x30A3;&#x306B;&#x3088;&#x308B;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3092;&#x884C;&#x3046;</li>
<li>&#x30BD;&#x30FC;&#x30C8;&#x6E08;&#x307F;&#x6574;&#x6570;&#x5217;&#x304C;&#x8FD1;&#x304F;&#x306B;&#x96C6;&#x307E;&#x3063;&#x3066;&#x3044;&#x308B;&#x5834;&#x5408;&#x3001;&#x305D;&#x308C;&#x3089;&#x3092;&#x5BC6;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3001;&#x3044;&#x308F;&#x3086;&#x308B;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB; (characteristic bit-vector) &#x3067;&#x8868;&#x73FE;&#x3059;&#x308B;
<ul>
<li>&#x305F;&#x3068;&#x3048;&#x3070; <code>[2,3,4,5,6,7,10,11,13]</code> &#x306F; <code>0111111001101</code> &#xFF08;&#x5DE6;&#x304B;&#x3089; 1, 2, 3, &#x2026; &#x3092;&#x8868;&#x3059;&#xFF09;&#x3067;&#x8868;&#x73FE;&#x3067;&#x304D;&#x308B;</li>
<li>&#x6574;&#x6570;&#x5217;&#x304C;&#x5BC6;&#x306A;&#x5834;&#x5408;&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x8868;&#x73FE;&#x3082;&#x30B3;&#x30F3;&#x30D1;&#x30AF;&#x30C8;&#x306B;&#x306A;&#x308B;</li>
</ul>
</li>
<li>&#x758E;&#x306A;&#x6574;&#x6570;&#x5217;&#x306E;&#x90E8;&#x5206;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x306F;&#x3001; Elias-Fano &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-16.png" class="kg-image" alt loading="lazy" width="1018" height="151" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-16.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-16.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-16.png 1018w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://github.com/jermp/data_compression_course/blob/master/3_list_compressors/3_list_compressors.pdf">A Crash Course on Data Compression. 3. List Compressors</a> p.24</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/abs/10.1145/2600428.2609615"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Partitioned Elias-Fano indexes | Proceedings of the 37th international ACM SIGIR conference on Research &amp; development in information retrieval</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Giuseppe Ottaviano ISTI-CNR, Pisa, Italy</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/8918d63b-73da-4927-bab4-9efb2ef2cd06/2600428.cover.jpg" alt></div></a></figure><h3 id="roaring-chambi16-lemire16-lemire18">Roaring [Chambi+16, Lemire+16, Lemire+18]</h3><!--kg-card-begin: markdown--><ul>
<li>Universe &#xFF08;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x5BFE;&#x8C61;&#x304C;&#x3068;&#x308A;&#x3046;&#x308B;&#x6574;&#x6570;&#x5024;&#x306E;&#x7A7A;&#x9593;&#xFF09;&#x306B;&#x5BFE;&#x3059;&#x308B;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3092;&#x884C;&#x3046;
<ul>
<li>PEF &#x306E;&#x3088;&#x3046;&#x306B;&#x30AB;&#x30FC;&#x30C7;&#x30A3;&#x30CA;&#x30EA;&#x30C6;&#x30A3;&#x306B;&#x3088;&#x3063;&#x3066;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3059;&#x308B;&#x306E;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001;&#x56FA;&#x5B9A;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x6570;&#x3067;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3059;&#x308B;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070; Universe &#x304C; 2^32 &#x3060;&#x3063;&#x305F;&#x3068;&#x3057;&#x3066;&#x3001;&#x4E0A;&#x4F4D; 16 &#x30D3;&#x30C3;&#x30C8;&#x3067;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3059;&#x308B;&#x3068;&#x3001;&#x7A7A;&#x9593;&#x306F; 2^16 &#x306E;&#x30C1;&#x30E3;&#x30F3;&#x30AF;&#x306B;&#x5206;&#x5272;&#x3055;&#x308C;&#x308B;</li>
</ul>
</li>
<li>&#x5404;&#x30C1;&#x30E3;&#x30F3;&#x30AF;&#x306F;&#x3001;&#x5BC6;&#x306A;&#x5834;&#x5408;&#x306F;&#x30D3;&#x30C3;&#x30C8;&#x30D9;&#x30AF;&#x30C8;&#x30EB;&#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3057;&#x3001;&#x758E;&#x306A;&#x5834;&#x5408;&#x306F; sorted list &#x3068;&#x3057;&#x3066;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;
<ul>
<li>&#x758E;&#x306A;&#x5834;&#x5408;&#x306F;&#x3001;&#x540C;&#x69D8;&#x306B;&#x3055;&#x3089;&#x306B; Universe &#x3092;&#x5206;&#x5272;&#x3067;&#x304D;&#x308B;</li>
<li>&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x4E0A;&#x306E;&#x4F8B;&#x3067;&#x306F;&#x3001; 2^16 &#x306E; Universe &#x3092;&#x3055;&#x3089;&#x306B; 2^8 &#x306B;&#x5206;&#x5272;&#x3067;&#x304D;&#x308B;</li>
</ul>
</li>
<li>&#x30AB;&#x30FC;&#x30C7;&#x30A3;&#x30CA;&#x30EA;&#x30C6;&#x30A3;&#x306B;&#x3088;&#x308B;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3088;&#x308A;&#x3082;&#x30B5;&#x30A4;&#x30BA;&#x306F;&#x5927;&#x304D;&#x304F;&#x306A;&#x308B;&#x304C;&#x3001; intersection &#x3084; union &#x306F;&#x9AD8;&#x901F;&#x306B;&#x3067;&#x304D;&#x308B;
<ul>
<li>&#x3059;&#x3079;&#x3066;&#x306E;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306B;&#x304A;&#x3044;&#x3066;&#x3001;&#x7A7A;&#x9593;&#x304C;&#x540C;&#x3058;&#x3088;&#x3046;&#x306B;&#x5206;&#x5272;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x305F;&#x3081;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-17.png" class="kg-image" alt loading="lazy" width="813" height="227" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-17.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-17.png 813w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://github.com/jermp/data_compression_course/blob/master/3_list_compressors/3_list_compressors.pdf">A Crash Course on Data Compression. 3. List Compressors</a> p.25</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1402.6407"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Better bitmap performance with Roaring bitmaps</div><div class="kg-bookmark-description">Bitmap indexes are commonly used in databases and search engines. Byexploiting bit-level parallelism, they can significantly accelerate queries.However, they can use much memory, and thus we might prefer compressed bitmapindexes. Following Oracle&#x2019;s lead, bitmaps are often compressed using run-len&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Samy Chambi</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1603.06549"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Consistently faster and smaller compressed bitmaps with Roaring</div><div class="kg-bookmark-description">Compressed bitmap indexes are used in databases and search engines. Manybitmap compression techniques have been proposed, almost all relying primarilyon run-length encoding (RLE). However, on unsorted data, we can get superiorperformance with a hybrid compression technique that uses both uncompre&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1709.07821"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Roaring Bitmaps: Implementation of an Optimized Software Library</div><div class="kg-bookmark-description">Compressed bitmap indexes are used in systems such as Git or Oracle toaccelerate queries. They represent sets and often support operations such asunions, intersections, differences, and symmetric differences. Severalimportant systems such as Elasticsearch, Apache Spark, Netflix&#x2019;s Atlas,LinkedIn&#x2019;&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><h3 id="slicing-pibiri19">Slicing [Pibiri19]</h3><!--kg-card-begin: markdown--><ul>
<li>Sliced Indexes &#x3068;&#x3082;</li>
<li>Roaring &#x3068;&#x540C;&#x69D8;&#x3001; Universe &#x306B;&#x3088;&#x308B;&#x30D1;&#x30FC;&#x30C6;&#x30A3;&#x30B7;&#x30E7;&#x30CB;&#x30F3;&#x30B0;&#x3092;&#x884C;&#x3046;
<ul>
<li>Roaring &#x304C; 2 &#x968E;&#x5C64;&#x307E;&#x3067;&#x306E;&#x5206;&#x5272;&#x3060;&#x3063;&#x305F;&#x306E;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x3001;&#x3053;&#x3061;&#x3089;&#x306F;&#x6700;&#x5927; 3 &#x968E;&#x5C64;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ieeexplore.ieee.org/document/9418701"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Fast and Compact Set Intersection through Recursive Universe Partitioning</div><div class="kg-bookmark-description">We present a data structure that encodes a sorted integer sequence in small space allowing, at the same time, fast intersection operations. The data layout is carefully designed to exploit word-level parallelism and SIMD instructions, hence providing good practical performance. The core algorithmic&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ieeexplore.ieee.org/favicon.ico" alt><span class="kg-bookmark-author">IEEE Xplore</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://ieeexplore.ieee.org/assets/img/ieee_logo_smedia_200X200.png" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1907.01032"><div class="kg-bookmark-content"><div class="kg-bookmark-title">On Slicing Sorted Integer Sequences</div><div class="kg-bookmark-description">Representing sorted integer sequences in small space is a central problem forlarge-scale retrieval systems such as Web search engines. Efficient queryresolution, e.g., intersection or random access, is achieved by carefullypartitioning the sequences. In this work we describe and compare two diffe&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Giulio Ermanno Pibiri</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/jermp/s_indexes"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - jermp/s_indexes: Universe-sliced indexes in C++.</div><div class="kg-bookmark-description">Universe-sliced indexes in C++. Contribute to jermp/s_indexes development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">jermp</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/6a245d2952174ae54db9941a5cb45ad34ff0e42f940980a2685e8780dd69f3a3/jermp/s_indexes" alt></div></a></figure><h2 id="binary-interpolative">Binary Interpolative</h2><h3 id="bic-moffatstuiver96-moffatstuiver00">BIC [Moffat&amp;Stuiver96, Moffat&amp;Stuiver00]</h3><!--kg-card-begin: markdown--><ul>
<li>Binary Interpolative coding (BIC)</li>
<li>2&#x5206;&#x6728;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x518D;&#x5E30;&#x7684;&#x306A;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;
<ul>
<li>&#x4E2D;&#x592E;&#x306E;&#x8981;&#x7D20;&#x304B;&#x3089;&#x6DF1;&#x3055;&#x512A;&#x5148;&#x9806;&#x306B;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3057;&#x3066;&#x3044;&#x304F;</li>
</ul>
</li>
<li><code>S[i, j]</code> &#x306E;&#x7BC4;&#x56F2;&#x3092; BIC &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;&#x3068;&#x304D;&#x3001;&#x4E2D;&#x592E;&#x306E;&#x8981;&#x7D20;&#x306E;&#x4F4D;&#x7F6E;&#x3092; <code>m</code> &#x3068;&#x3059;&#x308B;&#x3068;&#x3001;&#x4E2D;&#x592E;&#x306E;&#x8981;&#x7D20;&#x306F; <code>S[m] - low - m + i</code> &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3055;&#x308C;&#x308B;
<ul>
<li><code>low</code> &#x306F;&#x305D;&#x306E;&#x7BC4;&#x56F2;&#x306E;&#x6700;&#x5C0F;&#x5024; (= <code>S[i]</code>)</li>
<li><code>S[m] - low</code> &#x306F;&#x6700;&#x5C0F;&#x5024;&#x304B;&#x3089;&#x306E;&#x76F8;&#x5BFE;&#x91CF;</li>
<li>&#x305D;&#x3053;&#x304B;&#x3089;&#x3055;&#x3089;&#x306B;&#x4E2D;&#x592E;&#x306E;&#x8981;&#x7D20;&#x306E;&#x76F8;&#x5BFE;&#x4F4D;&#x7F6E;&#x3092;&#x5F15;&#x304F;</li>
</ul>
</li>
<li>&#x4E0B;&#x306E;&#x4F8B;&#x3067;&#x306F;&#x3001; <code>[7, 2, 0, 0, 18, 5, 3, 16, 1, 7]</code> &#x3068;&#x306A;&#x308B;</li>
<li>&#x6574;&#x6570;&#x5217;&#x304C;&#x5BC6;&#x306A;&#x3068;&#x304D;&#x3001;&#x975E;&#x5E38;&#x306B;&#x30B3;&#x30F3;&#x30D1;&#x30AF;&#x30C8;</li>
<li>&#x4E00;&#x65B9;&#x3067;&#x3001;&#x518D;&#x5E30;&#x7684;&#x306A;&#x305F;&#x3081;&#x3001;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x9045;&#x3081;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-18.png" class="kg-image" alt loading="lazy" width="1512" height="824" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-18.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-18.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-18.png 1512w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://link.springer.com/referenceworkentry/10.1007/978-3-319-63962-8_52-2">Giulio Ermanno Pibiri and Rossano Venturini. 2020. Inverted Index Compression.</a> Figure 2</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/10.1023/A%3A1013002601898"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Binary Interpolative Coding for Effective Index Compression | Information Retrieval</div><div class="kg-bookmark-description">Information retrieval systems contain large volumes of text, and currently have typicalsizes into the gigabyte range. Inverted indexes are one important method for providingsearch facilities into these collections, but unless compressed require a ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">Information Retrieval</span><span class="kg-bookmark-publisher">[email&#xA0;protected]</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/do/10.1145/contrib-81100200925/rel-imgonly/alistair-2012-sml.jpg" alt></div></a></figure><h2 id="directly-addressable">Directly-Addressable</h2><ul><li>&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x304C;&#x53EF;&#x80FD;</li></ul><h3 id="dac-brisaboa13">DAC [Brisaboa+13]</h3><!--kg-card-begin: markdown--><ul>
<li>Directly-addressable code (DAC)</li>
<li>&#x3059;&#x3079;&#x3066;&#x306E;&#x6574;&#x6570;&#x3092; b &#x30D3;&#x30C3;&#x30C8;&#x305A;&#x3064;&#x306B;&#x5206;&#x5272;</li>
<li>&#x3059;&#x3079;&#x3066;&#x306E;&#x6574;&#x6570;&#x306E;&#x6700;&#x521D;&#x306E; b &#x30D3;&#x30C3;&#x30C8;&#x3092;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0; C1 &#x306B;&#x5165;&#x308C;&#x308B;&#x3001;&#xFF08;&#x3042;&#x308C;&#x3070;&#xFF09;&#x6B21;&#x306E; b &#x30D3;&#x30C3;&#x30C8;&#x3092; C2 &#x306B;&#x5165;&#x308C;&#x308B;&#x2026;&#x3068;&#x7E70;&#x308A;&#x8FD4;&#x3059;
<ul>
<li>1 &#x30D3;&#x30C3;&#x30C8;&#x306E;&#x5236;&#x5FA1;&#x30D3;&#x30C3;&#x30C8;&#x3082;&#x5165;&#x308C;&#x308B;&#xFF08;&#x7D9A;&#x304D;&#x304C;&#x3042;&#x308C;&#x3070; <code>1</code>&#x3001;&#x306A;&#x3051;&#x308C;&#x3070; <code>0</code>&#xFF09;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-19.png" class="kg-image" alt loading="lazy" width="1294" height="736" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-19.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-19.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-19.png 1294w" sizes="(min-width: 720px) 720px"><figcaption>Nieves R Brisaboa, Susana Ladra, and Gonzalo Navarro. 2013. DACs: Bringing direct access to variable-length codes. Fig. 1</figcaption></figure><!--kg-card-begin: markdown--><ul>
<li>&#x5236;&#x5FA1;&#x30D3;&#x30C3;&#x30C8;&#x306E;&#x914D;&#x5217; B1, B2, &#x2026; &#x306B;&#x5BFE;&#x3057;&#x3066; <code>Rank1</code> &#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x3082;&#x3068;&#x306E;&#x6574;&#x6570;&#x914D;&#x5217;&#x3092;&#x5168;&#x90E8;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x305B;&#x305A;&#x306B;&#x30E9;&#x30F3;&#x30C0;&#x30E0;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x304C;&#x53EF;&#x80FD;</li>
<li>&#x4E0B;&#x8A18;&#x306E;&#x4F8B;&#xFF08;&#x8A18;&#x6CD5;&#x304C;&#x8AD6;&#x6587;&#x3068;&#x5C11;&#x3057;&#x9055;&#x3046;&#x306E;&#x3067;&#x6CE8;&#x610F;&#xFF09;&#x3067; <code>L[5]</code> &#x306B;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3057;&#x305F;&#x3044;&#x3068;&#x304D;&#x3001;
<ul>
<li><code>B1[5]</code> &#x304C; <code>1</code> &#x306A;&#x306E;&#x3067;&#x3001;&#x6B21;&#x306E;&#x30C1;&#x30E3;&#x30F3;&#x30AF; (C2) &#x306B;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308B;</li>
<li>C2 &#x306E;&#x30A4;&#x30F3;&#x30C7;&#x30C3;&#x30AF;&#x30B9;&#x306F; <code>Rank1(B1, 5) = 2</code></li>
<li><code>B2[2]</code> &#x306F; <code>0</code> &#x306A;&#x306E;&#x3067;&#x3001;&#x3053;&#x308C;&#x3067;&#x7D42;&#x308F;&#x308A;</li>
<li><code>C1[5] = 101</code> &#x3068; <code>C2[2] = 001</code> &#x3092;&#x9023;&#x7D50;&#x3057;&#x3066; <code>001.101</code> (=13) &#x3092;&#x5F97;&#x308B;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-20.png" class="kg-image" alt loading="lazy" width="712" height="371" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-20.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-20.png 712w"><figcaption><a href="https://github.com/jermp/data_compression_course/blob/master/3_list_compressors/3_list_compressors.pdf">A Crash Course on Data Compression. 3. List Compressors</a> p.45</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://repositorio.uchile.cl/handle/2250/126303"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Repositorio Acad&#xE9;mico - Universidad de Chile</div><div class="kg-bookmark-description">Repositorio acad&#xE9;mico de la Universidad de Chile. Tesis, art&#xED;culos y libros publicados en formato digital con distintos niveles de acceso</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://repositorio.uchile.cl/themes/Mirage2/images/apple-touch-icon.png" alt><span class="kg-bookmark-publisher">Brisaboa, Nieves R.</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://repositorio.uchile.cl/themes/Mirage2/images/respositorio-academico-uchile-tw.jpg" alt></div></a></figure><p><strong>&#x5B9F;&#x88C5;</strong></p><p><a href="https://lbd.udc.es/research/DACS/">https://lbd.udc.es/research/DACS/</a></p><h2 id="dictionary-based">Dictionary-based</h2><h3 id="dint-pibiri19">DINT [Pibiri+19]</h3><ul><li>&#x8F9E;&#x66F8;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x30DD;&#x30B9;&#x30C6;&#x30A3;&#x30F3;&#x30B0;&#x30EA;&#x30B9;&#x30C8;&#x306E;&#x5727;&#x7E2E;&#x7387;&#x3092;&#x9AD8;&#x3081;&#x305F;</li><li>&#x5727;&#x7E2E;&#x7387;&#x3068;&#x901F;&#x5EA6;&#x3092;&#x4E21;&#x7ACB;</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-21.png" class="kg-image" alt loading="lazy" width="1556" height="721" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-21.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-21.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-21.png 1556w" sizes="(min-width: 720px) 720px"><figcaption>Giulio Ermanno Pibiri, Matthias Petri, and Alistair Moffat. 2019. Fast Dictionary-Based Compression for Inverted Indexes. Fig. 6</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dl.acm.org/doi/abs/10.1145/3289600.3290962"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Fast Dictionary-Based Compression for Inverted Indexes | Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://dl.acm.org/pb-assets/head-metadata/apple-touch-icon-1574252172393.png" alt><span class="kg-bookmark-author">ACM Conferences</span><span class="kg-bookmark-publisher">Giulio Ermanno Pibiri University of Pisa &amp; ISTI-CNR, Pisa, Italy</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dl.acm.org/cms/asset/bb3953f2-b2aa-4222-b72f-911e4f028df3/3289600.3290962.key.jpg" alt></div></a></figure><h2 id="bitmap-compression">Bitmap Compression</h2><!--kg-card-begin: markdown--><ul>
<li>&#x6574;&#x6570;&#x5024;&#x3092;&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3067;&#x8868;&#x73FE;&#x3059;&#x308B;
<ul>
<li>&#x6574;&#x6570; i &#x3092;&#x8868;&#x73FE;&#x3059;&#x308B;&#x3068;&#x304D;&#x3001;&#x30D3;&#x30C3;&#x30C8;&#x914D;&#x5217;&#x306E; i &#x756A;&#x76EE;&#x306E;&#x4F4D;&#x7F6E;&#x306B;&#x30D3;&#x30C3;&#x30C8;&#x3092;&#x7ACB;&#x3066;&#x308B;</li>
<li><code>0100100001</code> &#x306A;&#x3089; 2, 5, 10</li>
</ul>
</li>
<li>&#x3053;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092;&#x5727;&#x7E2E;&#x3059;&#x308B;&#x6280;&#x6CD5;&#x304C; bitmap compression</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-5.png" class="kg-image" alt loading="lazy" width="1528" height="426" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-5.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-5.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-5.png 1528w" sizes="(min-width: 720px) 720px"><figcaption>Jianguo Wang, Chunbin Lin, Yannis Papakonstantinou, and Steven Swanson. 2017. An Experimental Study of Bitmap Compression vs. Inverted List Compression. p.3 Figure 1</figcaption></figure><!--kg-card-begin: markdown--><ul>
<li>&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;&#x306E;&#x624B;&#x6CD5;&#xFF08;PforDelta &#x306A;&#x3069;&#xFF09;&#x3068;&#x6BD4;&#x8F03;&#x3057;&#x3066; Intersection (AND) &#x306F;&#x901F;&#x3044;</li>
<li>Union (OR) &#x3084;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;&#x306E;&#x307B;&#x3046;&#x304C;&#x901F;&#x3044;</li>
<li>Roaring &#x306F;&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x5727;&#x7E2E;&#x3068;&#x6574;&#x6570;&#x5217;&#x5727;&#x7E2E;&#x306E;&#x30CF;&#x30A4;&#x30D6;&#x30EA;&#x30C3;&#x30C9;
<ul>
<li>&#x4ED6;&#x306E; bitmap compression &#x306E;&#x624B;&#x6CD5;&#x3068;&#x9055;&#x3063;&#x3066; RLE (run length encoding) &#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x306A;&#x3044;</li>
<li>&#x5168;&#x4F53;&#x7684;&#x306B;&#x4ED6;&#x306E; bitmap compression &#x306E;&#x624B;&#x6CD5;&#x3088;&#x308A; Roaring &#x306E;&#x307B;&#x3046;&#x304C;&#x826F;&#x3044;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-22.png" class="kg-image" alt loading="lazy" width="1503" height="1114" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-22.png 600w, https://takuya-a.net/blog/content/images/size/w1000/2022/10/image-22.png 1000w, https://takuya-a.net/blog/content/images/2022/10/image-22.png 1503w" sizes="(min-width: 720px) 720px"><figcaption>Jianguo Wang, Chunbin Lin, Yannis Papakonstantinou, and Steven Swanson. 2017. An Experimental Study of Bitmap Compression vs. Inverted List Compression. Figure 3</figcaption></figure><figure class="kg-card kg-embed-card"><iframe src="https://www.slideshare.net/slideshow/embed_code/key/hLo9g0CZKraSG8" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/maropu0804/an-experimental-study-of-bitmap-compression-vs-inverted-list-compression" title="An Experimental Study of Bitmap Compression vs. Inverted List Compression" target="_blank">An Experimental Study of Bitmap Compression vs. Inverted List Compression</a> </strong> from <strong><a href="https://www.slideshare.net/maropu0804" target="_blank">Takeshi Yamamuro</a></strong> </div>

</figure><h3 id="bbc-antoshenkov95">BBC [Antoshenkov95]</h3><!--kg-card-begin: markdown--><ul>
<li>Byte-aligned Bitmap Code</li>
<li>&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092; 1 byte (8-bit) &#x305A;&#x3064;&#x306B;&#x5206;&#x5272;</li>
<li>&#x3053;&#x308C;&#x3089;&#x306E; byte &#x3092; fill byte &#x3068; literal byte &#x306B;&#x5206;&#x985E;
<ul>
<li>fill byte: &#x3059;&#x3079;&#x3066;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x304C;&#x540C;&#x3058; byte</li>
<li>literal byte: &#x305D;&#x308C;&#x4EE5;&#x5916;</li>
</ul>
</li>
<li>fill byte &#x3068; literal byte &#x306E;&#x4E26;&#x3073;&#x306E;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3054;&#x3068;&#x306B;&#x5727;&#x7E2E;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-23.png" class="kg-image" alt loading="lazy" width="768" height="376" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-23.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-23.png 768w" sizes="(min-width: 720px) 720px"><figcaption>Jianguo Wang, Chunbin Lin, Yannis Papakonstantinou, and Steven Swanson. 2017. An Experimental Study of Bitmap Compression vs. Inverted List Compression. Figure 2</figcaption></figure><h3 id="wah-kesheng01">WAH [Kesheng+01]</h3><!--kg-card-begin: markdown--><ul>
<li>Word-Alighned Hybrid</li>
<li>&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092; 31-bit &#x305A;&#x3064;&#x306E; group &#x306B;&#x5206;&#x5272;</li>
<li>&#x3053;&#x308C;&#x3089;&#x3092; fill group &#x3068; literal group &#x306B;&#x5206;&#x985E;
<ul>
<li>fill group: &#x3059;&#x3079;&#x3066;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x304C;&#x540C;&#x3058;</li>
<li>literal group: &#x305D;&#x308C;&#x4EE5;&#x5916;</li>
</ul>
</li>
<li>&#x5148;&#x982D;&#x306B; 1 bit &#x306E;&#x5224;&#x5B9A;&#x30D5;&#x30E9;&#x30B0;&#x3092;&#x8DB3;&#x3059;
<ul>
<li>1 &#x306A;&#x3089; fill group</li>
</ul>
</li>
<li>fill group &#x306F; RLE &#x3067;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;
<ul>
<li>2 bit &#x76EE;&#x306B; 1-fill group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x30D5;&#x30E9;&#x30B0;&#x3092;&#x3082;&#x3064;</li>
<li>&#x6B8B;&#x308A;&#x306E; 30 bits &#x306B;&#x9577;&#x3055;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
</ul>
</li>
<li>literal group &#x306F;&#x305D;&#x306E;&#x307E;&#x307E;</li>
<li>Intersection (AND) &#x3084; Union (OR) &#x306F;&#x30C7;&#x30B3;&#x30FC;&#x30C9;&#x305B;&#x305A;&#x306B;&#x8A08;&#x7B97;&#x53EF;&#x80FD;</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://sdm.lbl.gov/~kewu/ps/PUB-3161.html"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Notes on Design and Implementation of Compressed Bit Vectors</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://lbl.gov/favicon.ico" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://sdm.lbl.gov/~kewu/gif/photo2.gif" alt></div></a></figure><h3 id="ewah-lemire10">EWAH [Lemire+10]</h3><!--kg-card-begin: markdown--><ul>
<li>Enhanced Word-Alighned Hybrid</li>
<li>WAH &#x306E;&#x6539;&#x826F;
<ul>
<li>literal group &#x304C;&#x591A;&#x3044;&#x5834;&#x5408;&#x306B; WAH &#x306F;&#x5BB9;&#x91CF;&#x52B9;&#x7387;&#x304C;&#x60AA;&#x3044;</li>
</ul>
</li>
<li>&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092; 32-bit &#x306E; group &#x306B;&#x5206;&#x5272;</li>
<li>p &#x500B;&#xFF08;p &#x2264; 65535&#xFF09;&#x306E; fill groups &#x3068; q &#x500B;&#xFF08;q &#x2264; 32767&#xFF09;&#x306E; literal group &#x3092;&#x3072;&#x3068;&#x304B;&#x305F;&#x307E;&#x308A;&#x3068;&#x3059;&#x308B;</li>
<li>&#x5148;&#x982D;&#x306B; 32-bit &#x306E; marker &#x3092;&#x7F6E;&#x304F;
<ul>
<li>&#x6700;&#x521D;&#x306E; 1 bit: 1-fill group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x30D5;&#x30E9;&#x30B0;</li>
<li>&#x6B21;&#x306E; 16 bits: fill groups &#x306E;&#x6570; p &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
<li>&#x6700;&#x5F8C;&#x306E; 15 bits: literal groups &#x306E;&#x6570; q &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/0901.3751"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Sorting improves word-aligned bitmap indexes</div><div class="kg-bookmark-description">Bitmap indexes must be compressed to reduce input/output costs and minimizeCPU usage. To accelerate logical operations (AND, OR, XOR) over bitmaps, we usetechniques based on run-length encoding (RLE), such as Word-Aligned Hybrid(WAH) compression. These techniques are sensitive to the order of the&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Daniel Lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><h3 id="concise-colantoniopietro10">CONCISE [Colantonio&amp;Pietro10]</h3><!--kg-card-begin: markdown--><ul>
<li>Compressed N Composable Integer Set</li>
<li>WAH &#x306E;&#x6539;&#x826F;
<ul>
<li>fill group &#x3068; 1 &#x30D3;&#x30C3;&#x30C8;&#x3060;&#x3051;&#x7570;&#x306A;&#x308B;&#x5024;&#x3092;&#x3082;&#x3064; literal group &#xFF08;mixed fill group &#x3068;&#x547C;&#x3076;&#xFF09;&#x306B;&#x7740;&#x76EE;</li>
<li>&#x305D;&#x306E;&#x30D3;&#x30C3;&#x30C8;&#x3092; odd bit &#x3068;&#x547C;&#x3073;&#x3001;&#x305D;&#x306E;&#x4F4D;&#x7F6E;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x5BB9;&#x91CF;&#x3092;&#x524A;&#x6E1B;&#x3059;&#x308B;</li>
</ul>
</li>
<li>&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092; 31-bit &#x305A;&#x3064;&#x306E; group &#x306B;&#x5206;&#x5272;&#xFF08;WAH&#x3068;&#x540C;&#x3058;&#xFF09;</li>
<li>&#x5148;&#x982D;&#x306E; 1 bit &#x3092; literal group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x5224;&#x5B9A;&#x30D5;&#x30E9;&#x30B0;&#x306B;&#x3059;&#x308B;
<ul>
<li>literal group &#x306E;&#x5834;&#x5408;&#x3001;&#x6B8B;&#x308A;&#x306E; 31 bits &#x306B; literal group &#x3092;&#x305D;&#x306E;&#x307E;&#x307E;&#x4FDD;&#x5B58;</li>
</ul>
</li>
<li>&#x9023;&#x7D9A;&#x3059;&#x308B; fill group &#x306E;&#x4E26;&#x3073;&#x306F;&#x3001;&#x4EE5;&#x4E0B;&#x306E;&#x3088;&#x3046;&#x306B; RLE &#x3067;&#x8868;&#x73FE;
<ul>
<li>EWAH &#x306E; marker &#x306E;&#x3088;&#x3046;&#x306B; fill group &#x306E; run &#x3092; 32-bit &#x3067;&#x8868;&#x73FE;</li>
<li>1 bit &#x76EE;&#x306F; 0&#xFF08;literal group &#x3068;&#x533A;&#x5225;&#x3059;&#x308B;&#x305F;&#x3081;&#xFF09;</li>
<li>2 bit &#x76EE;&#x306B; 1-fill group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x30D5;&#x30E9;&#x30B0;&#x3092;&#x3082;&#x3064;&#xFF08;WAH&#x3068;&#x540C;&#x3058;&#xFF09;</li>
<li>&#x6B21;&#x306E; 5 bits &#x3067; odd bit &#x306E;&#x4F4D;&#x7F6E;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;
<ul>
<li>odd bit &#x304C;&#x306A;&#x3044;&#x5834;&#x5408;&#x306F; 00000</li>
</ul>
</li>
<li>&#x6B8B;&#x308A;&#x306E; 25 bits &#x3067; fill groups &#x306E;&#x6570; - 1 &#x3092;&#x4FDD;&#x5B58;</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/1004.0403"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CONCISE: Compressed &#x2018;n&#x2019; Composable Integer Set</div><div class="kg-bookmark-description">Bit arrays, or bitmaps, are used to significantly speed up set operations inseveral areas, such as data warehousing, information retrieval, and datamining, to cite a few. However, bitmaps usually use a large storage space, thusrequiring compression. Nevertheless, there is a space-time tradeoff am&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.arxiv.org/static/browse/0.3.4/images/icons/favicon.ico" alt><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Alessandro Colantonio</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.arxiv.org/icons/twitter/arxiv-logo-twitter-square.png" alt></div></a></figure><h3 id="plwah-deli%C3%A8gepedersen10">PLWAH [Deli&#xE8;ge&amp;Pedersen10]</h3><ul><li>Position List WAH</li><li>CONCISE &#x306B;&#x4F3C;&#x3066;&#x3044;&#x308B;&#x304C;&#x3001;mixed fill group &#x306E;&#x8868;&#x73FE;&#x304C;&#x7570;&#x306A;&#x308B;</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-24.png" class="kg-image" alt loading="lazy" width="762" height="1000" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-24.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-24.png 762w" sizes="(min-width: 720px) 720px"><figcaption>Fran&#xE7;ois Deli&#xE8;ge and Torben Bach Pedersen. 2010. Position list word aligned hybrid: optimizing space and performance for compressed bitmaps. Figure 1</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://takuya-a.net/blog/content/images/2022/10/image-25.png" class="kg-image" alt loading="lazy" width="718" height="271" srcset="https://takuya-a.net/blog/content/images/size/w600/2022/10/image-25.png 600w, https://takuya-a.net/blog/content/images/2022/10/image-25.png 718w"><figcaption>Fran&#xE7;ois Deli&#xE8;ge and Torben Bach Pedersen. 2010. Position list word aligned hybrid: optimizing space and performance for compressed bitmaps. Figure 2</figcaption></figure><p><a href="https://openproceedings.org/2010/conf/edbt/DeliegeP10.pdf">https://openproceedings.org/2010/conf/edbt/DeliegeP10.pdf</a></p><h3 id="valwah-guzun14">VALWAH [Guzun+14]</h3><!--kg-card-begin: markdown--><ul>
<li>Variable-Aligned WAH</li>
<li>WAH &#x306F; 30 bits &#x306E; RLE &#x3067; fill groups &#x306E;&#x4E26;&#x3073;&#x3092;&#x8868;&#x73FE;&#x3057;&#x3066;&#x3044;&#x305F;&#x304C;&#x3001;&#x5B9F;&#x969B;&#x306B;&#x306F;&#x9023;&#x7D9A;&#x3059;&#x308B; fill groups &#x306F;&#x5C11;&#x306A;&#x3044;</li>
<li>32-bit &#x306B;&#x8907;&#x6570;&#x306E;&#x30BB;&#x30B0;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;
<ul>
<li>&#x53EF;&#x5909;&#x306E;&#x30BB;&#x30B0;&#x30E1;&#x30F3;&#x30C8;&#x9577;</li>
</ul>
</li>
<li>&#x5BB9;&#x91CF;&#x306E;&#x30AA;&#x30FC;&#x30D0;&#x30FC;&#x30D8;&#x30C3;&#x30C9;&#x3068;&#x30AF;&#x30A8;&#x30EA;&#x306E;&#x901F;&#x5EA6;&#x306E;&#x30C8;&#x30EC;&#x30FC;&#x30C9;&#x30AA;&#x30D5;&#x3092;&#x8ABF;&#x6574;&#x3059;&#x308B;&#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF; lambda &#x3092;&#x3082;&#x3064;</li>
<li>&#x30BB;&#x30B0;&#x30E1;&#x30F3;&#x30C8;&#x9577;&#x3092;&#x53EF;&#x5909;&#x306B;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x5BB9;&#x91CF;&#x306F;&#x5C0F;&#x3055;&#x304F;&#x306A;&#x308B;&#x304C;&#x3001;&#x30A2;&#x30E9;&#x30A4;&#x30F3;&#x30E1;&#x30F3;&#x30C8;&#x306E;&#x554F;&#x984C;&#x3067;&#x30AF;&#x30A8;&#x30EA;&#x306F;&#x9045;&#x3044;</li>
</ul>
<!--kg-card-end: markdown--><p></p><h3 id="sbh-kim16">SBH [Kim+16]</h3><!--kg-card-begin: markdown--><ul>
<li>Super Byte-Aligned Hybrid</li>
<li>&#x5BB9;&#x91CF;&#x52B9;&#x7387;&#x3092;&#x4E0A;&#x3052;&#x308B;&#x305F;&#x3081;&#x306B; word-aligned &#x3067;&#x306F;&#x306A;&#x304F; byte-aligned &#x306B;&#x3057;&#x305F;</li>
<li>&#x30D3;&#x30C3;&#x30C8;&#x30DE;&#x30C3;&#x30D7;&#x3092; 7-bit &#x306E;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x306B;&#x5206;&#x5272;</li>
<li>&#x9023;&#x7D9A;&#x3059;&#x308B; fill groups &#x306E;&#x6570; k &#xFF08;k &#x2264; 4093&#xFF09;&#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;
<ul>
<li>k &#x2264; 63 &#x306E;&#x3068;&#x304D;
<ul>
<li>1 bit &#x76EE;&#x306F; 0</li>
<li>2 bit &#x76EE;&#x306B; 1-fill group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x30D5;&#x30E9;&#x30B0;&#x3092;&#x3082;&#x3064;</li>
<li>&#x6B8B;&#x308A;&#x306E; 6 bits &#x3067; k &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
</ul>
</li>
<li>63 &lt; k &#x2264; 4093 &#x306E;&#x3068;&#x304D;&#x3001;2&#x30D0;&#x30A4;&#x30C8;&#x3067; fill groups &#x3092;&#x8868;&#x73FE;
<ul>
<li>1 byte &#x76EE;
<ul>
<li>1 bit &#x76EE;&#x306F; 0</li>
<li>2 bit &#x76EE;&#x306B; 1-fill group &#x304B;&#x3069;&#x3046;&#x304B;&#x306E;&#x30D5;&#x30E9;&#x30B0;&#x3092;&#x3082;&#x3064;</li>
<li>&#x6B8B;&#x308A;&#x306E; 6 bits &#x3067; k &#x306E;&#x4E0B;&#x4F4D; 6 bits &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
</ul>
</li>
<li>2 byte &#x76EE;
<ul>
<li>&#x6700;&#x521D;&#x306E; 2 bits &#x306F; 1 byte &#x76EE;&#x3068;&#x540C;&#x3058;</li>
<li>&#x6B8B;&#x308A;&#x306E; 6 bits &#x3067; k &#x306E;&#x4E0A;&#x4F4D; 6 bits &#x3092;&#x30A8;&#x30F3;&#x30B3;&#x30FC;&#x30C9;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><p><a href="https://dbs.snu.ac.kr/papers/sbh16.pdf">https://dbs.snu.ac.kr/papers/sbh16.pdf</a></p><h2 id="%E5%AE%9F%E8%A3%85%E3%81%A8%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF">&#x5B9F;&#x88C5;&#x3068;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;</h2><h3 id="2ibench">2i_bench</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/jermp/2i_bench"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - jermp/2i_bench: A C++ library to benchmark inverted indexes.</div><div class="kg-bookmark-description">A C++ library to benchmark inverted indexes. Contribute to jermp/2i_bench development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">jermp</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/e39144d260fc9aca944a2b2c6123885198d3667ecce8053fcf134b5923e2ce7c/jermp/2i_bench" alt></div></a></figure><h3 id="icbench">IcBench</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/powturbo/TurboPFor-Integer-Compression"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - powturbo/TurboPFor-Integer-Compression: Fastest Integer Compression</div><div class="kg-bookmark-description">Fastest Integer Compression. Contribute to powturbo/TurboPFor-Integer-Compression development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">powturbo</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://repository-images.githubusercontent.com/25890500/e0ef5800-d241-11e9-91d3-7c0b6676df1f" alt></div></a></figure><h3 id="javafastpfor">JavaFastPFOR</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/lemire/JavaFastPFOR"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - lemire/JavaFastPFOR: A simple integer compression library in Java</div><div class="kg-bookmark-description">A simple integer compression library in Java . Contribute to lemire/JavaFastPFOR development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">lemire</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/bcc7ee07595c14cb318d61d4dcef6ea1637fbb4b5603d758ed26b4062ba4fe91/lemire/JavaFastPFOR" alt></div></a></figure><p>&#x6574;&#x6570;&#xFF08;&#x5217;&#xFF09;&#x5727;&#x7E2E;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3068;&#x305D;&#x306E;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;&#x306E; Java &#x5B9F;&#x88C5;&#x3002;&#x4EE5;&#x4E0B;&#x306E;&#x5B9F;&#x88C5;&#x304C;&#x542B;&#x307E;&#x308C;&#x308B;&#x3002;</p><ul><li>BinaryPacking</li><li>XorBinaryPacking</li><li>DeltaZigzagBinaryPacking</li><li>FastPFor</li><li>Group Simple9</li><li>NewPFD, NewPDFS9, NewPFDS16</li><li>OptPFD, OptPFDS9, OptPFDS16</li><li>Simple16</li><li>Simple9</li><li>VByte</li></ul><p>&#x73FE;&#x6642;&#x70B9; (2022-10-23) &#x3067;&#x306F;&#x52D5;&#x4F5C;&#x3055;&#x305B;&#x308B;&#x305F;&#x3081;&#x306B; Java 19 &#x306E;&#x5B9F;&#x884C;&#x74B0;&#x5883;&#x304C;&#x5FC5;&#x8981;&#x3002;</p><p>&#x30D3;&#x30EB;&#x30C9;&#x3068;&#x30D9;&#x30F3;&#x30C1;&#x30DE;&#x30FC;&#x30AF;&#x306E;&#x5B9F;&#x884C;&#x306B;&#x306F; Maven &#x304C;&#x4F7F;&#x7528;&#x3067;&#x304D;&#x308B;&#x3002;</p><pre><code>mvn compile</code></pre><pre><code>mvn exec:java</code></pre><h2 id="%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE">&#x53C2;&#x8003;&#x6587;&#x732E;</h2><ol><li>Vo Ngoc Anh and Alistair Moffat. 2005. Inverted Index Compression Using Word-Aligned Binary Codes. Inf. Retr. 8, 1 (January 2005), 151&#x2013;166. <a href="https://doi.org/10.1023/B:INRT.0000048490.99518.5c">https://doi.org/10.1023/B:INRT.0000048490.99518.5c</a></li><li>Vo Ngoc Anh and Alistair Moffat. 2010. Index compression using 64-bit words. Softw. Pract. Exper. 40, 2 (February 2010), 131&#x2013;147.</li><li>G. Antoshenkov. 1995. Byte-aligned bitmap compression. In Proceedings of the Conference on Data Compression (DCC &apos;95). IEEE Computer Society, USA, 476.</li><li>Nieves R Brisaboa, Susana Ladra, and Gonzalo Navarro. 2013. DACs: Bringing direct access to variable-length codes. Information Processing &amp; Management 49, 1 (2013), 392&#x2013;404.</li><li>Stefan B&#xFC;ttcher, Charles Clarke, and Gordon V. Cormack. 2010. Information Retrieval: Implementing and Evaluating Search Engines. The MIT Press.</li><li>Samy Chambi, Daniel Lemire, Owen Kaser, and Robert Godin. 2016. Better bitmap performance with Roaring bitmaps. Softw. Pract. Exper. 46, 5 (May 2016), 709&#x2013;719. <a href="https://doi.org/10.1002/spe.2325">https://doi.org/10.1002/spe.2325</a></li><li>Alessandro Colantonio and Roberto Di Pietro. 2010. Concise: Compressed &apos;n&apos; Composable Integer Set. Inf. Process. Lett. 110, 16 (July, 2010), 644&#x2013;650. <a href="https://doi.org/10.1016/j.ipl.2010.05.018">https://doi.org/10.1016/j.ipl.2010.05.018</a></li><li>Jeffrey Dean. 2009. Challenges in building large-scale information retrieval systems: invited talk. In Proceedings of the Second ACM International Conference on Web Search and Data Mining (WSDM &apos;09). Association for Computing Machinery, New York, NY, USA, 1. <a href="https://doi.org/10.1145/1498759.1498761">https://doi.org/10.1145/1498759.1498761</a></li><li>Fran&#xE7;ois Deli&#xE8;ge and Torben Bach Pedersen. 2010. Position list word aligned hybrid: optimizing space and performance for compressed bitmaps. In Proceedings of the 13th International Conference on Extending Database Technology (EDBT &apos;10). Association for Computing Machinery, New York, NY, USA, 228&#x2013;239. <a href="https://doi.org/10.1145/1739041.1739071">https://doi.org/10.1145/1739041.1739071</a></li><li>Peter Elias. 1974. Efficient Storage and Retrieval by Content and Address of Static Files. J. ACM 21, 2 (April 1974), 246&#x2013;260. <a href="https://doi.org/10.1145/321812.321820">https://doi.org/10.1145/321812.321820</a></li><li>G. Guzun, G. Canahuate, D. Chiu, and J. Sawin. A tunable compression framework for bitmap indices. In ICDE, pages 484&#x2013;495, 2014.</li><li>Robert Mario Fano. 1971. On the number of bits required to implement an associative memory. Memorandum 61, Computer Structures Group, MIT (1971).</li><li>A. S. Kesheng Wu, Ekow J. Otoo and H. Nordberg. Notes on design and implementation of compressed bit vectors, 2001.</li><li>S. Kim, J. Lee, S. R. Satti, and B. Moon. Sbh: Super byte-aligned hybrid bitmap compression. IS, 62:155--168, 2016.</li><li>Daniel Lemire, Owen Kaser, and Kamel Aouiche. 2010. Sorting improves word-aligned bitmap indexes. Data Knowl. Eng. 69, 1 (January, 2010), 3&#x2013;28. <a href="https://doi.org/10.1016/j.datak.2009.08.006">https://doi.org/10.1016/j.datak.2009.08.006</a></li><li>D. Lemire and L. Boytsov. 2015. Decoding billions of integers per second through vectorization. Softw. Pract. Exper. 45, 1 (January 2015), 1&#x2013;29. <a href="https://doi.org/10.1002/spe.2203">https://doi.org/10.1002/spe.2203</a></li><li>Daniel Lemire, Gregory Ssi-Yan-Kai, and Owen Kaser. 2016. Consistently faster and smaller compressed bitmaps with Roaring. Softw. Pract. Exper. 46, 11 (November 2016), 1547&#x2013;1569. <a href="https://doi.org/10.1002/spe.2402">https://doi.org/10.1002/spe.2402</a></li><li>Daniel Lemire, Owen Kaser, Nathan Kurz, Luca Deri, Chris O&#x2019;Hara, Fran&#xE7;ois Saint-Jacques, and Gregory Ssi-Yan-Kai. 2018. Roaring bitmaps: Implementation of an optimized software library. Software: Practice and Experience 48, 4 (2018), 867&#x2013;895.</li><li>Daniel Lemire, Nathan Kurz, and Christoph Rupp. 2018. Stream VByte: Faster byte-oriented integer compression. <em>Inf. Process. Lett.</em> 130, (February 2018), 1&#x2013;6. <a href="https://doi.org/10.1016/j.ipl.2017.09.011">https://doi.org/10.1016/j.ipl.2017.09.011</a></li><li>Christopher D. Manning, Prabhakar Raghavan, and Hinrich Sch&#xFC;tze. 2008. Introduction to Information Retrieval. Cambridge University Press, USA.</li><li>Alistair Moffat and Lang Stuiver. 1996. Exploiting clustering in inverted file compression. In Proceedings of the Data Compression Conference (DCC&#x2019;96). 82--91.</li><li>Alistair Moffat and Lang Stuiver. 2000. Binary Interpolative Coding for Effective Index Compression. Inf. Retr. 3, 1 (July 2000), 25&#x2013;47. <a href="https://doi.org/10.1023/A:1013002601898">https://doi.org/10.1023/A:1013002601898</a></li><li>Giuseppe Ottaviano and Rossano Venturini. 2014. Partitioned Elias-Fano indexes. In Proceedings of the 37th international ACM SIGIR conference on Research &amp; development in information retrieval (SIGIR &apos;14). Association for Computing Machinery, New York, NY, USA, 273&#x2013;282. <a href="https://doi.org/10.1145/2600428.2609615">https://doi.org/10.1145/2600428.2609615</a></li><li>Giulio Ermanno Pibiri, Matthias Petri, and Alistair Moffat. 2019. Fast Dictionary-Based Compression for Inverted Indexes. In Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining (WSDM &apos;19). Association for Computing Machinery, New York, NY, USA, 6&#x2013;14. <a href="https://doi.org/10.1145/3289600.3290962">https://doi.org/10.1145/3289600.3290962</a></li><li>Giulio Ermanno Pibiri. 2019. On Slicing Sorted Integer Sequences. CoRR abs/1907.01032 (2019). <a href="http://arxiv.org/abs/1907.01032">http://arxiv.org/abs/1907.01032</a></li><li>Giulio Ermanno Pibiri and Rossano Venturini. 2020. On Optimally Partitioning Variable-Byte Codes. IEEE Trans. on Knowl. and Data Eng. 32, 9 (Sept. 2020), 1812&#x2013;1823. <a href="https://doi.org/10.1109/TKDE.2019.2911288">https://doi.org/10.1109/TKDE.2019.2911288</a></li><li>Giulio Ermanno Pibiri and Rossano Venturini. 2020. Techniques for Inverted Index Compression. ACM Comput. Surv. 53, 6, Article 125 (November 2021), 36 pages. <a href="https://doi.org/10.1145/3415148">https://doi.org/10.1145/3415148</a></li><li>Jeff Plaisance, Nathan Kurz, and Daniel Lemire. 2015. Vectorized VByte Decoding. In International Symposium on Web Algorithms.</li><li>Alexander A. Stepanov, Anil R. Gangolli, Daniel E. Rose, Ryan J. Ernst, and Paramjit S. Oberoi. 2011. SIMD-based decoding of posting lists. In Proceedings of the 20th ACM international conference on Information and knowledge management (CIKM &apos;11). Association for Computing Machinery, New York, NY, USA, 317&#x2013;326. <a href="https://doi.org/10.1145/2063576.2063627">https://doi.org/10.1145/2063576.2063627</a></li><li>Larry H Thiel and HS Heaps. 1972. Program design for retrospective searches on large data bases. Information Storage and Retrieval 8, 1 (1972), 1&#x2013;20.</li><li>Andrew Trotman. 2014. Compression, SIMD, and Postings Lists. In Proceedings of the 2014 Australasian Document Computing Symposium (ADCS &apos;14). Association for Computing Machinery, New York, NY, USA, 50&#x2013;57. <a href="https://doi.org/10.1145/2682862.2682870">https://doi.org/10.1145/2682862.2682870</a></li><li>Jianguo Wang, Chunbin Lin, Yannis Papakonstantinou, and Steven Swanson. 2017. An Experimental Study of Bitmap Compression vs. Inverted List Compression. In Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD &apos;17). Association for Computing Machinery, New York, NY, USA, 993&#x2013;1008. <a href="https://doi.org/10.1145/3035918.3064007">https://doi.org/10.1145/3035918.3064007</a></li><li>Hao Yan, Shuai Ding, and Torsten Suel. 2009. Inverted index compression and query processing with optimized document ordering. In Proceedings of the 18th international conference on World wide web (WWW &apos;09). Association for Computing Machinery, New York, NY, USA, 401&#x2013;410. <a href="https://doi.org/10.1145/1526709.1526764" rel="noopener noreferrer">https://doi.org/10.1145/1526709.1526764</a></li><li>Jiangong Zhang, Xiaohui Long, and Torsten Suel. 2008. Performance of compressed inverted list caching in search engines. In Proceedings of the 17th international conference on World Wide Web (WWW &apos;08). Association for Computing Machinery, New York, NY, USA, 387&#x2013;396. <a href="https://doi.org/10.1145/1367497.1367550">https://doi.org/10.1145/1367497.1367550</a></li><li>Marcin Zukowski, Sandor Heman, Niels Nes, and Peter Boncz. 2006. Super-Scalar RAM-CPU Cache Compression. In Proceedings of the 22nd International Conference on Data Engineering (ICDE &apos;06). IEEE Computer Society, USA, 59. <a href="https://doi.org/10.1109/ICDE.2006.150">https://doi.org/10.1109/ICDE.2006.150</a></li></ol>]]></content:encoded></item></channel></rss>