内容検索

要件
ログインの有無 True
エンドポイント /v1/search
メソッド GET

概要

参照したいファイルやデータの本文全体を対象に、指定したキーワードを検索できる機能、優先度は低め

最大検索可能文字数

255文字まで

検索対象文字

検索クエリで入力される文字は、以下のカテゴリに分類される

日本語文字

  • ひらがな(あ~ん)
  • カタカナ(ア~ン)
  • 漢字(CJK Unified Ideographs)

英数字

  • A-Z/a-z
  • 0-9(全角・半角)

記号

  • 一般記号:_ . / @ # & % ? !
  • かっこ類:() [] <>
  • 句読点:、 。 , .

無効文字

以下の文字は検索クエリとして扱わない

  • 制御文字(U+0000~U+001F)
  • 不可視文字(ゼロ幅スペース)
  • 一部の特殊記号(検索エンジンが無視するもの)←具体的なのはないので無視しておk

必要なデータ

キー 値の種類 必須 説明
type String True ベクトル検索=vector / ファイル名=filename / アカウント名=account / OCR=ocr / 内容=content
keyword String True 検索キーワード(最大255文字)

フロント→バックに必要なデータ

キー 値の種類
title String

バック→フロントに必要なデータ

キー 値の種類
match_keyword string

実装要件

  • ファイル本文のテキスト抽出・インデックス化
  • PostgreSQL 全文検索(tsvector/tsquery)または外部検索エンジン
  • 必要コンポーネント: PostgreSQL(FTS)またはElasticsearch等