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
Let_s_Go_Talk__6__GoのLT会_.pdf
Search
虎の穴ラボ株式会社
January 19, 2023
Technology
0
110
Let_s_Go_Talk__6__GoのLT会_.pdf
Let's Go Talk #6 (GoのLT会)の発表資料になります。
https://connehito.connpass.com/event/270615/
虎の穴ラボ株式会社
January 19, 2023
Tweet
Share
More Decks by 虎の穴ラボ株式会社
See All by 虎の穴ラボ株式会社
Tailwind CSSとAtomic Designで実現する効率的な Web 開発の事例
toranoana
1
520
Denoについて、同人誌記事を出しました+update
toranoana
0
170
【虎の穴ラボ Tech Talk #2】プロンプトエンジニアリング
toranoana
0
100
20241121_[TechTalk#2]虎の穴ラボでのLLMについて取り組み紹介
toranoana
0
96
社内チャットへRAG導入した話(Tech Talk #2)
toranoana
0
160
Deno Deploy で Web Cache API を 使えるようになったので試した知見
toranoana
1
550
【虎の穴ラボ Tech Talk】虎の穴ラボTech Talk説明資料
toranoana
0
390
虎の穴ラボ Tech Talk_CDKでFargate環境構築
toranoana
1
410
虎の穴ラボスキルアップ支援制度の利用例
toranoana
0
7.5k
Other Decks in Technology
See All in Technology
TypeScript入門
recruitengineers
PRO
35
11k
Grafana Meetup Japan Vol. 6
kaedemalu
1
200
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
0
540
異業種出身エンジニアが気づいた、転向して十数年経っても変わらない自分の武器とは
macnekoayu
0
270
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
180
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
10
3.6k
「魔法少女まどか☆マギカ Magia Exedra」の必殺技演出を徹底解剖! -キャラクターの魅力を最大限にファンに届けるためのこだわり-
gree_tech
PRO
0
450
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
260
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
250
Oracle Cloud Infrastructure:2025年8月度サービス・アップデート
oracle4engineer
PRO
0
170
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
13
4.1k
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
200
Featured
See All Featured
Docker and Python
trallard
45
3.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Raft: Consensus for Rubyists
vanstee
140
7.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Code Review Best Practice
trishagee
70
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Into the Great Unknown - MozCon
thekraken
40
2k
Gamification - CAS2011
davidbonilla
81
5.4k
Transcript
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GoからOpenSearchServiceを 使ってみる
虎の穴ラボ株式会社 浜田拓実 (sheltie) 2023 Let's Go Talk #6 (GoのLT会)
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 自己紹介 浜田
拓実(ハマダ タクミ) • 2022/06 入社 • 虎の穴ラボ 通販チーム エンジニア Goを始めたきっかけ • 社内勉強会でGoが取り上げられた • 昨年末よりGoでWebアプリを作り始める
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. アジェンダ •
作成物の概要 • OpenSearchについて • ドキュメントの登録 • ドキュメントの検索 • 注意点 • まとめ
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 作成物の概要 ・楽天APIから商品情報を日次で取得
・取得データをOpenSearchに登録 ・キーワードでOpenSearchを検索 GoとOpenSearchの練習のため作成
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. OpenSearchについて
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. OpenSearchについて OpenSearchとは・・・
• ElasticSearchをフォークして 開発が行われている • データ検索、分析、可視化が可能。 • 100%オープンソース
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. OpenSearchについて Goから利用する
• 公式から環境構築のDockerサンプルが 提供されている • Go クライアントが提供されている
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. OpenSearchについて Dockerサンプル
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. Goから利用する (ドキュメントの登録)
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの登録 公式サンプルを利用する
• Goクライアントを利用した実装例 • CRUD操作を一通り実施
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの登録 APIはJSON形式でやりとり
• APIのパラメータに適した 構造体の定義 • json.Marshal / Unmarshalを利用 • JSON-to-GoでJSONを構造体に変換 https://mholt.github.io/json-to-go/
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの登録 実際の実装内容
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. Goから利用する (ドキュメントの検索)
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの検索 公式サンプルを利用する
• こちらもJSON形式でやりとり • 独特な検索クエリに慣れる必要あり
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの検索 実際の実装内容(前半)
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. ドキュメントの検索 実際の実装内容(後半)
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 注意点
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 注意点 大量のドキュメントをループで登録中、以下のようなエラーが発生
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 注意点 公式サンプルとの相違点
• 更新サンプルはレスポンスを 閉じる処理が省略されている • Go Packagesのサンプルでは レスポンスを閉じる処理有り レスポンスを閉じないと、 先ほどのエラーが発生するため注意
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. まとめ
Copyright (C) 2020 Toranoana Inc. All Rights Reserved. まとめ GoからOpenSearchを取り扱うのは比較的簡単
・OpenSearch、Go共にサンプルが充実 ・Goクライアントが用意されている ・GoとJSONの相性が良い(気がする) OpenSearchはGoと相性の良い 検索エンジンだと感じました