タグ

Elasticsearchに関するclavierのブックマーク (278)

  • クラシルにおけるElasticsearch v7へのアップグレードおよびElastic Cloudへの移行 - dely Tech Blog

    はじめに 移行が必要となった背景 Elastic Cloudへの移行およびv7へのバージョンアップ 旧構成について 構成図 なぜElastic Cloudか なぜ移行と同時にアップグレードを行ったか なぜ最新のv8ではなくv7か サーバサイドの修正内容 新構成について 構成図 Traffic Filter経由での接続 監視 Datadog Elastic Status ログ deprecation slowlog audit 権限管理 S3バックアップ Kibana Spaceのロゴ調整 辞書・同義語の運用 補足(unassigned shardの調査) 移行後に起きた問題 CPUクレジット枯渇 原因 対応 今後の展望 さいごに はじめに クラシルSREのkashと申します。 クラシルでは検索エンジンとしてElasticsearchを様々な用途で使用しています。 Elasticsearch

    クラシルにおけるElasticsearch v7へのアップグレードおよびElastic Cloudへの移行 - dely Tech Blog
  • Elasticsearchのパフォーマンス問題をプロファイラを使って解決する | メルカリエンジニアリング

    search infra teamのmrkm4ntrです。我々のチームではElasticsearchをKubernetes上で多数運用しています。歴史的経緯によりElasticsearchのクラスタは全てElasticsearchクラスタ専用のnode pool上で動作していました。ElasticsearchのPodは使用するリソースが大きいため、このnode poolのbin packingが難しくコストを最適化できないという問題がありました。そこで全てのElasticsearchクラスタを専用のnode poolから他のワークロードと共存可能なnode poolへ移行しました。ほとんどのクラスタが問題なく移行できたのですが、唯一移行後にlatencyのスパイクが多発してしまうものがありました。 この記事では、その原因を調査する方法と発見した解消方法について説明します。 発生した現象 共

    Elasticsearchのパフォーマンス問題をプロファイラを使って解決する | メルカリエンジニアリング
  • Elasticsearchを使ってリストAPIを100倍高速化した話

    はじめに こんにちは!私がつとめている CastingONE という会社の SaaS には、テーブル形式のデータ一覧ページがあります。この一覧ページですが、最近データ数が増えれば増えるほど、じわじわとパフォーマンスが悪くなっていってました…。そこで今回は、そのリストデータ取得におけるパフォーマンス改善を行なった時の、パフォーマンス計測方法や検討内容、最終的な結果をまとめてみました。 対象読者 バックエンドのパフォーマンス改善の方法や改善の流れに興味がある方 ちなみに私がこの改善を行なった時のスペックですが、パフォーマンス改善については初心者寄りでした。「パフォーマンス改善って何それ美味しいの?」というレベル感だった当初、「達人が教える Web パフォーマンスチューニング 〜ISUCON から学ぶ高速化の実践」というには基礎を知るところから大変お世話になったので、ご興味のある方はぜひ読んで

    Elasticsearchを使ってリストAPIを100倍高速化した話
  • Elasticsearch運用ノウハウ | メルカリエンジニアリング

    こんにちは、メルカリMicroservices SREチームの藤(@jimo1001)です。 私は現在、Embedded SRE として サーチインフラチームに入り活動しています。このサーチインフラチームは、Elasticsearchを使用した検索基盤を管理し、様々なマイクロサービスに検索機能を提供するチームです。この検索基盤は非常に巨大なプラットフォームで、メルカリ全体のマシンリソースの高い割合を占めており、メルカリの検索を支える非常に重要なものです。私の Embedded SRE としてのミッションは検索基盤の信頼性の向上と自動化を推進することです。 今回は、メルカリの検索基盤で利用している Elasticsearch における運用のノウハウを紹介したいと思います。 Elasticsearch とは Elasticsearch は、Elastic社が開発する Apache Lucen

    Elasticsearch運用ノウハウ | メルカリエンジニアリング
  • 検索の応答性能を維持するための Benchmarking Automation | メルカリエンジニアリング

    ※この記事は、"Blog Series of Introduction of Developer Productivity Engineering at Mercari" の一環で書かれています。 はじめに こんにちは、メルカリMicroservices SREチームの藤(@jimo1001)です。 私は Embedded SRE としてメルカリJPの検索に関連するマイクロサービスを提供している サーチインフラチームに入り、サービスの信頼性向上やインフラ周りの自動化に従事しています。今回は、メルカリの商品検索の応答性能を維持するための Benchmarking Automation の取り組みについて紹介したいと思います。 検索基盤のアーキテクチャ まず、検索基盤のアーキテクチャについて簡単に説明します。主要なコンポーネントに絞ってシンプルに表現したものが以下の図になります。 各コンポー

    検索の応答性能を維持するための Benchmarking Automation | メルカリエンジニアリング
  • メルカリの検索基盤の変遷について | メルカリエンジニアリング

    ※この記事は、"Blog Series of Introduction of Developer Productivity Engineering at Mercariの一環で書かれています。 はじめに こんにちは、メルカリ、サーチインフラチームのshinpeiです。今回はメルカリの検索基盤の裏側について、そのアーキテクチャ変遷について書こうと思います。2018~2021年の4年間で、大きく3回、変化をしました。設計の段階では希望と期待にあふれているアーキテクチャでも、問題は後からやってきます。設計には良し悪しがあり、変化することで知見を得ながら、改善を続けています。え、これだと危ないのでは?、、あぁ、やはりそうなるのね。などと、ご笑覧いただければ幸いです。 前回までのお話 メルカリの検索は、創業時から、Solrをベースにしたシステムで組まれてました。その変遷はこちらのスライドにまとめてあ

    メルカリの検索基盤の変遷について | メルカリエンジニアリング
  • 検索結果の品質向上 / Improvement of The Quality of Search Results

    2021年度リクルート エンジニアコース新人研修の講義資料です

    検索結果の品質向上 / Improvement of The Quality of Search Results
  • Elasticsearchで日本語を同義語展開する

    全文検索における同義語展開の必要性 全文検索では、基的に文字列のマッチにより検索を行います。しかし我々が言葉を扱うときには、同じものを違う表現で指し示すことが多々あります。 例えば「独占禁止法」と呼ばれる法律があります。これは経済憲法とも言われる大変重要な法律なのですが、日では「昭和二十二年法律第五十四号(私的独占の禁止及び公正取引の確保に関する法律)」という法律がそれに該当し、独占禁止法という名前にはなっていません。これを皆、「独占禁止法」や「独禁法」といった代替可能な別表現(同義語)で呼んでいるわけです。 同法律には法令用語で言うところの「題名」は付されておらず、頭書の名称は制定時の公布文から引用したいわゆる「件名」である。独占禁止法ないし独禁法と略称されることも多い。 もし「独禁法」で検索して当該法律がヒットしなければ、ユーザーとしては不満足でしょう。検索システムのクオリティを向

    Elasticsearchで日本語を同義語展開する
  • ZOZOTOWNの検索基盤におけるElasticsearch移行で得た知見 - ZOZO TECH BLOG

    こんにちは。ZOZOテクノロジーズZOZOTOWN部 検索チーム 兼 ECプラットフォーム部 検索基盤チームの有村です。 ZOZOTOWNでは、以前からキーワード検索時にはRDBと併用してElasticsearchを使用していました。記事ではこれまでRDBで行っていたIDによる索引検索も含め、すべての検索をElasticsearchへ置き換えた事例と、その際に行った設定内容の一部をご紹介します。 背景 弊社CTOによるこちらの記事にもある通り、ZOZOTOWNでは現在マイクロサービス化を進めており検索システムについてもその対象となっています。検索の文脈では、全文検索/サジェスト/ロギング等関連する様々な課題への解決策として有効であるElasticsearchを採用しマイクロサービス化を進めています。 また、もう1つの背景として検索のパーソナライズ化があります。これまでZOZOTOWNでは

    ZOZOTOWNの検索基盤におけるElasticsearch移行で得た知見 - ZOZO TECH BLOG
  • Sudachi同義語辞書をElasticsearchで使う(暫定方法)

    TL;DR Sudachi同義語辞書を「Solr Synonyms形式」に変換して使う あくまで暫定的な使い方: 来は形態素解析結果を元に厳密に展開されるべき ちゃんとしたフィルタープラグインは、徳島のSudachi公式がもうすぐ公開してくれるはず Sudachi同義語辞書とは ワークス徳島NLPが開発する、専門家の手による大規模で高品質な辞書 Apache2.0ライセンス、商用利用可 詳細は公式ドキュメントを参照のこと 同義語が単に羅列されているわけではなく、詳細化した同義関係が付与されています。 そして、この言語資源は定期的に専門家によりメンテナンス、更新されています。例えば、以下のような語も2020年7月のアップデートなどで追加されています; ... 023538,1,0,1,0,0,0,(医療),新型コロナウイルス感染症,, 023538,1,0,1,2,0,0,(医療),COV

    Sudachi同義語辞書をElasticsearchで使う(暫定方法)
  • niconicoの検索システム(2019年版)

    2019年のniconicoの検索システムの説明です。

    niconicoの検索システム(2019年版)
  • GitHub - twintproject/twint: An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - twintproject/twint: An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.
  • Elasticsearchで日本語検索を扱うためのマッピング定義 - ZOZO TECH BLOG

    こんにちは、検索基盤部 検索基盤ブロックの渡です。私は検索基盤ブロックで、主にZOZOTOWNの検索周りのシステム開発に従事しています。 以前の記事では、Elasticsearchのマッピング設定の最適化について取り上げました。そして、今回は日語による形態素解析を実現するまでの手順をご紹介します。 techblog.zozo.com 目次 目次 はじめに Elasticsearchで全文検索を実現させる手順 全文検索のためのマッピング定義 Analyzerの構造 日語対応のAnalyzer 日語対応のためのプラグイン追加 kuromoji Analyzerを指定したマッピング定義の例 kuromojiプラグイン機能 カスタムしたAnalyzerのマッピング定義 Analyzerの動作確認 modeを選択した場合のマッピング定義の例 Analyzer適用の注意点 kuromoji以外の

    Elasticsearchで日本語検索を扱うためのマッピング定義 - ZOZO TECH BLOG
  • ElasticSearchで、documentをupsertする | ITに頼って生きていく

    Advertisements TL; DR indexとdocument idの組み合わせてデータを管理し、不要なデータはindex単位で削除していく 公式で使用されている通り、時系列データを1日単位でindexを作る 古い不要なindexを1日単位で削除できるようにする index単位の処理は高速 document idもElasticSearchに任せ、こちらで指定しないほうが性能的に良い なので、つまり document idをユーザ側で指定することは非推奨 どこかに書いてあったはずですが失念しました。。。 その指定したdocument idのdocumentをupdateすることは非推奨 当然、upsertも非推奨 でも、必要に迫らせてやらざるを得ない場合もあります。 これをどうやるか?というお話です。 確認環境 docker-composeで環境を準備します。 kibanaのDe

    ElasticSearchで、documentをupsertする | ITに頼って生きていく
  • メタデータ管理OSS個人的まとめ - うさだのブログ

    いろいろ触ったのでまとめる。(今後追記予定あり) TL;DR データガバナンスツールのOSSにおいて、世間的にデファクトスタンダード的なものも、個人的にこれは!というものも見た限りなかった。 テクニカルメタデータの収集はだいたいどこも同じな一方、ビジネスメタデータ、リネージへの取り組みには顕著な差がある。 お金があるなら有償製品を導入したほうがいいかもしれない。 1 データガバナンスツールは、JIRAみたいなビジネスツールとして捉えるべきという所感。 変更履歴 2020-05-18 Egeriaを追加 前提と関心のある領域 ベンチャーではなく様々な領域の事業を扱う大きめの企業。 マルチクラウド、マルチベンダー、マルチプラットフォーム。データストアは数百以上。 ETL基盤、データ分析基盤はすでに存在し、内製のメタデータ管理ツールもある。 データ利活用よりもガバナンスを強化したい。 調べたOS

    メタデータ管理OSS個人的まとめ - うさだのブログ
  • Elasticsearchのmatchとmatch_phraseの違い - grep Tips *

    Elasticsearchで全文検索する際にmatchとmatch_phraseの違いがはっきり身についていないのでまとめてみる。 version: Elasticsearch 7.5 matchクエリ matchクエリを使うといわゆる曖昧検索ができる。matchクエリに渡した文字列はanalyzeされてから検索に使用される。 例えばtitleというフィールドに「2021年春に発売される新着の特集!!NEW!!」という文字を保存していたとして、「2021春」で検索できるかどうかを考えてみる。 GET sample-index/_search { "query": { "match": { "title": "2021春" } } } 解析されたクエリはORで検索される indexをkuromojiで形態素解析されるように設定したので、「2021春」は「2021」と「春」に形態素解析される

    Elasticsearchのmatchとmatch_phraseの違い - grep Tips *
  • 新規サービスの検索システム立ち上げ時に考慮すること - Qiita

    例外はたくさんあるのでこちらの表はあくまでも参考です。 バッチ更新の場合はcrontabやAirflow、Rundeckなどのワークフローエンジンが使えます。 一方、リアルタイム更新ではAWS KinesisやGCP pub/sub等を活用したり、Apache Beamなどを用いたりしてデータパイプラインを構築することがあります。 アイテムの特性と検索時のクエリ 検索対象となるアイテムの特性と検索する際にどのようなクエリが想定されるかを考えます。 全文検索エンジンを使っているので、基的にはテキストにより表現されているとは思いますが、どのようなフィールドが存在するか、テキスト以外の検索項目などを洗い出します。 クエリに関しても基は「キーワード」ですが、整理したアイテム情報に対してどのようなクエリで問い合わせが可能かを考えます。 システムとして「誰」が検索結果を取得するか、検索結果をどの程

    新規サービスの検索システム立ち上げ時に考慮すること - Qiita
  • Elastic Cloud を使うようになって変わったこと

    寒くなってきましたね。趣味のキャンプも11月で今年はおしまいです。上の写真は今年最後のキャンプで撮った1枚。焚き火をしながら凍えそうでした。 Elasticsearch Advent Calendar 2019 2日目、最近まったく情報発信できていなかったのでリハビリもかねて。久しぶりに Elasticsearch 関連の記事がんばって書きます! Elasticsearch を使い始めたのは、かれこれ5、6年前(Hello! Elasticsearch ブログを公開したのが、2014年なので、多分その1、2年前)。その前は、今は無き FAST ESP (Fast Datasearch) と言う商用のサーチエンジンを使ってシステムを設計、構築していました。 Elasticsearch に出会って衝撃を受けたのは、そのシステム構築のし易さと、柔軟なスキーマ・インデックス設計。それまでの検索エン

    Elastic Cloud を使うようになって変わったこと
  • Cybozuにおける大規模インフラ基盤の移行プロジェクトManekiの紹介

    Vault Secrets Operator と Dynamic Secrets で安全にシークレットを使おう / Vault Secrets Operator and Dynamic Secrets

    Cybozuにおける大規模インフラ基盤の移行プロジェクトManekiの紹介
  • 全文検索で文書の新しさを考慮したスコアリング - Taste of Tech Topics

    皆さんこんにちは。@Ssk1029Takashiです。 この記事はElastic Stack (Elasticsearch) Advent Calendar 2019の13日目になります。 qiita.com 何か調べ物をしているとき、見つけた記事が古く使えないということが良くあります。 例えばElasticsearchのクエリを調べていたら、ver5時代の記事ですでに仕様が変わっていたりなど。。。 検索結果としては基的には時系列が新しいものを優先して出してほしいことが多いです。 このように、検索システムでは基的には新しい記事、なおかつ検索キーワードと関連度が高い記事を優先して出してほしいということがあります。 この時、単純に時系列でソートすると関連度を考慮できないため、検索スコアにいい感じに時系列情報を組み込む必要があります。 Elasticsearchでは、この問題をscript

    全文検索で文書の新しさを考慮したスコアリング - Taste of Tech Topics