ElasticSearch)ElasticSearchこの前こんな事やってました。nogawanogawa.hatenablog.com何を血迷ったか、使ったことのないElasticSearchを使ってしまって、使い方がよくわからなくなって一回挫折しました。言ってもElasticStackの使い方は覚えておいて損はないので、ElasticStackの勉強をしてみたのでその覚え書きです。参考にさせていただいたのはこちら。(ペーパーバック)この商品を含むブログを見る初めて技術書典の本を読みました。比較的新しめの技術とか尖った分野について日本語で勉強したいときなんかに意外と重宝しそうな感じです。その他、Webinarも見て勉強しました。www.elastic.coこちらも効率的に学習するにはいいと思いました。感想ElasticStackElastic社が提供しているデータ分析基盤群ですね。検索やデータ収集、可視化など一通りをやってくれる製品が揃っています。www.elastic.coその中に下記のような製品が揃っている形になります。ElasticSearchKibanaLogStashBeats基本無料です。大事なことなので二回言いました。ElasticSearchElasticSearchはJavaで作られている分散処理型検索エンジンです。その用途としては、リアルタイムデータ分析、ログ解析、全文検索などが上げられます。RESTFulなAPIを提供しており、データの編集、検索は基本的にjson形式でやりとりが行われます。用語RDBと対比して用語の説明を下記に示します。6.x系以降では1indexあたり1Typeしか使用できず、7.x系からはTypeの存在はなくなる予定です。同じindexには一つのテーブルしか用意できないので、複数分けたいときはindexを分ける必要があります。(スキーマ)ElasticSearch自体はスキーマレス、つまりテーブル構造を定める必要は無いのですが、実際のところ管理の都合上、予めスキーマを決めるのが一般的だと思います。Mappingを定義することで、いわゆるスキーマを定義していくことになります。こんな感じのjsonを書いて定義していきます。}}こんな感じにField名とデータ型を指定していきます。入力時にサーバーとindexを指定します。@mapping.jsonこんな感じにmappingを定義します。ちなみにContent-Typeはちゃんと書かないとエラーになります。ドキュメントの追加/削除この本だとGoでやっているんですがいかんせんGoは専門外なので、今回はPythonでやります。基本的には、追加/削除したいデータをjsonで記述して、それをPUTで送信するだけです。ドキュメントの追加ドキュメントの追加はこんな感じです。index関数を使って投入していきます。1}ドキュメントの削除ドキュメントの削除はこんな感じですね。delete関数を使って削除していきます。引数のidは先程indexしたときの戻り値を指定しています。1}検索ElasticSearchでの検索クエリには、いくつかの手法がサポートされており、その中から適切なものを選択することになります。AND/ORなどを駆使して検索Analyzer検索というと簡単に聞こえるかもしれませんが、中では結構めんどくさいことをやっています。日本語は、形態素解析をして適切な単語に区切り、それらを使用して評価式を適用することで、scoreを算出することで、ユーザーが要求するドキュメントを探し出します。Analyzer内部での解析器には大きく3種類あり、これらを設定することで検索エンジンの挙動を調整していくことが可能です。wordなどの除去を行うAnalyzerの設定analizerの調整はこんな感じのjsonを書きます。上半分でElasticSearch自体の設定、下半分でMappingに対してどの解析を適用させるかを記述しています。後はさっきと同じように適用すれば、analyzerの調整が内部的に行われます。検索こんな感じですね。他にもいろいろ出来るみたいですが、基本はこの辺だけ使えれば問題ないでしょう。なんか便利そうなの見つけたら追記します。その他なにやらPDFとかMSOffice系もattachmentってのを使えば、そのまま突っ込んで、検索に引っかけられるみたいです。tombo2.hatenablog.com勉強になります。感想この本読む前はあんまり良くわかってなかったですが、ちょっとだけElasticSeatchの仕組みというかお作法がわかった気がします。(Swagger)によるAPI開発入門APIとしてサーバーサイドを開発する際、APIの定義書が必要にな...2019-05-19【メモ】ElasticsearchにPDFを投入するElasticsearchには基本的にテキストデータしか投入しないつもり...2019-05-12【読んでみた】Elasticsearch実践ガイド最近少しずつElasticStackの勉強をしています。nogawanogawa.h...2019-05-01ElasticSearchとFlaskを連結させる結構前にElasticSearchをちょっとだけ勉強していました。(1)ほしい物リスト買ってあげると中の人が喜びますはてなブログをはじめよう!nogawanogawaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。