検索オプション

このセクションでは、検索機能のニュアンスと高度なトピックについて詳しく説明します。

カスタムの類義語

Document AI Warehouse には、「カスタム同義語」という機能があり、お客様は特定のドメインの同義語を独自に指定できます。同義語とは、その名のとおり、検索時に使用される類似した単語のことです。ユーザーが「テレビ」を検索した場合、「テレビ」、「ビデオ モニター」、「ビデオ スクリーン」などの同義語がユーザーに通知されることなくシームレスに追加されます。ユーザーの元の検索語句と類義語を使用して検索クエリが実行されます。

この機能は、ユーザーの検索を拡張し、期待どおりの結果を返すのに役立ちます。一般的な使用例としては、会社や業界の用語、頭字語、専門用語、方言などがあります。

Synonym、Context、SynonymSet

Document AI ウェアハウスでは、同義語のカスタマイズに次の 3 つの主要な用語が導入されています。

  • Synonym同義語は、すべての単語が類似した意味を持つ単語のセットを表します。

  • Contextコンテキストは、他のグループでは使用されない特定の同義語を持つユーザーのグループ(業界、部門、組織のユーザーなど)を表します。たとえば、財務部門と医療部門では、まったく異なる SynonymSet を使用している可能性があります。コンテキストは、Search API の queryContext フィールドで指定できます。そのため、同じ検索クエリ語句でも、コンテキストが異なると検索結果が異なる場合があります。

  • SynonymSetSynonymSet は、特定のコンテキストの類義語のコレクションです。

{
  "name": string,
  "context": string,
  "synonyms": [
    {
      object (Synonym)
    }
  ]
}

使用例

コンテキストが「finance」の SynonymSet

"Currency","Foreign exchange","dollar","euro"​​,"yen"
"インフレ","消費者物価指数","経済拡大","経済ブーム","物価上昇"
"IRS","Internal Revenue Service","US Treasury"
「Tax return」、「1040」、「1120」、「1099」、「W-2」

上記の例では、ユーザーが「通貨」をクエリし、queryContext が「金融」の場合、その行の他の同義語(外国為替、ドル、ユーロ、円)が検索クエリに暗黙的に追加されます。同様に、ユーザーがその行のいずれかのキーワードをクエリすると、他のすべてのキーワードが最終的なクエリに追加されます。同じ例で、ユーザーが「ユーロ」をクエリすると、通貨、外国為替、ドル、円が最終的なクエリに追加されます。

コンテキストが「医療」の 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"
    }
  }

ヒストグラム

ヒストグラムは、指定されたデータのカウントを集計する高度な機能です。たとえば、各スキーマのドキュメントのうち、ユーザーのクエリに一致するドキュメントの数はいくつですか?政府関連のデータベースの場合、ユーザーが「オレンジ郡」を検索すると、データ スキーマのヒストグラムに、検索条件に一致する運転免許証、婚姻証明書、権利証の数が返されることがあります。ヒストグラムはリクエストしているユーザーのデータアクセス権限を尊重するため、リクエストしているユーザーがアクセスできるドキュメントのみがカウントされます。

ヒストグラムは強力なリソースですが、すべてのデータを収集して集計するには時間がかかります。

ヒストグラムは、検索リクエストのページネーション フィールドの影響を受けません。

一般的なヒストグラム クエリの形式

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_axisHISTOGRAM_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"
        }
      }
    ]
  }

次のステップ