LegalOn Technologies Engineering Blog

LegalOn Technologies 開発チームによるブログです。

Lucene/Elasticsearch の Character Filter でユニコード正規化するとトークンのオフセットがズレるバグへの Workaround

pre.code{ white-space: pre; overflow-x: scroll; } こんにちは、LegalOn Technologiesでエンジニアをしている神田(@kampersanda)です。 この記事の内容 Elasticsearch の Character Filter でユニコード正規化を適用したとき、Tokenizer の結果によって…

ネットワーク分析を用いた文書参照関係の分析

はじめに 株式会社LegalOn Technologies でデータアナリストをしている高木 要です。LegalOn Technologiesではデータ分析業務に積極的に取り組んでおり、我々データアナリストチームは各部門のステークホルダーとともに製品やビジネスの価値をデータから評価…

Jaccard係数に基づく類似文書検索の高速化技法

こんにちは、LegalOn Technologiesでエンジニアをしている神田(@kampersanda)です。 本記事では、Jaccard係数に基づく類似文書検索の高速化技法を解説し、契約書検索での実験結果を報告します。

「生成 AI を搭載したプロダクト開発」というタイトルでデブサミ2024に登壇しました!

こんにちは!LegalOn Technologiesのソフトウェアエンジニア、渡辺です。 2024年2月15日から16日にかけて開催された"Developers Summit 2024"(以下、デブサミ)に参加し、「生成AIを搭載したプロダクト開発~少人数で爆速リリースしてわかったこと~」とい…

4年ぶりの開催!検索技術勉強会 - 2023 - イベントレポート&インタビュー

こんにちは、LegalOn Technologiesにてエンジニアリング推進グループに所属の荒木と申します。 2023年12月20日、弊社オフィスにて「検索技術勉強会(以降 勉強会)」が開催されました。 この勉強会の内容と「なぜオフライン勉強会を再開したのか」について、弊…

検索クエリパーサー自作入門

はじめに こんにちは。株式会社LegalOn Technologies でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2023 の 20日目の記事として執筆されました。 この記事では、ANTLR[1]を使用したシンプルなクエリ…

シフトレフトを実現する仕様確認会:QAエンジニア主導の新たな取り組み

QA

はじめに こんにちは。株式会社LegalOn Technologies で品質保証(QA)エンジニアをしております、リンです。 2021年にLegalOn Technologiesでキャリアをスタートしました。入社当時、QAチームはたった3人で、品質保証プロセスもまだ発展途上でした。時間が…

社内勉強会で使用したSimCSEのチュートリアル資料を公開しました

こんにちは、LegalOn Technologies Researchで研究員をしている神田(@kampersanda)です。 弊社では、検索チーム主催でセマンティック検索とベクトル検索に関する社内勉強会を定期的に実施しています。この勉強会では、技術に関心のあるエンジニアが有志で…

PyCon APAC 2023 に参加してきました

はじめに こんにちは、LegalOn Technologies 検索チームの志水です。 2023/10/27と28に開催された PyCon APAC 2023 に参加したので、そのレポートをお送りします。 2日間あるイベントのうち、初日は私によるレポート、2日目はチームリーダーの打田によるレポ…

Looker System Activity を低コストなサーバレスイベント駆動パイプラインで BigQuery へ取り込む

はじめに 株式会社LegalOn Technologies でデータエンジニアリングをしている 田中 晶 です。 LegalOn Technologies では、データドリブンな意思決定をするために、データ分析基盤や BI ツールの整備を行い、プロダクトに関わる多くの社員がデータを活用でき…

LegalOn Technologies のエンジニアグレード評価基準を公開します

こんにちは。LegalOn TechnologiesでCTOを務めている深川といいます。 もし私がどういう人なのか気になる方がいましたら、私のことは以下の弊社オープン社内報でも記載していますので、よかったらこちらの記事をご覧いただければと思います。 https://now.le…

Datadog Session Replayの導入による効果

SRE

はじめに こんにちは、株式会社LegalOn Technologies (以下 LegalOnと呼びます) SRE&プラットフォームグループの加藤です。 LegalOnでは、2019年4月に『LegalForce』、2021年1月に『LegalForceキャビネ』を正式リリースして以来、機能追加やUI/UXの改善など…

IR Reading 2023 Spring 参加レポート

こんにちは、検索・推薦チームの浅野(@takuya_b / @takuya_a)です。 2023年6月10日に開催された IR Reading 2023春に、弊社の勝田(検索・推薦)、宮里(検索・推薦)と参加しました。 今回は、そちらの様子をレポート形式でお届けします。

セキュリティインシデント対応の体系化

こんにちは、株式会社LegalOn TechnologiesでCSIRTのリーダーを務めている今成と申します。 本記事では、LegalOn Technologies(以下 LegalOn)におけるCSIRTのセキュリティインシデント対応に係るプロセスおよび管理方法を、体系的に整理した事例をご紹介し…

宣言的DBスキーマ管理ツールの導入

SRE

こんにちは、SRE&プラットフォームグループの和田です。LegalOn Technologiesでは、2019年4月に「LegalForce」、2021年1月に「LegalForceキャビネ」を正式リリースして以来、毎月機能アップデートをしています。また、リリース初期段階では予期できなかった…

mablからPlaywrightに移行しました

こんにちは! 株式会社LegalOn TechnologiesのLegalForceキャビネ開発部SET(Software Engineer in Test)のひきもち(@rmochioo)です。 昨年8月に入社し、LegalForceキャビネのAPIテスト、自動E2Eテストなどの自動テストの導入、QA業務まで幅広く携わって…

論文「Engineering faster double-array Aho-Corasick automata」が学術誌「Software: Practice and Experience」に採択

こんにちは。LegalOn Technologies Researchで研究員をしている神田 (@kampersanda) です。 この度、論文「Engineering faster double-array Aho-Corasick automata」がソフトウェア系の有名学術誌「Software: Practice and Experience」に採択されました。 …

Firebase 使用上の注意(Functions 編)

初めに こんにちは、株式会社 LegalOn Technologies の LegalForceキャビネ開発部でテックリードを務めている横道と申します。 私たちのプロダクト、「LegalForceキャビネ(以下キャビネ)」では Google Firebase を使用しています。 この Google Firebase を…

イベント駆動型アーキテクチャで実現する Query Auto Completion 更新

こんにちは、株式会社LegalOn Technologies の検索・推薦チームでエンジニアをしている、佐藤です。 弊社では LegalForce という製品で、お客様がアップロードした契約書を条文単位で検索ができる、条文検索機能を提供しています。 条文検索では既に契約書本…

APIテストで質とスピードの両立を実現 - LegalForceキャビネの事例

QA

こんにちは、株式会社LegalOn TechnologiesのLegalForceキャビネ開発部でQAリードを務めている島根(@shimashima35)と申します。 QAというとマニュアルテストが中心かと思われるかもしれません。確かにマニュアルテストはQAの業務の一部ではありますが、「…

Rustで標準ライブラリのHashMapの代わりにhashbrownを使う

こんにちは。株式会社LegalOn Technologies でエンジニアをしている赤部です。 自然言語処理をしていると、単語の出現回数を数えたり、単語と何らかのデータを紐付けたりすることが頻繁に必要になります。これらのことを簡単に行える、最も一般的でよく知ら…

GitHub Codespacesの導入

こんにちは、LegalOn TechnologiesのLegalForce開発部のSRE 伊藤です。 私たちのチームでは、LegalForceの安定稼働と同様に、開発者がより楽に開発・運用できるような基盤を提供することをミッションにさまざまな改善活動を行なっています。 今回はGitHub Co…

マルチテナンシーSaaSを支える Elasticsearch Index 設計

こんにちは。株式会社 LegalOn Technologies でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2022 の 22日目の記事として執筆されました。LegalForce キャビネについて紹介すると共に、社内で運用され…

外部サービス利用規約の読み方

※ 本稿で紹介している内容はあくまで参考情報です。実際の場面では、自社の法務担当者や弁護士等の専門家に相談ください。 LegalForceの開発本部長(肩書が固いですが、プロダクトマネジャーをやっています)川戸( @kawato_takashi )です。 今回は外部サー…

MeCab互換な形態素解析器Vibratoの高速化技法

こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは、MeCab互換の形態素解析器Vibrato(ヴィブラ〰ト)を開発しています。プログラミング言語Rustで実装しており、高速に動作することが主な利点です。Vi…

高速な文字列探索:Daachorseの技術解説

こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは現在、高速なパターンマッチングマシン Daachorse(ダークホース)を開発・運用しています。文字列処理の基礎である複数パターン検索を提供するRust製…

サービス無停止でElasticsearchのReindexを行うノウハウ

こんにちは。LegalForce でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2021 の 21日目の記事として執筆されました。LegalForce と LegalForce キャビネについて紹介すると共に、Reindex の実施に伴…

速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説

こんにちは。LegalForce Research でエンジニアをしている赤部 (@vbkaisetsu) です。 今回は、弊チームが開発した新しい高速な単語分割器 Vaporetto(ヴァポレット)の技術解説を行います。Vaporetto はプログラミング言語 Rust で開発されています。想定す…

新製品を作り、育て続けるための組織デザイン

こんにちは。LegalForce COO 川戸(@kawato_takashi)です。 今回は、LegalForceの開発組織での直近の組織変更について、その意図と背景をお伝えします。読者としては下記の二通りを想定しています。 弊社をご検討いただいている候補者に正しい最新の情報を…

製品に「新しい顔」が必要になるとき: 主要画面のスクラップ&ビルド

こんにちは。LegalForce COO 川戸(@kawato_takashi)です。 今日は「画面を作り直すこと」のケーススタディをご紹介します。 事前にリサーチをしても、実際に使われ始めるまでは、本当は製品が何に使われるのか、よく分っていないことが多いです。ユーザー…