検索してみる!Elasticsearch面白い!Elasticsearchとは?Elasticsearchは、「検索サーバ」です。Luceneという、検索ライブラリを採用しています。Solrというものもあります。Solrを上回っていて、人気が高まっています。Luceneに任せていて、Elasticsearch自体は、Luceneを活用するためのサーバとしての役割を担っています。APIで使いやすく設計されている、というのが特徴です。Elasticsearchを起動してみるElasticsearchを起動して、ドキュメントの追加と検索を試してみます。ドキュメントというのは、Elasticsearchのデータのことで、RDBMSでいうとレコードに相当します。Dockerイメージがあるので、これを使って、立ち上げてみます。elasticsearch:6.8.1起動したら、ステータスを確認してみます。100.0%クラスタが「green」となってることが確認できました。APIで操作できるので、クライアントツールなどをインストールしなくても操作することができます。ドキュメントの登録さっそくデータを投入してみます。ドキュメントには、「/{インデックス名}/{タイプ名}/{ドキュメントID}」というパスが割り当てられています。インデックスとタイプは、RDBMSでいう、データベースとテーブルに該当します。そこにJSON形式のドキュメントをリクエストボディとして、PUTリクエストを送信します。1}無事に登録ができました!検索を試すために、他にも2件データを入れておきます。katty0324."}'ちなみに、ドキュメントIDを指定せずに、POSTリクエストをすれば、自動的にIDを割り当てて登録してくれます。検索してみる!これで3件のドキュメントが追加された状態になります。katty0324.ここで、titleにhelloを含むドキュメントを検索してみます。}}「hello」を含むドキュメントだけが取り出せました!Elasticsearch面白い!以上、めちゃくちゃ簡単な例でした。Elasticsearchはドキュメント指向DBの側面もあるので、構造をもったデータを管理して、検索することができます。クエリは、JSON形式で複雑な条件を表現することができます。RDBMSで検索機能を組み立てようと思うと、パフォーマンスの課題が出てくることが多いと思います。Elasticsearchでは、転置インデックスによる検索に最適化されたデータ構造に加えて、シャーディングによる性能向上ができるので、パフォーマンス要件を満たすのも比較的簡単なのではと思います。コピーkatty0324三度の飯とエレクトロン優秀な同僚と一緒にすばらしい仕事ができることが最大のインセンティブオフィスでの仕事をロボットに任せるRPA関連記事LaravelLaravel入門中。コントローラとビューを使ってみる。Laravelに入門してます。「最近キテいるっぽいPHPフレームワークLaravelのインストール&起動!」では、とりあえずLaravelでアプリケーションの起動ができました。「関数型プログラミング」という言葉が、良く聞かれるようになってきました。「安全なプログラムが書ける」とか、「簡潔な表現ができる」とか、噂レベルでは聞きつつ、学術的な香りが強いのかなと思っていたので、手を出していませんでした。超概要!導入からiOS/Android向けビルドまで。最近ぐいぐいきているCocos2d-xについて調べました。Cocos2d-xは、マルチプラットフォームの2Dゲームフレームワークです。営業は、契約率を追うのではなく、紹介数を追う。昨日と今日で読んだ本。シロクは今期からB2Bビジネスに転換しました。それに伴って、初めて営業社員にも参加してもらいました。僕が営業をすることは当面なさそうですが、営業で成果を出すために何が大事なのかを、少しでも理解できたら...ホームWEB開発ミドルウェアElasticsearchkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。日記その他ホーム検索トップサイドバーkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。Handlebars.js2タイトルとURLをコピーしました。