このセクションでは、検索機能のニュアンスと高度なトピックについて詳しく説明します。
カスタムの類義語
Document AI Warehouse には「カスタム類義語」という機能があり、お客様は特定のドメインに独自の類義語を提供できます。類義語とは、その名のとおり、検索時に使用される類似した単語です。ユーザーが「テレビ」を検索すると、ユーザーが意識することなく、「TV」、「ビデオモニター」、「ビデオ画面」などの類義語がシームレスに追加されます。ユーザーの元の検索キーワードと類義語が検索クエリの実行に使用されます。
この機能は、ユーザーの検索を拡張し、期待される結果を返すのに役立ちます。一般的な用途としては、会社や業界の用語、頭字語、専門用語、俗語などがあります。
Synonym、Context、SynonymSet
Document AI ウェアハウスでは、類義語のカスタマイズに 3 つの主要な用語が導入されています。
Synonym。類義語は、すべての単語が類似した意味を持つ単語のセットを表します。Context。コンテキストは、他のグループでは使用されない特定の類義語を持つユーザーのグループ(業界、部門、組織のユーザーなど)を表します。たとえば、財務部門と医療部門では、まったく異なるSynonymSetを使用している可能性があります。コンテキストは、Search API のqueryContextフィールドで指定できます。そのため、同じ検索クエリの用語でも、異なるコンテキストを使用すると、異なる検索結果が得られる可能性があります。SynonymSet。SynonymSet は、特定のコンテキストの類義語のコレクションです。
{
"name": string,
"context": string,
"synonyms": [
{
object (Synonym)
}
]
}
使用例
コンテキスト「finance」を含む SynonymSet
| "通貨","外国為替","ドル","ユーロ","円" |
| "インフレーション","CPI","経済拡大","経済ブーム","価格上昇" |
| "IRS","Internal Revenue Service","US Treasury" |
| "Tax return","1040","1120","1099","W-2" |
上の例では、ユーザーが「Currency」をクエリし、queryContext が「finance」の場合、その行の他の類義語(Foreign exchange、dollar、euro、yen)が検索クエリに暗黙的に追加されます。同様に、ユーザーがその行のいずれかのキーワードをクエリすると、他のすべてのキーワードが最終的なクエリに追加されます。同じ例を使用すると、ユーザーが「ユーロ」をクエリした場合、通貨、外国為替、ドル、円が最終クエリに追加されます。
コンテキスト「healthcare」を含む SynonymSet
| "provider","clinic","hospital","doctor","therapist","specialist" |
| "Medical claim","Claim","1500","Diagnosis","ICD-9","ICD9","ICD-10","ICD10","CPT","HCPCS" |
| "injury","trauma","hurt","wound","sore","bruise","cut","laceration","lesion","abrasion","contusion" |
カスタム類義語の拡張機能を使用して検索する
お客様がカスタム類義語拡張を使用してドキュメントを検索する場合は、1 つ以上の query_context を指定する必要があります。SearchDocuments API のドキュメントをご覧ください。
フォルダ検索
名前のとおり、folder search は特定のフォルダとそのサブフォルダのみを検索します。
検索リクエストの例は次のようになります。
{
document_query {
query: "songs";,
folderNameFilter: "projects/PROJECT_NUM/locations/LOCATION/documents/888"
}
}
ヒストグラム
ヒストグラムは、指定されたデータのカウントを集計する上級者向け機能です。たとえば、各スキーマのドキュメントのうち、ユーザーのクエリに一致するものはいくつあるか。政府関連のデータベースで、ユーザーが「Orange County」を検索すると、データスキーマ ヒストグラムは、検索条件に一致する運転免許証、婚姻証明書、証書の数を返すことがあります。ヒストグラムは、リクエスト元のユーザーのデータアクセス権限を尊重するため、リクエスト元のユーザーがアクセスできるドキュメントのみがカウントされます。
ヒストグラムは強力なリソースですが、すべてのデータを収集して集計するには時間がかかります。
ヒストグラムは、検索リクエストのページネーション フィールドの影響を受けません。
一般的なヒストグラム クエリの形式
HistogramQuery は次のように定義されます。
{
"histogramQuery": string,
"requirePreciseResultSize": boolean,
"filters": {
object (HistogramQueryPropertyNameFilter)
}
}
histogram_query フィールドの形式は COUNT('<item to count>') です。このフィールドは繰り返しフィールドであるため、複数のヒストグラム クエリを使用できます。
require_precise_result_size フィールドは実装されていません。
filters フィールドについては、フィルタ セクションで説明します。
ドキュメント スキーマのヒストグラム
次のヒストグラム クエリを追加すると、ドキュメント スキーマまたはドキュメント タイプのヒストグラムを作成できます。
{
document_query {
query: "test"
},
histogram_queries: [
{
histogram_query: "count('DocumentSchemaId')"
}
]
}
たとえば、このクエリの HistogramQueryResult 内のマップは次のようになります。
histogramQueryResults: [
{
histogramQuery: "DocumentSchemaId",
histogram:
{
"projects/1234/locations/us-west/documentSchemas/5543": "22",
"projects/1234/locations/us-west/documentSchemas/5544": "2",
"projects/1234/locations/us-west/documentSchemas/5545": "4",
"projects/1234/locations/us-west/documentSchemas/5546": "122",
"projects/1234/locations/us-west/documentSchemas/5547": "256",
"projects/1234/locations/us-west/documentSchemas/5548": "1",
"projects/1234/locations/us-west/documentSchemas/5549": "5",
"projects/1234/locations/us-west/documentSchemas/5550": "15",
}
}
]
この例では、指定された検索クエリに一致するドキュメント スキーマが 3 つあり、ドキュメント スキーマごとのドキュメント数が表示されています。
プロパティのヒストグラム
プロパティ ヒストグラムには、指定されたフィルタ可能なプロパティの数が表示されます。プロパティ ヒストグラムの形式は次のとおりです。
COUNT('SomeSchema.SomeProp')
// Also, you can try with:
COUNT('SomeSchema.ParentProp.SubProp')
リクエストの例を次に示します。
histogramQueryResults: [
{
histogramQuery: "5678.text_prop",
histogram: {
some_text: "1",
More_text: "55",
Additional_text: "19"
}
}
]
このヒストグラムには、HistogramQueryPropertyNameFilter 基準に基づく、フィルタ可能なすべてのプロパティ ヒストグラムが表示されます。これは、プロパティの使用回数を返します(値の数ではありません)。
HistogramQueryPropertyNameFilter は次のように定義されます。
{
"documentSchemas": [
string
],
"propertyNames": [
string
],
"yAxis": enum (HistogramYAxis)
}
document_schemas という繰り返し可能なフィールドに最大 10 個の schema_ID フィールドを入力することで、結果をドキュメント スキーマのセットに制限できます。集計されるプロパティは、繰り返し可能な property_names フィールドを使用して、必要に応じて削減できます。
y_axis フィールドは、プロパティのカウント方法を決定します。設定されていない場合、または HISTOGRAM_YAXIS_DOCUMENT に設定されている場合、ヒストグラム機能は一意のプロパティの使用状況のみをカウントします。y_axis が HISTOGRAM_YAXIS_PROPERTY に設定されている場合、ヒストグラムはすべてのプロパティの使用状況をカウントします。次に例を示します。
ドキュメント 1: Payments_property: [AMEX, VISA]
ドキュメント 2: Payments_property: [MC]
`HISTOGRAM_YAXIS_DOCUMENT` would return:
Payments_property: 2
_Explanation_: The `Payments_property` is found in two documents
`HISTOGRAM_YAXIS_PROPERTY` would return:
Payments_property: 3
_Explanation_: The `Payments_property` has three values in the documents found
簡単なクエリの例を次に示します。
{
document_query {
},
histogram_queries: [
{
histogramQuery: "count('FilterableProperties')";
}
]
}
上記のクエリに対するレスポンスの例を次に示します。
histogramQueryResults: [
{
histogramQuery: "FilterableProperties",
histogram: {
456.int_prop: "4",
456.text_prop: "26"
}
}
]
count('FilterableProperties')) の結果をスキーマでフィルタするには、次のリクエストをご覧ください。
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
document_schemas: [
"projects/1234/locations/us-west/documentSchemas/678",
"projects/1234/locations/us-west/documentSchemas/456"
]
}
}
]
}
特定のプロパティの count('FilterableProperties') の結果をフィルタするには、次のリクエストをご覧ください。
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
property_names: [
"678.MORTAGE_TYPE",
"456.language_code"
]
}
}
]
}
count("FilterableProperties") のプロパティ数を表示するには、次のように y_axis を HISTOGRAM_YAXIS_PROPERTY に変更します。
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
y_axis: "HISTOGRAM_YAXIS_PROPERTY"
}
}
]
}
次のステップ
- ポリシー エンジンに進みます。
- REST リファレンスにアクセスする