エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

Luceneのセグメントファイルを解剖してみた

AI・機械学習チームの丸尾 @snowhorkです。

業務では主に検索基盤の開発を担当しており、検索チームではElasticsearch・Luceneのコードリーディング勉強会が毎週行われています。

この勉強会は、実際の業務にも直接役立つことが多々ある素晴らしい勉強会となっています。過去には、クエリの挙動が想定と違うというバグ報告があがったのですが、その時はKuromoji AnalyzerとPhrase Queryの組み合わせの問題で挙動が意図しないものであったと内部実装レベルで理解できました。

今回は、私が読んだLuceneのインデックスのファイル構造の一部を読み解いたので、まとめを紹介したいと思います。

続きを読む

マークダウンパーサを作ろう

デジカル開発メンバーの末永(@asmsuechan)です。電子カルテの開発を通して医師や医療事務の方の「書く」をサポートしています。

みなさん、マークダウンでテキストを書いていますか?私はマークダウンで書くことが好きで、プレーンテキストでもほとんどのメモをマークダウン記法で書いてしまいます。この記事もはてなのマークダウンを使って書いています。*1

マークダウンを使えるサービスを挙げていくとGitHubやStackOverflowなど開発者ならば誰しも知るサービスが多く出てきます。このことからもわかるように、マークダウンはもはや開発者とは縁の切れないものとなっています。

しかし、普段の開発時によく使うマークダウンですが、実際にはどのような仕組みで動いているのかを知る人は少ないのではないかと思います。

この記事ではオリジナルのマークダウンパーサ「minute」をTypeScriptを使ってハンズオン形式で作っていくことでマークダウンの内部実装への理解を深めます。

※マークダウンパーサの開発は筆者の趣味でありデジカルの業務とはなんの関係もありません。

*1:ちなみに筆者は以前Boostnoteというマークダウンメモアプリのコミッターとして活動していました。

続きを読む

検索基盤チームのElasticsearch×Sudachi移行戦略と実践

f:id:abctail30:20210807174702p:plain

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。最近、AI・機械学習チーム配下の検索基盤チームでElasticsearchのAnalyzerをKuromojiからSudachiに移行しました。今回はSudachi移行の背景と、Sudachiの概要、実際に移行するにあたってのプロセスや注意事項をお話しします。

続きを読む

エムスリーアンケートチームのLT会 #1 を開催しました!

f:id:juntaki1:20210804155709p:plain

エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っているチームです。

先日、チームメンバーの有志でそれぞれが最近使っている技術にフォーカスしたLT会を実施しました。 発表はYouTubeにアップロードしたので、このレポートとあわせてぜひご視聴ください。発表順に紹介していきます。

続きを読む

Luceneのメモリ上でのインデックス構造とその仕組み

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。

弊社では毎週水曜日にElasticsearchとLuceneのコードリーディング会が開催されています。最近ではLuceneのFSTKD-Tree、もうすぐ公開されるNSWの実装周りを読んでいました。

先日、私の発表回でLuceneのメモリ上での転置インデックスのデータ構造について発表したので、その内容を紹介します。Luceneのことが少しでも身近に感じていただければ幸いです。

続きを読む

環境差分をなくして快適なオンボーディングを目指す

こんにちは、エムスリーエンジニアリングGの榎田です。趣味は数学とゲームです。4連休で初代 FF13 のストーリーが終わったので、微積分の勉強ノートを書く傍らロングイを狩るかどうか悩んでいます。

業務では医療系ポータルサイト m3.com の開発・運営を担当する Unit4 というところにいます。その中でも普段は Docpedia というサービスの開発担当をするチームにいます。今日は、その Docpedia チームが新規メンバーのオンボーディングを担う役割を持っていること、ならびにその役割をより良く果たせるために入れた技術的な工夫について紹介します。Docpedia のサービスとしての話は書かないので、そちらに興味がある方はこちらの記事などをご覧ください。

www.m3tech.blog

  • オンボーディングとしてのチーム
  • 環境差分をなくして快適に
    • before
    • after
  • We are hiring!
続きを読む

新卒エンジニア全員がAWS研修に参加してきました

2021年4月に新卒として入社いたしました、永山です。

クラウドサービスであるAmazon Web Services (AWS) は、現在ではWebサービスを運営する企業や、あるいは個人にとっても重要な位置を占める技術としての地位を確立しています。 エムスリーでもサービスのクラウド移行を積極的に進めており、既に多くのサービスがAWS上で動作しています。

www.m3tech.blog

www.m3tech.blog

www.youtube.com

一方で、初学者にとってはAWSが提供する膨大な数のサービスの全容を学び、適切にシステムを設計するためのノウハウを得ることは困難です。

そこで、エムスリーエンジニアリングフェローであるAmazon Web Services Japanの富岡さんの縁もあり、我々エムスリーの新卒エンジニア6名は6月1日から6月3日の3日間、Amazon Web Services Japan さんが主催する新卒ソフトウェアエンジニア向けのオンラインAWS研修プログラム「AWS Jumpstart for NewGrads」に参加いたしました。

続きを読む