タグ

ブックマーク / qiita.com (417)

  • Elasticsearch2.xのAggregationの概要まとめ - Qiita

    目次 Aggregation 2.x Metrics Aggregations Bucket Aggregations Pipeline Aggregations まとめ おまけ Aggregation 2.x インデックスに対して検索を行うと検索条件に一致したドキュメントの集合「hits」が得られます。hitsに含まれるドキュメントが持つ情報を集計するのがaggregationの機能です。公式のドキュメント(執筆時点で2.1が最新)ではMetrics Aggregations, Bucket Aggregations, Pipeline Aggregationsの3種類に分類されています。 今更ではあるのですが、私はこれまでなんとなく使っていただけだったので全体像をイメージできるようにまとめておこうと思います。 Metrics Aggregations 「それぞれのドキュメントが持つ値を

    Elasticsearch2.xのAggregationの概要まとめ - Qiita
  • Elasticsearchでコンテンツ検索のログを活用する - Qiita

    まえがき これはElasticsearch Advent Calendar 7日目の記事です。 今回はElasticsearchをコンテンツの検索として利用した際にElasticsearchで検索ログも収集・利用する方法についてです。 私はAdvent Calendar参加が今回初めてになります。 もし分かりにくいところがあったらツッコミお願いします。 はじめに Elasticsearchは主に「コンテンツ検索」と「ログ管理」の二通りの使われ方をしています。 「コンテンツ検索」は、記事やユーザのコメントなどの文章をESで検索する利用方法です。日語の検索がメインになるので、正規化や形態素解析辞書、同義語辞書の管理などが課題になります。 「ログ管理」は、みんな大好きFluentdとKibanaなどを組み合わせてアクセスログを グラフ化したり、エラーログを検索できるようにする活用方法です。 こ

    Elasticsearchでコンテンツ検索のログを活用する - Qiita
  • LogstashでのGrokの始め方 - Qiita

    はじめに 投稿の目的 Elasticsearchでログ収集を行う際、ApacheやSyslog等の代表的なものであれば、既存のgrokパターンが存在しているが、たいていはオリジナルで作成が必要なケースがほとんど。 また運用者の分析したい観点に合わせるため、既存のgrokパターンが在ったとしても、修正したいケースがある。 このように、Logstashのgrokパターンの生成は、Elasticsearchでのログ収集にあたって、不可欠なスキルである。にもかかわらず、Logstashを利用する上での最難関のConfigであるため、一人でも多くこの難関を超えてほしいという思いから、入門用のチュートリアルを作成する。 投稿のゴール grokパターンを自分で作成できるようになること ステップ1:取り組み方 ログは頭から順番に分解していく。 まずは簡単なログサンプルを見てみる。以下、Syslogのと

    LogstashでのGrokの始め方 - Qiita
  • Logstashで二重に登録しないために - Qiita

    概要 elastic社のブログに「Little Logstash Lessons: Handling Duplicates」という内容があがっています。 Google翻訳のお力を頂戴して、日語で内容を確認したその結果です。 結論 elasticsearchにoutputするとき、IDが明示的に指定されていないと、elasticsearch側でIDが採番される。 これが重複して登録する元になっている。 なので、fingerprint filterを使って以下のようにアプローチすると良い。 ともにfingerprintを使うのは同じ。 同一の中身のものは、同一のものとして扱いたいとき 同じ内容のものは同じIDになるようにし、その値をDocumentのIDとする 1回のイベントで送信したものは再送されたとしても、同一のものとして扱いたいとき イベントごとにUUIDを生成し、その値をDocume

    Logstashで二重に登録しないために - Qiita
  • LogstashでApacheのログをElasticsearchに投入する方法 - Qiita

    Logstashを使って、Elasticsearchにログを登録する方法を下記の通りまとめた。 再起動時のプロセスの自動起動についても手順の中に織り込み済み。 インストール ここを参考 https://www.elastic.co/guide/en/logstash/current/installing-logstash.html Yumリポジトリの登録 GPG-Keyの登録 sudo rpm --httpproxy 129.168.0.1 --httpport 7777 --import https://packages.elastic.co/GPG-KEY-elasticsearch viコマンドでYumリポジトリURLを追加 sudo vi /etc/yum.repos.d/logstash.repo [logstash-5.x] name=Elastic repository fo

    LogstashでApacheのログをElasticsearchに投入する方法 - Qiita
  • CentOS 7 (5, 6) で安定版 (最新版) の Nginx をインストールする方法 - Qiita

    前置き CentOSでNginxをインストールする方法を調べてみると、大抵のサイトには「Nginxはyumのリポジトリに登録されていないので、はじめにリポジトリの登録をしないとインストールできません」と紹介されています。 当にそうなのか? と疑問に思ったので、登録をせずにいきなりインストールしようとしてみました。 $ sudo yum -y install すると、あっさりインストールできました😮 もしかすると前はyumのリポジトリに登録されていなくて、現在は登録されたのかもしれません。 面倒な手間が省けてラッキー! と思ったのもつかの間で、バージョンを確認してみたら… だいぶ古いバージョンでインストールされてしまいました😅 登録はされたけどしばらく更新がなかったのかもしれないですね… なので、今回はCentOSで安定版のNginxをインストールする方法を紹介します。 手順 設定ファ

    CentOS 7 (5, 6) で安定版 (最新版) の Nginx をインストールする方法 - Qiita
  • Elasticsearch導入前に気を付けておきたいこと! - Qiita

    はじめに Elasticsearchを仕事で使うことになったので導入前に考えるであろうことを調査・検証し、まとめてみました。 記載されている内容はほぼ公式ドキュメントから引っ張ってきています。それぞれの章にリンクを付けてありますので、記載されていること以外に気になる部分があればそちらを参照されるとよいと思います。 インストールについて ここで設定している内容はすべてansibleのスクリプトに落としてあります。 5分あればcurl,javaのインストール、Elasticsearchのインストール・初期設定、プラグインのインストールが終わるはずです。 https://github.com/uzresk/ansible-elasticsearch2 環境 CentOS6.7 Java1.8.0_45 Elasticsearch 2.1.1 HeapSizeの設定 Elasticsearchが使

    Elasticsearch導入前に気を付けておきたいこと! - Qiita
  • Javaで実装する再帰の末尾呼び出し最適化 - Qiita

    再帰は強力なアルゴリズムであり、様々な実装に用いられていますが、現実では間違った実装をしてしまうとメモリが枯渇してしまうことなどの問題があり、あまり好まれていないことも多いアルゴリズムだと考えています。 ですが、正しくプログラミングする方法を知っていれば、再帰を使うことのメリットを享受できるとも思っています。 フィボナッチ数列をJavaでプログラミングしながら、スタックオーバーフローが発生しない再帰のプログラムを書いてみようと思います。 よくあるフィボナッチ数列の実装 以下にフィボナッチ数列の簡単な実装をしてみました。 public class Fibonacci { public int fibonacci(int n) { if (n <= 0) { return 0; } else if(n == 1) { return 1; } else { return fibonacci(n

    Javaで実装する再帰の末尾呼び出し最適化 - Qiita
  • 既存のMavenプロジェクトをGradleでビルドできるようにしてみよう - Qiita

    はじめに 最近、社内でMavenの勉強会があり、Gradleも話題として挙がっていました。 Mavenとの比較ができたら面白そうだったのでGradleを使い始めています。 今回の内容は既存のMavenプロジェクトをGradleに移行するやり方なので、 既にたくさんの方がやっていて目新しさはないかと思いますが・・・ 今回の実施環境 Windows 7 Gradleインストール ダウンロード&インストール なにはともあれ、まずはGradleをインストールしましょう。 Gradle公式 上記URLからDownload&Docsを選び、Complete distributionもしくは、Binary only distributionをダウンロードして好きなところに解凍します。 解凍できたらbinにPATHを通します。 プロキシ設定 社内などプロキシ配下でGradleを実行する場合は、プロキシ設定

    既存のMavenプロジェクトをGradleでビルドできるようにしてみよう - Qiita
  • 優秀な技術者を追い出してしまう方法 - Qiita

    若手エンジニアを不幸にしないための開発の「べからず」集 組織運営編から記事を独立させました。 優秀な技術者ほど辞めてしまいやすいのは、多くの会社に共通していることです。 この文章では、どうして優秀な技術者が辞めていってしまうのか、その理由を探るとともに、そうならないようにするための対処方法を少しずつ書き足していきたいと思っています。 マネジャーのみなさんへの前書き 会社の資産であるソースコードはきちんと管理されてますか? 「きちんと金庫にしまってある」ではありません。 開発が進みやすく、今のソースコードはどのように品質が保たれているのかがわかるようになって 管理されてますか。 ソフトウェアの開発などで生じている課題は、どのように管理されていますか。 「去年の△月ごろに問題になっていたあの件は、結局どうなったのかい。」 「担当していた○○さんがだったら知っているんですけれども、もうやめちゃい

    優秀な技術者を追い出してしまう方法 - Qiita
  • Apache PDFBoxでPDFを印刷する - Qiita

    Apache PDFBoxが日語出力できるようになったのもあり、今まで全然使ったことなかったけどPDFBoxどんなことできるの?っていうのを少しずつ調べています。 今回はPDFの印刷の方法です。 下記の公式Documentを参考にしました。(というか下記を見たらこのページ見る意味ないですけど) https://pdfbox.apache.org/2.0/migration.html#pdf-printing PDFファイルの印刷 public static void main(String[] args) throws IOException, PrinterException { try (InputStream in = new FileInputStream("pdf.pdf")) { print(in); } } public static void print(InputStr

    Apache PDFBoxでPDFを印刷する - Qiita
  • Java8でJava8っぽいコードを書く - Qiita

    概要(お前は何を言っているんだ) コードレビューしていると、Java8のfeature(Stream APIとかOptionalとか)を使ってるんだけど、Java7以前と大差ない書き方をされているコードをよく見かける。 もっと皆にJava8っぽいコードを書いて欲しい。そうじゃないともったいない。 (*"Java8っぽい"の基準は割りと(かなり?)私見が入っている) 言葉を尽くしても伝わりづらいので、例を作ろう。 ← これ ついでに、「無理してJava8のfeature使うことで、逆に悪くなってしまっている例」も作ろう。 対象読者 Java8でコード書いてるけど、Java7以前の書き方が染み付いちゃっていてなかなか抜け出せない人 「forやnullチェックは絶対使うべきでない」という思いが強すぎて、何でもかんでもStream APIやOptional使ってる人 Notice この記事で書いて

    Java8でJava8っぽいコードを書く - Qiita
  • JavaScriptフレームワーク選定の議論 - Qiita

    相談内容 既存の管理ツールを新しく作り直すために新しいJSフレームワーク/言語使いたいのですが、何を選んだらよいでしょうか? ここで選んだものは今後新しく作る時にも使用していく予定のため、学習コストよりメンテナンスしやすいものを選びたいと考えています。 利用者は社内外で特定の権限を持った人のみであるため、サーバサイドレンダリングはしない予定です。 言語は型があるものを利用したいのですが、TypeScriptとFlowのどちらがよろしいでしょうか? 時間に余裕があれば、テストフレームワークやビルドツールについてもお聞きしたいです。 現在のページ/チーム jQueryなどで書かれている部分が多いですが、変更を加えることが難しくメンテナンスコストが高いです。 サーバサイドをやってる人が片手間で書くJavaScriptといった状況です。 今回新規で数ページを追加する必要があるため、何を利用すれば良

    JavaScriptフレームワーク選定の議論 - Qiita
  • JUnitでLoggerの出力内容をテスト - Qiita

    きっかけ 外部コマンドを実行するなど、副作用の結果を取得しづらいときは、ログの挙動で期待する結果かどうかを判定したくなります。あるいは、ログ出力されるかどうかをテストしたいというときもあり、調べたり試行錯誤してみました。 コンストラクタインジェクションを使うやり方 mockのLoggerインスタンスを差し込めるようにするという、一番シンプルなやり方です。今のところはこのやり方に落ち着いています。 サンプルコード public class Sample { private Logger logger; public Sample() { this.logger = LoggerFactory.getLogger(this.getClass()); } public Sample(Logger logger) { this.logger = logger; } public void appl

    JUnitでLoggerの出力内容をテスト - Qiita
  • TypeScript 2.4.1 変更点 - Qiita

    こんばんは@vvakameです。 TypeScript 2.4.1がアナウンスされましたね。 What's new in TypeScriptも更新されているようです。 変更点まとめ 関数の返り値の型をGenericsの型パラメータの推測に利用する Infer from generic function return types const array: string[] = (<T>(): T[] => [])(); のコンパイルが通るようになった ざっくりコンパイル通すために具体的に型を指定していた箇所を省略可能に Generics有りの関数の型パラメータが推論されるようになった Contextual generic function types これも上のと同様のメリット Genericsの型の互換性チェックがより厳密になった Stricter generic signature c

    TypeScript 2.4.1 変更点 - Qiita
  • webpackとかKarmaとかの設定ファイルをTypeScriptでかく - Qiita

    構成 こんな感じの環境を作っています。 TypeScript webpack Jasmine Karma あと karma-coverage とかものせてます。 設定ファイルもTSで書きたい 設定ファイルだけJavaScriptで書くのもなんとなく癪なので、TypeScriptで型チェックしていきます。 webpack.config.ts 公式で、ちゃんとできるよ!っていうガイドを用意してくれています。 Qiitaの記事を書いてる方もいました。 ということで割愛します。実際に行った作業は以下の3つです。 ts-nodeのインストール @types/webpackのインストール webpack.config.tsの作成 karma.conf.ts こちらも公式で触れられています。 https://karma-runner.github.io/1.0/config/configuration-

    webpackとかKarmaとかの設定ファイルをTypeScriptでかく - Qiita
  • TypescriptでBackbone.jsを書く際に気をつけるポイント - Qiita

    この度、既存のBackbone.js環境をTypescriptに移行したので注意点などをご紹介します。 型定義はDefinitelyTypedから取得して使っています。 Model 最大の問題は、Modelのgetメソッドの戻り値がany型になってしまうという点です。 このままだと型のメリットが全く受けられません。 そのため、getを使うのをやめてattributesの値を直接見るのが良いです。 内部的にはgetメソッドはattributesの値を返しているだけなので問題ないです。 まず以下のような抽象クラスを定義します abstract class TypedModel<Props> extends Backbone.Model { public attributs: Props }

    TypescriptでBackbone.jsを書く際に気をつけるポイント - Qiita
  • Heroku Javaで始め方(Getting Started on Heroku with Java) - Qiita

    Heroku を初めて利用する際のメモ 家の「Getting Started on Heroku with Java」を実施した際のメモ書きとなります。 Getting Started on Heroku with Java 環境 2016/10/22(Sat) 時点 クラウドのサービスは仕様がよく変わるので後で参照するときは、変更点に気を付ける Sign upについては割愛 アカウントを作成してSign upした状態からスタート 開発PC Windows 10 64bit 開発言語 家を参照する 最低限下記が必要 a free Heroku account. Java 8 installed locally. Maven 3 installed locally. Gradleじゃないのか。。。orz 公式には書いていないが、前提としてgitの環境整備はされてる必要がある。 Set u

    Heroku Javaで始め方(Getting Started on Heroku with Java) - Qiita
  • TypeScript 2.3 RC 変更点 - Qiita

    追記1: plugins周りに参考Issueや @Quramy パイセンの記事へのリンクを追加。 こんばんは@vvakameです。 TypeScript 2.3 RCがアナウンスされましたね。 What's new in TypeScriptも更新されているようです。 TypeScriptのリリースサイクルの変更がアナウンスされた後の初めてのリリース候補です。 変更点まとめ --target es3 と --target es5 でもジェネレータが使えるようになった Generator support for ES3/ES5 非同期イテレータのサポート Asynchronous iterators async generatorsとasync iterationのサポート for-await-of のサポート --downlevelIteration オプションの追加 Genericsの型

    TypeScript 2.3 RC 変更点 - Qiita
  • オブジェクト指向と10年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向は難しい!わかった気になって実践すると詰みます... ウギャー この記事は10年以上オブジェクト指向と戦った筆者が、通常とは異なるアプローチでオブジェクト指向を解説したものです。 筆者はJavaを使って格的なシステム開発をしたことがありませんが、オブジェクト指向言語として最もポピュラーなJavaをベースにオブジェクト指向について解説させていただきました。 また、この記事の続編にあたります「なぜオブジェクト指向は難しいのか」を更に2年の時を経て執筆させて頂きました!是非こちらも一読していただけると嬉しいです。 オブジェクト指向三大要素の謎 オブジェクト指向三大要素ってありますよね。オブジェクト指向は「カプセル化」「継承」「ポリモーフィズム」の3つの要素で成り立つと言われています。最近では、この三大要素が語られる傾向は薄いようですが、一度は耳にしたことがある

    オブジェクト指向と10年戦ってわかったこと - Qiita