こんにちは。ZOZOテクノロジーズZOZOTOWN部 検索チーム 兼 ECプラットフォーム部 検索基盤チームの有村です。 ZOZOTOWNでは先日公開した記事の通り、すべての検索をElasticsearchへ置き換えました。置き換え直後は順調に見えたのですが、実際に数%ずつリリースしていく中で一部時間帯、一部リクエストでレスポンス速度の低下がみられました。 本記事ではその解決のために行ったパフォーマンス調査、チューニング方法についてご紹介します。なお、一般的に行われるであろうElasticsearch本体のパラメータチューニングの話ではなく、クエリやmapping、setting面の話がメインとなります。 改善前後の速度について 詳細な内容の前に、本改善によるレスポンス速度の最終的な改善結果を示します。 今回の計測では、一定パターンのリクエストを10秒間繰り返し、95%tileのレスポンス
This article and much more is now part of my FREE EBOOK Running Elasticsearch for Fun and Profit available on Github. Fork it, star it, open issues and send PRs! Ever since I started to write about operating Elasticsearch, I have answered many questions about cluster design. Every one of them we asked by people who were already running Elasticsearch and ran into trouble after the first users came.
こんにちは。アプリケーション基盤チームの @ueokande です。 今日は、サイボウズの新しくなったログ基盤についてお話しします。 サイボウズのログ基盤の進化 リプレイス前のログ基盤 サイボウズのログ基盤はサービスの成長に合わせて、常に進化し続けてます。 そんななか2017年の夏に大きなリプレイス作業がありました。 サイボウズのサービスを支えるログ基盤 from Shin'ya Ueoka 以前のログ基盤は、ログを収集するホストがあり、各ホストからログを収集してました。 しかしログの転送システムが単一障害点であったり、スケーラビリティに欠けるのでサービスの成長に追いつかず、性能的にも限界に達してました。 また以前のログ基盤では、ログの解析がしにくく、ログはあるけどビジネスに役立てにくい状況でした。 そのため今後のサービスの成長や、より安定したログ基盤を運用できるように、ゼロから刷新するこ
tl;dr (要約) Kuromojiに代わる新しい形態素解析器「Sudachi」 なにが良いの? 最新の辞書 企業(ワークスアプリケーションズ)による継続的な更新 複数の分割単位 → 検索用途での再現率と適合率の向上 プラグインによる拡張 省メモリ Elasticsearchで使いたい プラグイン: WorksApplications/elasticsearch-sudachi 使い方は当記事の後半をご覧ください 注: この記事の執筆者はSudachiの開発に関わっています さまざまな形態素解析器 形態素解析は、伝統的な自然言語処理(Natural Language Processing, NLP)において基盤となる技術です。そして世の中にはさまざまな形態素解析器が存在します。販売されているものもありますが、一般に公開されているものだけでもいくつか例をあげると、JUMANとRNNLMを利
Uncategorized Adventures In High Availability Logging — Elasticsearch, Logstash, and Kibana (ELK) on Kubernetes By Erik Nygren At Parsec, we are a small team working on problems all over the stack. Between the four of us we are supporting low latency PC gaming over the WAN on Mac, Windows, Linux, Raspberry Pi, and stay tuned for an upcoming platform release, going as close as we can to the hardwar
概要 kibana5.3.0で遊ぼう会。 https://www.elastic.co/blog/kibana-5-3-0-released の内容を見てなぞりながら、新規機能を確認します。 環境作成 例によってDockerで立てましょう。docker-compose up -dと。 version: '2' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0 container_name: elasticsearch ports: - 9200:9200 - 9300:9300 kibana: image: docker.elastic.co/kibana/kibana:5.3.0 container_name: kibana links: - elasticsearch:
はじめに Elasticsearchを仕事で使うことになったので導入前に考えるであろうことを調査・検証し、まとめてみました。 記載されている内容はほぼ公式ドキュメントから引っ張ってきています。それぞれの章にリンクを付けてありますので、記載されていること以外に気になる部分があればそちらを参照されるとよいと思います。 インストールについて ここで設定している内容はすべてansibleのスクリプトに落としてあります。 5分あればcurl,javaのインストール、Elasticsearchのインストール・初期設定、プラグインのインストールが終わるはずです。 https://github.com/uzresk/ansible-elasticsearch2 環境 CentOS6.7 Java1.8.0_45 Elasticsearch 2.1.1 HeapSizeの設定 Elasticsearchが使
The Loggly service utilizes Elasticsearch (ES) as the search engine underneath a lot of our core functionality. As Jon Gifford explained in his recent post on Elasticsearch vs Solr, log management imposes some tough requirements on search technology. To boil it down, it must be able to: Reliably perform near real-time indexing at huge scale – in our case, more than 100,000 log events per second Si
こんにちは。エンジニアの岩永です。 先日 Wantedly では Elasticsearch と検索エンジンについて勉強会を開催しました。 概要 Wantedly が内部向けにやっている勉強会に20名様だけご招待。 63,000回。Google は一秒間にこれだけの検索をしていると言われています。 1.2年ごとに世界中の情報が倍になっている現代において、 検索はユーザが目的のものに素早くアクセスする手助けをしています。 情報に素早くアクセスできるというのはどんなサービスでも重要なことです。 しかし、検索エンジンを作ると言っても、実際に何に気をつけて作っていけばいいのかわからないという方も多いと思います。 今回の実践会では GitHub の I カバー画像は Elasticsearch 開発元である Elastic 社の Jun Ohtani さんがおみやげに持ってきてくれたグッズです。(あ
これまでの記事でも Cluster や Node を始めとする Elasticsearch を構成する要素について触れているのですが、 文章だけでは理解しづらいところもあるので、今回は改めて Elasticsearch の基本コンセプトについて図も交えて解説したいと思います。 それではさっそく。 Cluster は Node の集合 Cluster は 1つ以上の Node (Elasticsearch Server) で構成されます。Elasticsearch は検索トラフィックの増加とデータ量や書き込み速度の分散を Node を増やすことで対応することができます。 Index は RDB の Database に近い概念 Elasticsearch の Index は、リレーショナル・データベースの Database に相当します。1つの Cluster に複数の Index を作成す
Elasticsearch 勉強会 in 京都での発表スライド (Elasticsearch 勉強会 in 大阪での発表と同じ内容です)
機械学習を使った多項分類では、教師データが必要で、教師データがない場合には、この正解データを作成することがかなり大変です。例えば今回のタイトルにあるように Twitter のツィート情報をもとに任意のカテゴリーに分類したい場合、教師データを作成することも大変ですが、Twitter の特性上、特徴を抽出するためのテキスト情報も少なく、さらにせっかく作成した教師データもすぐに古くなってしまう(使い物にならない)可能性があります。 なので、今回は Elasticsearch のパワーを使って大量のツィート情報をリアルタイムに分類したいと思います。 システム概要一般に公開されている Twitter Streaming API (statuses/filter)を使って言語を ja のみ、キーワードを twitter にすると、実績値では、ツィート数:約450万件/日、インデックスサイズ:約20GB
Elasticsearch と Mahout を組み合わせ、「関連する商品」や、「関連するユーザ」を表示する機能をつくりました。 アルゴリズムはMahoutをそのまま使い、ロジックをElasticsearch プラグインにすることで、サーバ&データストアがElasticsearchでまかなえます。 以下にプラグインを公開しました。 https://github.com/hadashiA/elasticsearch-flavor これを実際に運用中のサービスがあるんですが、商品数がせいぜい数十万件程度だったので Hadoop等は使わず、リアルタイムで結果を計算して返す作りになっています。 おそらく1,000万件くらいになってくるとやり方を考え直さないといけなくなりそうだけど、そこまで大規模にならなければなかなか便利なものができた。 Mahoutとは Apache Mahout は、色々な機械
(この文章は秋の文フリ用の原稿です。) Kibana 前章(http://boonlab.hatenablog.com/entry/2015/10/26/000958)では、ElasticSearchへの小説データのインポートを行った。 それでは、それらのデータをデータ可視化ツールであるKibanaを用いて可視化していきたい。 まずは、https://www.elastic.co/downloads/kibanaからkibanaをダウンロードし(2015/11時点ではKibana 4.1.2)、展開したディレクトリ内の bin/kibana を実行してみよう。その後、ブラウザでhttp://localhost:5601にアクセスすると以下のような画面が表示される。 ここで、"Index name or pattern"に"dazai-demo"(indexの作成先)と入力して、Create
(以下の文章は秋の文フリの原稿です) はじめに 読書という行為を、時間を抜きにして語ることはできない。例えば20000字程度の短編小説ならば、仮に分速500文字で読書可能だとすると、40分もの時間をわたしたちはそのテキストと向かい合うこととなる。わたしたちは読書を行っているあいだ、細胞の中でDNAを解読するリボソームのように、テキストをシリアルに視野の中に取り込み、脳の中で解釈していく。この際、解釈の方向は定められている。縦書きであれば上から下に。横書きであれば、(大抵の言語は)左から右に読まれるしかない。テキストは、ごく一部の例外を除けば、一方向にしか読まれ得ない。読書は非常に"時間"に似通った、あるいは随伴した現象だと考えられる。 以前発行した同人誌『実用 どんぐりと山猫』では、pythonとd3.jsを用いて小説中のある値の時間変化を可視化した。昨今、可視化ツールとして、プログラミン
DeNA社内でのElasticsearch勉強会にて、アプリ「ハッカドール」におけるElasitcsearch利用法について発表してきました。 スライドはこちら。 Elasticsearch for Hackadoll from mosa siru Elasitcsearchの中身や運用について濃く触れるというよりは、ちゃんとした検索エンジン作るための泥臭い話がメインになっています。 (ある意味で昨年Tokyo WebMiningにて発表した捗るリコメンドシステムの裏事情(ハッカドール)の派生スライドです。) ハッカドールは1周年を迎え、来月にはアニメ化もされます。ニュースアプリがアニメ化とか開発者としてもどうなるか予想がつきませんが、放映時には全裸待機しようと思います! hackadoll-anime.com
ElasticsearchとKuromojiを使った形態素解析とN-Gramによる検索の適合率と再現率の向上:Elasticsearch+Hadoopベースの大規模検索基盤大解剖(2)(1/3 ページ) リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。今回は、テンプレートを利用したインデックス生成など、検索結果の品質を向上させるためのさまざまな取り組みを紹介する。 連載目次 リクルートの全社検索基盤「Qass」の事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する本連載。初回の前回「リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか
はじめに 本稿では、はてなブックマークの10周年記念の第1弾として開発した「トピックページ」の作り方について解説します。トピックページとは、インターネット上で話題となったトピックを閲覧できるページです。 トピックページは、トピックに関連する記事の集合とトピックを表すタイトルから構成されます。 トピックページ生成の流れは以下の通りです。 トピック生成 トピック表すキーワード集合を獲得し、そのキーワードに関連する記事を収集する。 トピックタイトル生成 トピックに関連する記事の情報を利用してトピックを表すタイトルを生成する。 本稿では、Elasticsearchなどの検索技術を活用したトピック生成方法、および、CaboChaなどの自然言語処理技術を活用したトピックタイトル生成方法について説明します。 対象読者 Elasticsearchを利用している/したい方 検索技術、自然言語処理技術に関心の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く