이 섹션에서는 검색 기능의 미묘한 차이와 고급 주제를 자세히 설명합니다.
커스텀 동의어
Document AI Warehouse는 고객이 특정 도메인에 대한 자체 동의어를 제공할 수 있는 '맞춤 동의어'라는 기능을 제공합니다. 동의어는 이름에서 알 수 있듯이 검색 중에 사용되는 유사한 단어입니다. 사용자가 '텔레비전'을 검색하면 사용자가 알지 못하는 사이에 'TV', '동영상 모니터', '동영상 화면'과 같은 동의어가 추가될 수 있습니다. 사용자의 원래 검색어와 동의어가 검색어를 실행하는 데 사용됩니다.
이 기능은 사용자의 검색을 확장하고 예상되는 결과를 반환하는 데 도움이 됩니다. 일반적으로 회사 또는 업계 용어, 약어, 전문 용어, 방언이 포함됩니다.
동의어, 컨텍스트, SynonymSet
Document AI Warehouse에는 동의어 맞춤설정을 위한 세 가지 주요 용어가 도입되었습니다.
Synonym. 동의어는 모든 단어의 의미가 유사한 단어 집합을 나타냅니다.Context. 컨텍스트는 다른 그룹에서 사용하지 않는 특정 동의어가 있는 사용자 그룹 (예: 업계, 부서 또는 조직 사용자)을 나타냅니다. 예를 들어 재무 부서와 의료 부서는 완전히 다른SynonymSet를 사용할 가능성이 높습니다. 컨텍스트는 Search API의queryContext필드에서 지정할 수 있습니다. 따라서 동일한 검색어에 대해 다른 컨텍스트를 사용하면 검색 결과가 달라질 수 있습니다.SynonymSet. SynonymSet은 특정 컨텍스트의 동의어 모음입니다.
{
"name": string,
"context": string,
"synonyms": [
{
object (Synonym)
}
]
}
사용 사례
컨텍스트가 'finance'인 SynonymSet
| '통화','환전','달러','유로', '엔' |
| '인플레이션','CPI','경제 확장','경제 호황','물가 상승' |
| "IRS","Internal Revenue Service","US Treasury" |
| '세금 신고서','1040','1120','1099','W-2' |
위의 예에서 사용자가 '통화'를 쿼리하고 queryContext가 '금융'인 경우 해당 행의 다른 동의어 (즉, 외환, 달러, 유로, 엔)가 검색어에 암시적으로 추가됩니다. 마찬가지로 사용자가 해당 행의 용어를 쿼리하면 다른 모든 용어가 최종 쿼리에 추가됩니다. 동일한 예에서 사용자가 '유로'를 쿼리하면 통화, 환전, 달러, 엔이 최종 쿼리에 추가됩니다.
컨텍스트가 'healthcare'인 SynonymSet
| 'provider','clinic','hospital','doctor','therapist','specialist' |
| '의료 청구','청구','1500','진단','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"
}
}
히스토그램
히스토그램은 지정된 데이터의 개수를 집계하는 고급 기능입니다. 예를 들어 각 스키마의 문서 중 사용자의 쿼리와 일치하는 문서가 몇 개인지 알 수 있습니다. 정부 관련 데이터베이스의 경우 사용자가 '오렌지 카운티'를 검색하면 데이터 스키마 히스토그램에서 검색 기준과 일치하는 운전면허증, 혼인 증명서 또는 증서의 수를 반환할 수 있습니다. 히스토그램은 요청하는 사용자의 데이터 액세스 권한을 준수하므로 요청하는 사용자가 액세스할 수 있는 문서만 집계됩니다.
히스토그램은 유용한 리소스가 될 수 있지만 모든 데이터를 수집하고 집계하는 데 시간이 걸립니다.
히스토그램은 검색 요청의 페이지로 나누기 필드의 영향을 받지 않습니다.
일반 히스토그램 쿼리 형식
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"
}
}
]
}