2020-06-01から1ヶ月間の記事一覧

14.ES|Post Filter

Post Filterとは、検索結果とAggregations(集計結果)の両方に対して、Filterをかける機能。 サンプルクエリ GET /shirts/_search { "query": { "bool": { "filter": { "term": { "brand": "gucci" } …① } } }, "aggs": { "colors": { "terms": { "field": …

13.ES|Aggregations(Bucket/Metrics)

Aggregation 集計する機能。SQLで言うところの、GROUP BY。 sumやmaxといった集約を行える。 集約クエリ(Aggregations)は、BucketとMetricsに分かれる。 「Bucket」…検索結果を指定条件で分類。(例)検索結果を期間ごとにグループ化するなど。 「Metrics…

12.ES|scroll_search API

Elasticsearchでの検索時、オプションに何も指定しなければ10件までしか取得されない。 オプションでsizeを指定すると件数を増やせるが、最大でも10,000件までとなる。 10,000件を超えるデータを取得する際は、scroll_search APIで何回かに分けて取得するこ…

11.ES|Nested Query

「Nested Query」とは、「Nested データ型」という配列構造を持ったオブジェクトを取得する為のクエリのこと。 「Nested データ型」は、「Object データ型」の中の特殊な型。 サンプルクエリ GET /drivers/_search { "query" : { "nested" : { "path" : "dri…

10.ES|Bool Query

概要 Elasticsearch 2.0からANDクエリとORクエリが非推奨となり、代わりにBoolクエリが推奨となった。 Boolクエリは複数クエリの組合せ(AND・OR・NOTの結合)に使う。 「must」…ANDとして使う。小クエリは総合スコアに影響を与える。 「filter」…mustと同じ…

9.JS|Webpack

フロントの開発環境周りでちょくちょく出てくるけど、何かよく分かっていないので整理。 Webpackは、JSファイルをまとめる高機能なモジュールバンドラーのこと。 モジュールバンドラーとは、複数のモジュールを依存関係を解決してまとめる為のもの。 モジュ…

8.Neo4j|CREATE・DELETE

プロパティ・リレーション無し ノード作成 CREATE (n: Dummy) ・Neo4j公式/3.10.CREATE neo4j.com ノード削除 MATCH (n: Dummy) DELETE n ・Neo4j公式/3.11. DELETE neo4j.com プロパティ・リレーション有り ノード・プロパティ・リレーション作成 CREATE …

7.SSH|Key設定

今日インフラエンジニアの人にサーバーのアクセス権限を与えて貰った際に、SSH Key設定を行ったのでおさらい。 ローカル環境で、SSH公開鍵・秘密鍵を作成。 $ cd ~ $ mkdir .ssh $ ssh-keygen -t rsa 質問に対して3回とも何も入力せず、エンター。 作成した…

6.Redis

NoSQL型のデータベースシステムで、キーバリューストア(KVS: Key-Value-Store)として動作する。 任意の保存したい値(Value)に対し、対応する一意のキー(Key)を設定し、これらをペアで保存する。 保存する値として様々なデータ構造を利用することができ…

5.Neo4j|Migrations

マイグレーションファイルの生成・実行例(公式サイト参照) ・Generatorの実行 rails generate neo4j:migration RenameUserNameToFirstName ・マイグレーションファイルの作成・処理の追加 生成されたファイル:「db/neo4j/migrate/xxxxxxxxxx_rename_user_…

4.AWS|CodeBuild

当社では、CodeBuildをTestCafe(E2Eテスト)周りで使用している。 GitHubと連携していて、プッシュすると自動でコードをビルドしてTestCafeを廻してくれるようだ。 公式には、下記のように説明されている。 ソースコードをコンパイルし、テストを実行し、デ…

3.Rails|VCR

当社では、課金処理周りでAPIを叩く際のテスト(RSpec)で使っているらしい。 大まかには理解できたが、いまいち具体的なイメージが付かなかったので調べてみた。 例えば課金周りでは、安易にAPIを叩くと実際に課金処理が行われてしまったりと問題が多い。 …

2.Sidekiq|verbose

Sidekiqのログ出力オプションとして設定されていたので、意味を確認。 障害解析などに必要な詳細情報を出力する為のログ出力レベル。 normalで出力する内容に加えて、より詳細なログまで出力する。 なおオーバーヘッドがかかる為、通常運用時と比べてスルー…

1.CI/CD

「Continuous Integration/Continuous Delivery」の略で、継続的インテグレーション/継続的デリバリーという意味。 ソフトウェアの変更を常にテストして自動で本番環境にリリース可能な状態にしておく、ソフトウェア開発手法を指す。 会社で導入されているC…