タグ

elasticsearchに関するnaga_sawaのブックマーク (27)

  • Elasticsearch の位置検索(Geolocation)を学ぶ | DevelopersIO

    ども、藤です。 最近、Elasticsearch を使うプロダクト開発に格参画し、Elasticsearch を改めて勉強しています。機能レベルで理解していても、要求を実現するためにインデックス構造、クエリを設計・実装するのは難しいですが、それ以上に面白い!今回は位置検索について調べたことをまとめました。 概要 GPS 対応デバイスの普及に伴い、位置情報による検索は多くのシステムに必要となってきました。例えば、お腹すいた時に現在地から近い事処を検索します。ただ位置情報で検索できればいいわけではなく、定屋、焼肉屋、カレー屋などカテゴリで絞りたいですし、今現在オープンしているお店だけに絞りたいですし、近さとともに事処の評価・スコアを踏まえてソートして欲しいです。ユーザーはワガママです。 著名な RDB でも位置情報の検索にも対応しています。例えば、MySQL では、geometry型

    Elasticsearch の位置検索(Geolocation)を学ぶ | DevelopersIO
    naga_sawa
    naga_sawa 2017/10/30
    位置情報検索
  • 雪うさぎの夢: Proxyサーバーを経由する環境での、elasticsearch、fluentd 導入

    naga_sawa
    naga_sawa 2016/05/17
    Proxy経由でのelasticsearch, fluentd のインストール方法
  • Elasticsearch の Percolator を使った地理属性判別システムの構築 - クックパッド開発者ブログ

    こんにちは、ホリデー株式会社の内藤です。Holiday ( https://haveagood.holiday/ ) というサービスの開発を行っています。 先日開催した Cookpad TechConf 2016 では、『おでかけスポット検索のむずかしさ - Holiday を支える検索技術』という題で発表を行いました。 おでかけスポット検索のむずかしさ - Holidayを支える検索技術 from Yusuke Naito www.slideshare.net この発表では、 おでかけスポットの検索では、全文検索だけでは満足のいく結果は得られない 地理空間検索に拡張することでよりよい検索体験を作ることが可能 これを実現するための Elasticsearch の機能を紹介 というような内容を紹介しました。 例えば、我々が「中目黒」を思い浮かべた時にイメージするエリア内の住所には、「中目黒」

    Elasticsearch の Percolator を使った地理属性判別システムの構築 - クックパッド開発者ブログ
    naga_sawa
    naga_sawa 2016/04/12
    エリアマッチ検索
  • 第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO

    今回、第1回目の Elasticsearch 入門という事で、今回は「インデックスを設計する際に知っておくべき事」というテーマにしてみました。ここでのインデックスの設計とは RDB のデータベースとかテーブル、ビューの設計に当たるところです。 Elasticsearch は RDB など他のデータベスに比べ、その設計方法も結構独特です。(と言うか同じ事を実現するにしても色々な方法が用意されていて、さらにアプリケーション要件〜システムアーキテクチャ、運用面など広い範囲が関わってくる)RDB との比較も交え解説していきます。 Index で分けるか? Type で分けるか? 例えば、商品情報を保存するインデックスの設計を考えてみましょう。いわゆるRDBの設計で言うところのテーブル設計ですね。おそらくRDBではアプリケーション要件のみが、その設計の中心になるはずです。例えば、商品名や説明、価格情

    第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO
    naga_sawa
    naga_sawa 2016/04/12
    インデックス設計の際に考えるべきこと
  • Elasticsearchとkuromojiでちゃんとした日本語全文検索をやるメモ | GMOメディア エンジニアブログ

    技術推進室の浅井です。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

    naga_sawa
    naga_sawa 2016/04/12
    analyzerとtokenizerにkuromojiを使ってちゃんとした日本語全文検索
  • Elasticsearchで AND OR LIKE 検索したい

    Elasticsearchでクエリ書くときにちょっとわかりづらかったので、メモ 例えば、SQLだとこういう検索をしたい SELECT * FROM table WHERE (body = 'わーい' OR body = 'ろくでなし' ) AND create_at >= '2014-03-01' AND create_at <= '2014-04-01'; これをelasticsearchのqueryだとこう { "query": { "bool": { "should": [ { "bool": { "must": [ { "term": { "body": "わーい" } }, { "range": { "create_at": { "from": "2014-03-01", "to": "2014-04-01" } } } ] } }, { "bool": { "must": [

    naga_sawa
    naga_sawa 2016/04/12
    and -> mustブロック, or -> shouldブロック, like はワイルドカード検索
  • Elasticsearch インデックスの設定、マッピングの定義、概念・用語あたりのメモ - Keep it simple

    2015 - 06 - 30 Elasticsearch インデックスの設定、マッピングの定義、概念・用語あたりのメモ Elasticsearch インデックスの設定とか マッピング の定義とかにあたって概念・用語あたりについて少しまとめてみる。細かいのでちゃんとつくるときは詳細をドキュメントで確認。 インデックス データを保存する場所。 ドキュメントタイプ ひとつのインデックスに 複数 のタイプを定義できる。異なる構造や意味を持つドキュメントを同じインデックスに持つ場合とかに便利な識別子となる。 ドキュメント 行。 フィールド 列。 基データ型 この基データ型を、各フィールドに指定できる。 String (文字列型) Number (数値型) Date (日付型) Boolean ( ブーリアン 型) Binary (バイナリ型) データ型によって各フィールドに指定可能な属性 この属

    Elasticsearch インデックスの設定、マッピングの定義、概念・用語あたりのメモ - Keep it simple
    naga_sawa
    naga_sawa 2016/04/12
    Elasticsrarch 用語とか概念とかまとめ
  • Elasticsearch のインデックスを無停止で再構築する - クックパッド開発者ブログ

    こんにちは。ホリデー株式会社の内藤です。 ホリデー株式会社では Holiday(https://haveagood.holiday) という新規サービスの開発・運営を行っています。*1 以前投稿した記事でご紹介したように、Holiday では全文検索エンジンとして Elasticsearch を利用しています。 Ruby on Rails で構築されたアプリケーションから Elasticsearch を操作するには、公式 gem である elasticsearch-rails を使うのがとても便利です。 もちろん、Holiday でも活用させてもらっています。 大方の機能についてはこの gem で提供されるもので満足だったのですが、一点だけ、Holiday の運用をしている中で困ることがありました。 それが、サービス公開後のインデックスの再構築です。 elasticsearch-rails

    Elasticsearch のインデックスを無停止で再構築する - クックパッド開発者ブログ
    naga_sawa
    naga_sawa 2016/04/12
    alias を使ったインデックスの切り換え/常時更新が走ってるような環境だと import -> update_aliases の間のwrite分が欠落しそうだけど安全に切り換えできるんだろうか?
  • データ構造について – AWSで始めるElasticSearch(4) | DevelopersIO

    はじめに @smokeymonkeyです。ここまで「とにかくElasticSearchをAWS上で動かす」ことを中心に調べてきました。ここで一度ElasticSearch自体の構造について整理したいと思います。 ElasticSearchの構造 ElasticSearchは大きく以下のようなデータ構造になっています。 index ... その名の通り索引です。このindexに検索対称のドキュメントを格納します。Indexは複数もつことが出来ます。 type ... 格納するドキュメントを種類によって分別することが出来ます。同じfieldリストを持つdocmentの集合体であり、データベースで言えばテーブルに相似します。 document ... 格納されたドキュメントです。また個々のドキュメントの識別子をidと呼びます。ドキュメントは1つ以上の項目(field)を持ち、データベースで言えば

    データ構造について – AWSで始めるElasticSearch(4) | DevelopersIO
    naga_sawa
    naga_sawa 2016/04/12
    Elasticsrarchのデータ構造
  • Elasticsearch マッピング

    Elasticsearch におけるマッピングとは、リレーショナルDBでいうところのテーブル定義に相当します。しかし、単にデータを格納する為のフィールドを用意して型を設定するだけではありません。Elasticsearch では、フィールドの型の他に言語解析処理などのドキュメントを検索可能にする為の各種設定が可能です。 スキーマーレスが一つの特徴の Elasticsearch では、ドキュメントをインデックスすると自動的に各フィールド毎にフィールドタイプなどのマッピングが自動で設定されインデックスが作成されます。また、事前にマッピングを設定可能な仕組みとなっています。 自動マッピングまずは以下の内容で、インデックスを作成し自動マッピングについて見て行きます。 ブログ記事毎に1つのドキュメントをインデックス各ドキュメントはドキュメントタイプ story にインデックスドキュメントタイプ sto

    Elasticsearch マッピング
    naga_sawa
    naga_sawa 2016/04/12
    マッピング
  • csvを読んでelasticsearchのバルクインサート用のjsonに整形する - Qiita

    elasticsearchにバルクインサートする時、 データのjson1行につきコマンドのjsonを1行追加しないとならないので。 see also: http://blog.johtani.info/blog/2014/04/24/usage-stream2es/ stream2es だと一気に登録までしてしまうので、 変換の時点で一度確認したかったので書いてみた。 中身は 1行目にヘッダ。 それ以降がデータ。 エスケープなどはRFC4180 っぽい感じ。 "item_id","title","description","price","url","image_url" "11111","たいとる","でぃすくりぷしょん","1000","http://example.com/item/11111","http://example.com/11111.jpg" "22222","たいとる

    csvを読んでelasticsearchのバルクインサート用のjsonに整形する - Qiita
    naga_sawa
    naga_sawa 2016/04/12
    csv -> バルクインサート用JSON
  • ElasticSearchのインデクシングを高速化する - サナギわさわさ.json

    諸事情でElasticSearchの事ばっかり書いてますが、Solrの方が好きです。 ElasticSearchのインデクシングを高速化するためにやった事を残しておきます。 基的には↓に書いてあることばかりです。 Performance Considerations for Elasticsearch Indexing | Elastic データ投入方法 データの投入にはBulk APIを使います。 なお、公式では1つのbulk Importのサイズは5~15MBにすることを推奨しています。 curl -XPOST http://localhost:9200/_bulk --data-binary @databatch.json >/dev/null メモリ関係 ES_HEAP_SIZEに実メモリの半分程度を割り当て、mlockall:trueでElasticSearchのメモリがスワッ

    ElasticSearchのインデクシングを高速化する - サナギわさわさ.json
    naga_sawa
    naga_sawa 2016/04/12
    バルクインサートの高速化設定
  • Elasticsearch で位置情報を検索する手順 - Qiita

    Elasticsearch は、オープンソースの全文検索エンジンです。Apache Solr と並んでよく取り上げられるようになってきました。 位置情報の検索機能も標準搭載しているとのことで、試しに使ってみました。 Elasticsearch の導入 下の情報が大変参考になりました。(環境は Mac。事前に Java と homebrew の導入が必要です) elasticsearch - ElasitcSearch ことはじめ - Qiita [キータ] 試しに使ってみる 下のサイトが大変参考なりました。 Elasticsearch を試してみる - ようへいの日々精進 位置情報を検索してみる 下のようなスキーマのデータを登録して検索する想定です。

    Elasticsearch で位置情報を検索する手順 - Qiita
    naga_sawa
    naga_sawa 2016/04/12
    geo_point型の使い方
  • ElasticsearchをUbuntu 14.04にインストールする - Qiita

    Elasticsearch をインストールする 参考:Repositories インストール方法は、上記の公式ドキュメントに丁寧に書かれているが、ここでは主要な手順だけを抜き出してみます。 リポジトリを登録する $ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - $ echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

    ElasticsearchをUbuntu 14.04にインストールする - Qiita
    naga_sawa
    naga_sawa 2016/04/12
    Elasticsearch Ubuntu 14 へのインストール手順
  • http://blog.yoslab.com/entry/2014/04/24/000317

    http://blog.yoslab.com/entry/2014/04/24/000317
    naga_sawa
    naga_sawa 2016/01/27
    格納する日時フォーマットとクエリに書く日時フォーマットが独立してりゃより便利なんだけどな/2.1.1の現状で格納フォーマットでクエリ書かないとエラーになる
  • Adding mapping to a type from Java - how do I do it?

    naga_sawa
    naga_sawa 2016/01/27
    Java コード内から index に mapping を設定する方法
  • ElasticsearchにMySQLからデータ挿入、JDBC River Pluginのインストールと使い方

    — 環境 — Mac OS X Lion 10.7.5 JDBC driver for MySQL のダウンロード JDBC River Plugin の動作には、Java から MySQL への接続するための JDBC driver が必要なので、あらかじめ利用するDBベンダーの JDBC driver をダウンロードしておきます。私は、MySQL 利用なので以下のページからダウンロードしました。 MySQL :: Download Connector/J ダウンロードしたら解凍して、.jar ファイルを /usr/share/java/ に移動します。

    ElasticsearchにMySQLからデータ挿入、JDBC River Pluginのインストールと使い方
    naga_sawa
    naga_sawa 2016/01/11
    MySQL -> Elasticsearch へのデータインポート
  • CentOS6にElasticsearchをインストールしMySQLからデータをインポート

    EasyRamble は、技術ネタや子育て、英語学習、アウトドアなどについて綴るブログです。Ruby on RailsSwift などで、Webサービス/アプリを作っています。

    CentOS6にElasticsearchをインストールしMySQLからデータをインポート
    naga_sawa
    naga_sawa 2016/01/11
    MySQL -> Elasticsearch へのデータインポート
  • Elasticsearch API 一覧

    APIの一覧をまとめた資料が見当たらなかったので、APIでできることを把握できるようにAPIの一覧をまとめてみました。 NOTE: バージョン1.x の家リファレンスを参考にしています。 Elasticsearch の提供している各種APIは、以下の図のように検索やドキュメントの登録だけではなく、各種設定、モニタリング、メンテナンスの為のAPIまで幅広く提供されています。 Elasticsearch API Over Viewdocument apisドキュメントの追加・更新などのドキュメント操作の為のAPI 【document api】 PUT /{index}/{type}/{id} # ドキュメントの追加更新 POST /{index}/{type} # ドキュメントの追加更新(ID自動生成) GET /{index}/{type}/{id} # ドキュメントの取得 GET /{i

    Elasticsearch API 一覧
    naga_sawa
    naga_sawa 2016/01/11
    Elasticsrarch API 一覧
  • Elasticsearchチュートリアル - 不可視点

    目的 検索用サーバーとして最近注目されているElasticsearchですが、ついに1.0 RC1がリリースされたそうです。 Googleトレンドを見ても、この分野で先行するApache Solrに迫る勢いを感じます。 そういうわけで私もElasticsearchについて興味を持って調べてみましたが情報がちょっと少ないですね… 「調べたけど断片的な情報しかない」 「公式doc英語だし、専門用語が多すぎてわからん」 「え、できること多すぎ。よくわからん。どれが重要?」 と言った感じで、最初ちょっと大変… そこで調べ始める人が、概観をつかむためのチュートリアルをつくろうと思います。 コマンドを全部実行する必要ありません。用語をおさえることで調べものが捗ることがひとつのゴールです。 自分の理解の整理も兼ねています。間違ってる箇所あったら教えて下さい。 part 1:ESを使ってレストラン検索を作

    Elasticsearchチュートリアル - 不可視点
    naga_sawa
    naga_sawa 2016/01/11
    Elasticsearchの使い所と使い方/テストデータ流し込むのが難しい(時間と手間が)…/後半のクエリの出し方とかの考え方が参考になる