Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mongo DBとS式検索
Search
Niyarin
August 29, 2020
Programming
0
340
Mongo DBとS式検索
Niyarin
August 29, 2020
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
160
bel lispの紹介
niyarin
0
770
nanopass-compiler-frameworkを使ってみました
niyarin
0
460
Gorgos-parser-combinator-written-in-scheme
niyarin
0
400
outputting-beautiful-s-expression
niyarin
0
400
Serialisp
niyarin
1
690
goodbye-python-repl
niyarin
0
380
SchemeのEphemeronとWeak Pairの説明
niyarin
0
1.1k
red-paren-scheme-rev-macro.pdf
niyarin
0
440
Other Decks in Programming
See All in Programming
Cap'n Webについて
yusukebe
0
160
Deno Tunnel を使ってみた話
kamekyame
0
280
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
230
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
330
ThorVG Viewer In VS Code
nors
0
490
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
200
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
220
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
220
gunshi
kazupon
1
130
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.8k
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
37
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
Designing Powerful Visuals for Engaging Learning
tmiket
0
190
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
30
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
48k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
260
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
How to build a perfect <img>
jonoalderson
0
4.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Transcript
S式ソースコード検索と Mongo DB (やってみたけどそんなに良くなかった) Niyarin Clojure
モチベーション 例) 「Clojureのmapの引数が1つのコード例がみたい」 → 雑に”map”でコード片を検索すると目当てでないものも引っかかる ・正規表現で検索 ・構造で検索 → S式言語ならできる
Gists的なものを作る ・Gists的なソースコード片を投げるようなWebアプリ 大学でDB使ったWebアプリ書けって課題がでたので作った 真面目には作っていない ・Clojureの式を登録して、ちょっと便利に検索できるようにする ・Clojureで実装 Selmer(テンプレート) Duct(フレームワーク) 余り活用していない Ataraxy(ルーティング)
構造とDB リストとかを突っ込んでそれの構造を検索したい ・Mongo DB(JSONが直に使えるNOSQL) Clojureとかにもドライバが提供されている Monger RDBでもできなくはないけど
MongoDBの例 リストの最初の要素がargnameのものをとってくる リストの長さがarglenのものをとってくる JavaScriptをクエリに使うこともできる ※”,”がないのはClojureから呼び出しているから {“$elemMatch” {“ls.0” argname}} {“$elemMatch” {”ls”
{“$size” arglen)}}
あまり楽にできなかった部分 ・部分的な木構造の検索ができない 決められた深さのオブジェクトに対してしか検索できない ・リストを全部取り出して、内部リストを”object”等の文字列に変更 (+ (* 1 2) (* 3
4)) [(+ “object” “object”) (* 1 2) (* 3 4)]
生前の姿 (クラウドは落とされていた) (ローカルで立ち上げてもよかったけど)
もう少しがんばってもよかった点 検索がもっといろいろできたのではないか ・S式パターンマッチでの検索 ・なにか フロントエンド
今回どういうDBがあればよかったのか ・EDN登録できるドキュメント型NO SQL ・クエリ言語をClojure風なやつにする クエリ言語そのものもDBに入れられる クエリ言語をクエリ言語で操作できる ・パターンマッチ ・部分的な木構造を検索できる
おわり まとめ ・S式系言語用の検索に特化したGists的なのを考えた ・Clojureで雑に実装した その他 ・非S式言語でもASTに落とせばなんかできるかも ・EDN DBはいつかつくりたい