Sparse Indexesとは DynamoDBのデータ抽出アプローチのテクニックの1つ 特定Itemにしか設定していない項目にGSIを含めることでプライマリーキー、ソートキー以外のキーでデータ抽出を容易に 以下の悩みを解決(プライマリーキー、ソートキー以外のキーでデータ抽出) scanだと高コスト、キーで検索しても高コスト、フィルターだとキー検索とコスト一緒 サンプル: gameから最優秀賞を取得 初期テーブル game単位で最優秀スコアのデータを取得したい scoreの最優秀をawdという項目を用意。対象以外は項目を設定しない awdを含めたグローバルセカンダリインデックスを作成 GSIを検索 最優秀賞が設定されている項目が少ないため、VIEWが出来た時点で絞り込まれている scanしても低コスト!←今回の一番のポイント aws dynamodb scan --table-name game --index-name name-awd-index { "Count": 1, "Items": [ { "score": { "S": "3" }, "id": { "S": "user3" }, "awd": { "S": "cp" }, "name": { "S": "game1" } } ], "ScannedCount": 1, "ConsumedCapacity": null }
Create Table (sample:mails) aws dynamodb create-table --table-name mails \ --attribute-definitions \ AttributeName=id,AttributeType=S \ AttributeName=Name,AttributeType=S \ --key-schema \ AttributeName=id,KeyType=HASH \ AttributeName=Name,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=2,WriteCapacityUnits=2 attribute-definitions プライマリーキーとソートキーを定義する それ以外のキーはテーブル作成時には定義しなくても良い key-schema HASH パーティションキー RANGE ソートキー provisioned-throughput ReadCapacityUnits 読み込みスループット WriteCapacityUnits 書き込みスループット put-item aws dynamodb put-item \ --table-name mails \ --item '{"id": {"S": "testid1"},"Name": {"S": "Alice"},"mail": {"S": "alice@test.
完成したもの まずは動いているものは以下になります。 https://icck.github.io/search/ 作業手順 手順を順に記載していきます。以下の記事を参考にさせていただきました。 http://rs.luminousspice.com/hugo-site-search/ https://snap.textgh.org/post/full-text-search-in-hugo/ インデックスファイルのテンプレート $ mkdir ./layouts/js $ touch ./layouts/js/single.html var data = [{{ range $index, $page := where .Site.Pages "Section" "posts"}} {{ if ne $index 0 }},{{ end }}{ url: "{{ $page.Permalink }}", title: "{{ $page.Title }}", content: "{{ .PlainWords }}" }{{ end }}] インデックスファイルを生成する空の投稿 $ hugo new pages/indexjs.md --- date: 2019-08-28T21:50:35+09:00 type: "js" url: "index.js" --- 検索ページの作成 検索ページテンプレートの作成 $ mkdir ./layouts/search/ $ touch .
Hugoの使い方を今後のブログ更新のために Hugoでブログを書いていく上で、運用方法をメモしていこうと思います。 インストール等は気が向いたときに。 Local環境を起動 $ hugo server --theme=hugo-theme-nix --buildDrafts --watch 記事の作成 $ hugo new post/test.md --- title: "test" date: 2019-08-26T01:14:23+09:00 draft: true --- title:記事のタイトルに修正 date:作成時刻のため、そのまま draft:trueが非公開。falseに変更し公開 Sample --- title: "test" date: 2019-08-26T01:14:23+09:00 draft: false --- ## ここにマークダウンで本文を記載 githubへpush ./deploy.sh