MySQLのインデックスの代わりにElasticsearchを使おうと思い立っていろいろやってみた結果、Elastic社のホスティングけっこうオススメなんじゃないかってなった話です。これです: www.elastic.co 経緯としては、AWSにのっけたサービス、とりあえずMySQLとRedisだけでやってきた仕組みが、そろそろノーキャッシュ新規クエリ単発で1秒以上かかる場合が出てきたというのがあります。 アプリケーションで決まったパターンの問い合わせだけやってるぶんには、問い合わせのパターン数だけ複合インデックを作ればいいし、負荷分散したければリードレプリカが簡単、ということでほとんどの場合MySQLでいいのですが... MySQLは個別のインデックス勝手に組み合わせてくれない、全パターン定義しないといけない 管理者が使う検索機能のよっては、想定したインデックスにうまくヒットしない条件に
Google に代表される「キーワードサジェスト」機能を Elasticsearch を前提に日本語向けに設計。 よくある要件サイト内で過去に検索された有効なキーワードをサジェストしたい。入力されたテキストに関連性が高く、過去に検索された回数の多い順でサジェストしたい。最初に入力された言葉の後に空白を入力すると、最初の言葉と一緒に検索される複合語の候補サジェストしたい比較的シンプルな要件のように見えますが。。日本語を対象にしたサジェスト機能を実装する場合、入力途中の日本語のテキスト受けながら、ひらがな、カタカナ(半角・全角)、漢字、ローマ字(大文字・小文字・全角・半角)のコンビネーションを合わせて、関連性の高い言葉を素早くユーザーに提案しなければなりません。以外と難しいのです。。 Elasticsearch にも Completion Suggester と言うサジェスト向けの機能があるの
今回、第1回目の Elasticsearch 入門という事で、今回は「インデックスを設計する際に知っておくべき事」というテーマにしてみました。ここでのインデックスの設計とは RDB のデータベースとかテーブル、ビューの設計に当たるところです。 Elasticsearch は RDB など他のデータベスに比べ、その設計方法も結構独特です。(と言うか同じ事を実現するにしても色々な方法が用意されていて、さらにアプリケーション要件〜システムアーキテクチャ、運用面など広い範囲が関わってくる)RDB との比較も交え解説していきます。 Index で分けるか? Type で分けるか? 例えば、商品情報を保存するインデックスの設計を考えてみましょう。いわゆるRDBの設計で言うところのテーブル設計ですね。おそらくRDBではアプリケーション要件のみが、その設計の中心になるはずです。例えば、商品名や説明、価格情
初めてこのブログに投稿します、PlNOKlOです! 皆さんよろしくお願いします。 このエントリーは、Elasticsearch Advent Calendar 2015の15日目です。 さて、 今日紹介したいのは、elasticの新プロダクト「Beats」シリーズです。 社内で @cero_t さんが「みんなでBeatsのWebinarを見る夕食会」なるイベントを 突発的に企画したので、よく分からないながらも参加してきたのですが、、、 震えました モニタリングツールとしてかなりよくできている感じで、 @cero_t さんが騒ぐ理由も分かる気がしました。 特にPacketbeatは想像以上にヤバかったですね。 皆さん、こいつは注目です! ということで、そんなBeatsシリーズのうち、 TopbeatとPacketbeatの2つについて、私の震えポイントを紹介します! 1. Beatsとは?
DeNA社内でのElasticsearch勉強会にて、アプリ「ハッカドール」におけるElasitcsearch利用法について発表してきました。 スライドはこちら。 Elasticsearch for Hackadoll from mosa siru Elasitcsearchの中身や運用について濃く触れるというよりは、ちゃんとした検索エンジン作るための泥臭い話がメインになっています。 (ある意味で昨年Tokyo WebMiningにて発表した捗るリコメンドシステムの裏事情(ハッカドール)の派生スライドです。) ハッカドールは1周年を迎え、来月にはアニメ化もされます。ニュースアプリがアニメ化とか開発者としてもどうなるか予想がつきませんが、放映時には全裸待機しようと思います! hackadoll-anime.com
【2016/09/10追記】 勉強しなおして、Elasticsearchの知識についてさらにまとめた記事を書いたので、そちらを参照してもらうと良さそうです。 blog.shibayu36.org 最近Elasticsearchの勉強をした。ただ、入門のためどのような資料が適しているかを知るのが大変だった。そこでどのように勉強したかについてメモをしておく。少しまとめエントリー的なノリになりそう。 Elasticsearchの概念を知る 全文検索技術の基本を知る Elasticsearchのドキュメントのたどり方を知る の順に学習を進めていった。 Elasticsearchの概念を知る Elasticsearchの学習を始めようとした時に、まずは基本からということで以下の本を読んでいた。 高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍) 作者:Rafal
その1、その2で説明してきた内容をふまえ、日本語全文検索向けのアナライザーを考えてみました。 日本語全文検索のためのアナライザー次の設定サンプルは、基本的な日本語検索の為の ja アナライザーと、ja アナライザーにプラスして同義語検索を実現する為の ja_synonym アナライザー、Nグラム検索用の ja_ngram アナライザーを定義しています。 実際に使用する際には、これらの3つのアナライザーをフィールド毎に使い分けて使用することで、いろいろなシーンで活用できるはずです。 # 設定サンプル # edit: $ES_HOME/config/elasticsearch.yml index: analysis: filter: synonym: type: synonym synonyms_path: analysis/synonym.txt stopword: type: stop s
技術推進室の浅井です。Elasticsearchで日本語全文検索をちゃんとやるための説明、日本語でちゃんと書かれているものが無くて少々困ったので、ちゃんと書いてみます。 Elasticsearchのインストール※ 2013/12/17 13:30 インストールするJDKのバージョンを7u45から7u25に変更 ※ 2013/12/17 12:50 JDKのバージョンについての説明を追記 @johtani さん指摘ありがとうございます この記事内の説明でOracle JDK 7u45をインストールしていましたが、Apache Luceneが7u45を推奨していないため、7u25をインストールしたほうが良いようです。(後ほど記事内の説明も修正します 修正しました) http://lucene.472066.n3.nabble.com/What-is-recommended-version-of
Elasticsearch では、すでに日本語で全文検索する為のトークナイザーやノーマライズなどの加工処理で使用するフィルターなどがビルトインまたは、サードパーティ製のプラグインとして多数存在します。 ここでは、日本語全文検索で使用しそうなトークナイザーやフィルターなどを説明します。 主要モジュールNGram Tokenizer N-グラムを提供するトークナイザーです。Elasticsearch にバンドルされています。Japanese (kuromoji) Analysis for Elasticsearch 日本語形態素解析を提供するプラグインです。各種 Analyzer、Tokenizer、TokenFilterが含まれます。cjk_width Token Filter 半角・全角などを統一するためのフィルターです。Elasticsearch にバンドルされています。Lowercas
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く