$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

elasticsearch

知識ゼロからElasticsearchを実践で使えるようになろう!

以前少しだけElasticsearchを触った時に、自分流Elasticsearch入門 - $shibayu36->blog; というElasticsearchに入門した時のメモをまとめていた。しかし、その頃はElasticsearchを使って完全に一人で一つの機能を作るというところまではいけなかった。 最近…

Elasticsearchのインデックス定義を設計する手順

Elasticsearchを使おうとすると、まずアプリケーションの仕様にしたがってインデックス定義やマッピング定義を設計しなければならない。これはMySQLを使っていてスキーマを考えるフェーズに相当する。 この時、考えることが非常に多く、いろいろなドキュメン…

PerlでHarrietを使ってElasticsearchのテストをする & 並列でもテストできるように

Elasticsearchを使った開発をしていると、Elasticsearchを使った機能でも簡単にテストしたいという気持ちになってくる。またproveの-jオプションを使って並列に動かしていても変にコンフリクトせずにいい感じになってほしい。 この課題を解決するために、Har…

ElasticsearchのAnalyzerを理解するため全文検索の仕組みをシンプルに考える

Elasticsearchを使おうとしているとAnalyzerという概念が出てくるが、このAnalyzerという概念は最初理解することが難しかった。全文検索の仕組みを理解すれば分かるだろうと思い、https://speakerdeck.com/johtani/elasticsearchru-men?slide=5 やhttp://www…

今日のElasticsearch学び Vol.6 - pluginの種類

今日はElasticsearchのpluginの種類について学んだ。 Introduction to plugins | Elasticsearch Plugins and Integrations [2.3] | Elasticによるとpluginは以下の3種類に分けられるみたい。 Java plugins JAR filesのみを含むpluginで、全てのnodeにインス…

今日のElasticsearch学び Vol.5 - Avoiding Type Gotchas

今日はElasticsearch: The Definitive Guideを読んでいて怖いと思ったところについて書く。 学びがあったのはAvoiding Type Gotchasという部分。これによると、同一のindexを使っていて別のtypeで定義していたとしても、Luceneからはindex単位でフラットに定…

今日のElasticsearch学び Vol.4 - Analyze結果を確認する

Elasticsearchで自分でAnalyzerを定義した時、意図通りにAnalyzeできているか確かめたいことがある。この場合、elasticsearch-inquisitorを使う方法と、fielddata_fieldsを使う方法がある。 elasticsearch-inquisitorを使う方法 elasticsearch-inquisitorプ…

今日のElasticsearch学び Vol.3 - クエリ編

今日はクエリ周りについて学んだ。 Query contextとFilter context Query and filter context | Elasticsearch Reference [2.3] | Elastic ElasticSearchのクエリにはQuery contextとFilter contextというのがある。簡単にいえばQuery contextで解釈されたク…

今日のElasticsearch学び Vol.2 - Mappings編

今日はmappings周りについて学んだ。 _source fieldについて _source fieldには実際に投入したドキュメントのそのままの値が入っている。つまりCharFilterとかTokenizerとかそういうのが全くかかっていない状態のものが入っている。詳しくは_source fieldを…

今日のElasticsearch学び Vol.1 - Analyzer編

Elasticsearchをやっていると日々学びがありすぎる。しかし、それを毎回いい感じにまとめるのは大変すぎるので、とりあえずいろいろ整理がつくまで雑に今日の学びとしてまとめていきたい。 さて今日はanalyzer周りについて学んだ。 AnalyzerはTokenizer, Tok…

プロジェクト単位でElasticsearchのローカル開発環境を作成する

最近Elasticsearchを触っていて、まずはローカル開発環境を作ることになった。ただ、Elasticsearchはバージョンがかなり変わり、別プロジェクトと利用したいバージョンが異なっていたので、プロジェクト単位で使い分けるにはどうすればよいかを考えた。 やり…

自分流Elasticsearch入門

【2016/09/10追記】 勉強しなおして、Elasticsearchの知識についてさらにまとめた記事を書いたので、そちらを参照してもらうと良さそうです。blog.shibayu36.org 最近Elasticsearchの勉強をした。ただ、入門のためどのような資料が適しているかを知るのが大…

elasticsearchにwikipediaのデータをインデックスする

elasticsearchの機能を試すように何かしらデータを入れてみたかったので、wikipediaのデータをelasticsearchに適当にインデックスしてみた。 wikipediaのデータセット wikipediaのデータセットは Wikipedia:データベースダウンロード - Wikipedia 辺りからダ…

elasticsearchのmappingsの_idでpathを利用しようとしたらdeprecatedだった

elasticsearchでdocumentのindexを行う時に、そのdocumentを表す_idをsourceの中の指定したカラムから決めるというものがある。pathというもの。https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html#_pathmappingsを作…

第10回elasticsearch勉強会に行ってきました

elasticsearch.doorkeeper.jp最近elasticsearchを触ることがあるので勉強会に行ってきました。 今回のなかで個人的に一番面白かったのは@mats116さんの「AWSで実現するelasticsearchの大規模運用」という話。nodeをmaster/data/searcher/indexerという役割に…