Search and analytics, data ingestion, and visualization – all at your fingertips.
以前少しだけElasticsearchを触った時に、自分流Elasticsearch入門 - $shibayu36->blog; というElasticsearchに入門した時のメモをまとめていた。しかし、その頃はElasticsearchを使って完全に一人で一つの機能を作るというところまではいけなかった。 最近になってまたElasticsearchを一から導入する仕事をすることになった。この時以前自分がまとめた記事を読みながらやっていたのだが、実践で一から導入するためにはこの記事だけでは知識が足りなかった。 そこで、前の記事の知識をベースに、一から導入するために少しずつ学んでいき、自分のブログにまとめるなどのことをしてきたので、今回はその締めくくりとして、知識ゼロからElasticsearchを使えるようになるために学習したことについて書いておきたいと思う。 今回書くこと・書かないこと 今
GYAOの窓際エンジニア 玉利です。 休日返上で仕事をするようになると、家計が大変です。 まずは、弁当をつくらなくなります。仕入れも仕込みもできないので仕方ありません。今は夏だから食中毒こわいし。。。とか適当な理由をつけますが、単に家に帰ってくると抜け殻でなにもできないからです。1日800円x25くらいになるので月2万円近くアップ。 そして、ヨメの面倒を見るのがおざなりになるため、PKO(Peace Keeping Operation)活動として、なぜかヨメの軍事費(主に服)が増大します。これで10万円の出費。 自分も、細々したものを通販でポチってしまうので、今月マジでやばい。定時で効率よく仕事をするように、残業代の規定は雀の涙になるように設定されているので、普段はいいけれど炎上案件に関わると無事死ねます。 そして、我々の作ったESクラスタも、同様にメモリという家計をどうやってバランスさせ
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
本投稿は、一つ前の「Elasticsearch多言語化その2」の補足。 ゴール やりたい事は、以下のようなフィールドに対する検索結果のハイライトをすること。 nested 型で、中身は複数の “attachment” 型 attachment 型の “content” フィールドには、content.{ja,en,…} というサブフィールドを作成し、各言語毎の analyzer で処理する マッピング定義は以下の通り。(elastic4s の DSL をそのままコピペしたが、まぁ大体理解してもらえるかと。) val messageMapping = mapping("message").fields( "title_v3" typed StringType fields( "en" typed StringType analyzer "english", "ja" typed String
前回ではtemplateを使ってインデックスに対して特定のフィールド名に対してMappingする方法を試してみました。 最初はこれでも満足なのですが ある程度動いてくると、検索の精度に関して色々チューニングしたくなってくる。 それについて記載していきます。 まずはよくあるアルファベットの大文字、小文字 テンプレートを弄って設定を変更します。 まずはオリジナル。 { "template":"search*", "settings":{ "analysis":{ "analyzer":{ "ja-ma-analyzer":{ "type":"custom", "tokenizer":"ja-ma-tokenizer" }, "ja-2gram-analyzer":{ "type":"custom", "tokenizer":"ja-2gram-tokenizer" } }, "tokenize
本連載は、対話インターフェースを利用して新しい形の検索システムを体験してもらうことを目的としています。今回は日本語検索システムでよく用いられるElasticsearchを紹介します。Elasticsearchは大規模なデータに対しても適用可能な検索機能を提供している全文検索エンジンです。特徴としてスケーラブル、検索速度の速さ、検索結果の分析のしやすさ、開発者にとって使いやすいRESTfulなAPIが挙げられます。今回の記事はElasticsearchを用いた日本語検索システムの仕組みから設定の部分までを記述し、次回の記事で実際に動作させてもらいます。 本連載の内容 本連載で紹介予定の内容は次のとおりです。 Step1:Elasticsearchを用いた日本語検索システム 対話型の検索システムを作成するためのStep1として、Elasticsearchを用いた日本語検索システムの構築方法を紹
Amazon Elasticsearch Service を試してみた 近々導入する可能性もあって,検証も兼ねて,先月に Elasticsearch 2 系に対応した Amazon Elasticsearch Service を試してみた. Elasticsearch domain を作成する 作成完了までのステップは計4個ある. Step 1: Define domain Step 2: Configure cluster Step 3: Set up access policy Step 4: Review 今回は以下のスペックで作成した.実際に運用する環境なら Node を増やして,Storage は gp2 以上にして,インスタンスタイプはユースケースに応じて考える必要がある. Domain Name Elasticsearch domain name kakakakakku Ve
Elasticsearchを使おうとすると、まずアプリケーションの仕様にしたがってインデックス定義やマッピング定義を設計しなければならない。これはMySQLを使っていてスキーマを考えるフェーズに相当する。 この時、考えることが非常に多く、いろいろなドキュメントを参照し設計したので、今回はその手順について書いていきたいと思う。 インデックスやマッピングが何かという話は、次の記事を参考に。 Elasticsearchチュートリアル - 不可視点 Mapping and Analysis | Elasticsearch: The Definitive Guide [2.x] | Elastic また対象とするElasticsearchのversionは記事執筆時点の安定版の2.3.5とする。 今回サンプルとする例 実際のプロジェクトを参考例にすることは流石にできないので、今回はブログの記事を検索
こんにちは、アプリケーション基盤チームの渡辺です。IntelliJのコード補完はCtrl+;にバインドしています。 アプリケーション基盤チームでは、Necoプロジェクト(アーキテクチャ刷新プロジェクト)の一環として、 次世代の検索基盤を検討していて、その候補としてElasticsearchを調査しています。 先月の記事で再インデクシングと絡めてingest pluginの話をして、 びっくりするぐらい需要が低く、自分のテーマ選択のセンスのなさを痛感したのですが、 こじらせた感じで今日も再インデクシングの話をしたいと思います。 想定読者は、Elasticsearchにある程度慣れている方として、用語やAPI(インデックス, シャード, ScrollAPI, BulkAPIなど)の説明は最小限にします。 利用したElasticsearchのバージョンは5.0.0-alpha4です。2.X系だと
Elasticsearchを使おうとしているとAnalyzerという概念が出てくるが、このAnalyzerという概念は最初理解することが難しかった。全文検索の仕組みを理解すれば分かるだろうと思い、https://speakerdeck.com/johtani/elasticsearchru-men?slide=5 やhttp://www.atmarkit.co.jp/ait/articles/1111/18/news148.html の記事などを読んで勉強してみたものの、こちらもいろんな言葉が出てきて非常に混乱した。例えば転置インデックス、tf-idf、トークナイズ、ストップワード、N-Gram、正規化などといった言葉が出てくる。 いろいろ調べてみて整理すると、全文検索の技術には、なぜ検索ができるかの話以外に、類似度の話、検索を高速に行うための話、あいまいな検索に対応する話など、いろんな話
Elasticsearchをやっていると日々学びがありすぎる。しかし、それを毎回いい感じにまとめるのは大変すぎるので、とりあえずいろいろ整理がつくまで雑に今日の学びとしてまとめていきたい。 さて今日はanalyzer周りについて学んだ。 AnalyzerはTokenizer, TokenFilter, CharFilterから成り立つ AnalyzerはTokenizer, TokenFilter, CharFilterから成り立つ。ドキュメントはText analysis | Elasticsearch Guide [8.0] | Elastic や Analysis and Analyzers | Elasticsearch: The Definitive Guide [2.x] | Elastic あたりが参考になる。 Analyzers are composed of a sing
最近Elasticsearchを触っていて、まずはローカル開発環境を作ることになった。ただ、Elasticsearchはバージョンがかなり変わり、別プロジェクトと利用したいバージョンが異なっていたので、プロジェクト単位で使い分けるにはどうすればよいかを考えた。 やりたいこと プロジェクトごとにElasticsearchのバージョンを切り替えられるようにしたい MySQLだったら同じようなものにmysqlenvなどがある また、他の人が一瞬で環境を整えられるようにしておきたい 利用するプラグインなども含めて一瞬で バージョンを上げる時もローカル環境なら簡単にあげたい 作戦 Elasticsearchはここ からダウンロードして、特定のディレクトリに展開するだけでも利用できる そこでプロジェクトルートのelasticsearch/ディレクトリ以下に展開し、ここに展開したバイナリを利用するように
Wantedly インフラチームエンジニアの藤田 (@dtan4) です。今回は、社内で運用している PaaS である Paus の紹介をします。 社内 PaaS の必要性Wantedly ではデプロイ環境として本番環境とステージング環境が用意されていました。ここで、エンジニアが増えるに連れステージング環境の順番待ちが起こるようになってきました。原則として、フィーチャブランチはステージング環境で動作確認をした後本番環境にデプロイすることになっています。そのため、ステージング環境での確認が遅れることは新機能 / 修正のリリース速度低下につながっていました。 また、新サービスを開発する際の動作基盤構築にかかる工数も問題になってきました。従来だと新しいサービス向けの動作基盤を構築するのに丸1日費やしていました。これはリリース前の検証環境においても同様です。このため、メインサービスの www.wa
こんにちは。エンジニアの岩永です。 先日 Wantedly では Elasticsearch と検索エンジンについて勉強会を開催しました。 概要 Wantedly が内部向けにやっている勉強会に20名様だけご招待。 63,000回。Google は一秒間にこれだけの検索をしていると言われています。 1.2年ごとに世界中の情報が倍になっている現代において、 検索はユーザが目的のものに素早くアクセスする手助けをしています。 情報に素早くアクセスできるというのはどんなサービスでも重要なことです。 しかし、検索エンジンを作ると言っても、実際に何に気をつけて作っていけばいいのかわからないという方も多いと思います。 今回の実践会では GitHub の I カバー画像は Elasticsearch 開発元である Elastic 社の Jun Ohtani さんがおみやげに持ってきてくれたグッズです。(あ
前回に引き続き、今回もハンズオンです。後編では、仮想 Classmethod 社の社員情報をサンプルデータとして用意しました(※ もちろんデータは本物ではありませんのでご安心ください。)。 このサンプルデータを使用して、検索や分析方法を API を使って説明します。 環境のセットアップがお済みでない方は、前回の「第7回 Elasticsearch 入門 API の使い方をハンズオンで理解する 〜前編〜」の「事前準備」の章を参考にセットアップしてください。 サンプルデータのインデックス ハンズオンを始める前に、以下の手順でサンプルデータをダウンロードしてインデックスしてください。 employees.jsonl を含むサンプルデータは こちら からダウンロードできます。 cd employees # 1. add index template. curl -XPUT 'localhost:9
重い腰を上げてElasticsearchのメジャーバージョンアップを行うことになったのでメモ。 引き続いてDebianを使っているのでDebian向けの内容になってます。 基本的なところ メジャーバージョンアップになるけど、旧バージョンのインデックスを失うことはない。 注意点としてはクラスタの全ノードを停止する必要があるので、無停止でのアップグレードができない。 アップグレードガイド https://www.elastic.co/guide/en/elasticsearch/reference/current/restart-upgrade.html 後方互換を崩す変更 (2.3) https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking-changes-2.3.html よく読んでおく。 elasti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く