全文検索

すべてのレコードはキーワード検索用に自動でインデックスされます。クエリは、指定した語を含むレコードを一致度の高い順に返し、呼び出し元が読み取れるものだけを対象にします。

インデックスの対象

インデックスは各レコードの自然キーとそのデータを対象とし、自然キーの重みが最も高くなります。Postgresの生成列なので、レコードが書き込まれるたびにデータベースが最新の状態に保ちます。

クエリの一致のしかた

クエリは検索語を含むレコードに一致し、関連度の高い順に並べます。一致は単語単位で、英語の言語ルールに従います。1つのフィールドに対する部分一致や前方一致は、テキストフィールド用のcontainsとstarts-withフィルターを持つ一覧クエリが担当します。意味による検索は別の機能で、セマンティック検索です。

呼び出し元が読み取れる範囲に限定

検索は呼び出し元の行レベルのアクセスルールに従って実行されるため、呼び出し元が読み取れないレコードはヒットしません。公開APIでは、各ヒットが通常の読み取りと同じ方法で解決され、呼び出し元に見えないものは除外されます。

呼び出し方

searchRecordsはモデルをまたいで検索し、モデルキーで1つのモデルに絞り込めます。各ヒットは、レコードのid、モデルキー、自然キー、スコア、コンテンツを返します。このクエリにはsearch:readスコープが必要で、特定のモデルに制限されたキーではモデルをまたいで実行できません。foir searchは、ターミナルから同じ検索を実行します。

詳細を読む

SDKリファレンスでは、データクライアントの検索呼び出しを、モデル横断とモデルごとに分けて一覧しています。