2000年代後半から、大企業のセキュリティサービスのプロセス自動化に取り組んできました。 ほとんどすべての企業で、重要なセキュリティタスクの1つは、潜在的な顧客と請負業者の信頼性をチェックすることでした。 このチェックには、膨大な数のテキスト情報に含まれる企業または人々に関する情報の定期的な検索が含まれていました。 この配列は、さまざまな形式とさまざまなソースからの数千万のドキュメントを表します(そして、今でも表します)。 問い合わせ、レポート、pdf、doc、xls、txt形式のステートメント、場合によっては同じpdf、tiffなどのスキャンなどがあります。一般に、このデータセット内の企業または個人に関する情報をすばやく見つけるタスクは重要です。どんなビジネスでも。
dtSearchの使用から、独自の完全なソリューションへの長い道のりを歩んできました。 この記事では、経験を共有したいと思います。
検証プロセスを自動化するために、独自のソリューションを使用しましたが、ドキュメント内の全文検索のエンジンはdtSearchでした。 私たちの選択について少し(これは2010年に開催され、2016年の秋まで私たちと共にいました):
- 選択は、Cross、Copernic、Archiivist、dtSearch、およびいくつかのエキゾチックなソリューションの間で行われました
- 大量のデータでクエリ速度を比較すると、明らかな勝者が示されました-dtSearch
- 当時のDtSearchは、最も高度なクエリ構文を備えていたため、情報検索のすべての「微妙さ」を実装できました。
- DtSearchには、エンジンをシステムに統合するために使用したC#のライブラリ形式のAPIがあります。 最も便利なオプションではありませんが、当時は最も受け入れられました
次に起こったこと
年が経ち、システムが開発され、徐々にdtSearchがボトルネックになり、問題点になりました。
- 情報量は絶えず増加しており、これに伴い検索速度が低下していました。2016年末までに、一部のクエリはそれぞれ5分かかりました。これは絶対に受け入れられない指標です
- dtSearchはスキャンされたドキュメント(OCR)を認識せず、そのようなドキュメントはますます多くなりました-それぞれ、多くの情報を失いました
- dtSearchがCP866エンコードファイルを誤ってインデックス付けする
- dtSearchは、フレーズ、数字、日付、単語を常に正しくトークン化するとは限りません。これは、たとえば、複合名や電話番号を検索するときに情報が失われる可能性があるためです。
- 私たちのシステムは、ASP.NET MVC / C#/ MSSQLスタックから、より現代的なReact / Node.js / Python / ElasticSearch / MongoDBに徐々に移行しました。統合(本当に必要なREST)
- dtSearchインデクサーには、本格的なWindows Serverを使用する必要がありました
- dtSearchはクラスターでの作業方法を知りません。これは、大容量のボリュームにとって重要です。 dtSearch専用の非常に厚い車を1台保管する必要がありました
リストはどんどん増えていきますが、上記の問題と比較して、他のすべては些細なことです。
そのため、ある瞬間、私たちはあなたがそのように生きることができず、代替案を探すか、独自のソリューションを作成する必要があることに気付きました。 残念ながら、代替品の検索は賢明なものをもたらさず、2010年に存在した製品はあまり進歩せず、新しい製品(LucidWorks Fusion、SearchInformなど)にはまったく感銘を受けませんでした。
次に、Apache Tika + ElasticSearchまたはApache Solrを使用してシステムの全文検索モジュールを作成するオプションを検討しました。これは一般に問題を解決します。 ただし、クイック検索、OCR、およびユーザーフレンドリーなインターフェイスを備えた優れたソリューションが市場にまだ存在しないという考えは、私たちを苦しめることをやめません。
したがって、私たちはためらうことなく、誰にとっても生活を楽にする独自のオープンソースソリューションを作成することにしました。それがアンバーの誕生です。
Ambar-全文ドキュメント検索システム
開発プロセスでは、dtSearchに悩まされていたすべての問題に留意しました。 したがって、システムの主な要件は、軽量で直感的でありながら強力でスケーラブルでした。 私たちは数千億のファイルのボリュームに即座に焦点を合わせました。前提条件は、検索の複雑さとドキュメントの数に関係なく、0.5秒以内のクイック検索でした。
リリースは2017年1月に行われました。その後、最初の主要クライアントでAmbarを立ち上げました。
知っておくべき重要なシステムのキーポイント:
- 言語の特性を考慮した超高速検索:たとえば、ファジー検索クエリでは、1,000万を超えるファイルで約100ミリ秒かかります
- 検索と管理の両方のための、簡単で直感的なインターフェース
- すべての一般的な(そうではない)ファイル形式と重複排除のサポート
- 市場で最高のPDF解析、スマートページタイプ検出(スキャン/テキスト)
- 高度なOCR
- 高度なフルテキストアナライザー。日付、電話などの誤ったトークン化によって情報が失われることはありません。
- シンプルなREST API、あらゆるものとの簡単な統合
- クラウドバージョンを使用するか、独自のハードウェアにインストールする機能
- 独自のハードウェアにインストールする場合、クラスターにインストールしてペタバイトのデータに拡張できます
近い将来、メールの内容を読み取って索引付けする機能を追加し、名前付きエンティティ(名前、住所、文書番号、識別番号、電話番号)の認識を追加することにより、システムの分析部分の開発を開始する予定です。
→興味深い事実とベストプラクティスをすべて共有するブログ
ご清聴ありがとうございました!