本節將進一步討論搜尋功能的細微差異和進階主題。
自訂同義詞
Document AI Warehouse 提供「自訂同義字」功能,讓客戶為特定網域提供自己的同義字。同義字顧名思義就是搜尋時使用的類似字詞。如果使用者搜尋「電視」,系統可能會在使用者不知情的情況下,自動加入「TV」、「視訊螢幕」、「視訊畫面」等同義字。系統會使用使用者的原始搜尋字詞和同義詞執行搜尋查詢。
這項功能可擴充使用者的搜尋範圍,並傳回預期結果。常見用途包括公司或產業用語、縮寫、行話和俗語。
同義詞、情境和同義詞集
Document AI 倉儲提供三種同義字自訂功能的主要用語:
Synonym。同義詞代表一組字詞,其中所有字詞的含義都相似。Context。「脈絡」代表一組使用者 (例如產業、部門或機構使用者),他們有其他群組未使用的特定同義字。舉例來說,財務和醫療保健部門可能使用完全不同的SynonymSet。您可以在 Search API 的queryContext欄位中指定背景資訊。因此,即使使用相同的搜尋查詢字詞,但搜尋結果可能會因情境而異。SynonymSet。SynonymSet是特定情境的同義字集合。
{
"name": string,
"context": string,
"synonyms": [
{
object (Synonym)
}
]
}
用途範例
SynonymSet,內容為「finance」
| "Currency","Foreign exchange","dollar","euro","yen" |
| 「通膨」、「消費者物價指數」、「經濟擴張」、「經濟繁榮」、「物價上漲」 |
| "IRS","Internal Revenue Service","US Treasury" |
| 「退稅」、「1040」、「1120」、「1099」、「W-2」 |
在上述範例中,如果使用者查詢「Currency」,且 queryContext 為「finance」,則該列中的其他同義詞 (即「Foreign exchange」、「dollar」、「euro」、「yen」) 會隱含地新增至搜尋查詢。同樣地,如果使用者查詢該列中的任何字詞,所有其他字詞都會加入最終查詢。以同樣的例子來說,如果使用者查詢「歐元」,則最終查詢會加入「貨幣」、「外匯」、「美元」和「日圓」。
SynonymSet with context: "healthcare"
| "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" |
使用自訂同義詞擴展功能進行搜尋
如果顧客想使用自訂同義字擴展功能搜尋文件,就必須指定一或多個 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",
}
}
]
這個範例顯示有三個文件結構定義符合指定的搜尋查詢,並顯示每個文件結構定義的文件數量。
屬性直方圖
屬性直方圖會顯示指定可篩選屬性的計數。屬性直方圖的格式如下:
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,直方圖會計算所有屬性用量。例如:
Document 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"
}
}
]
}