이 섹션에서는 검색 기능의 세부적인 사항과 고급 주제를 자세히 설명합니다.
커스텀 동의어
Document AI Warehouse는 고객이 특정 도메인에 대한 자체 동의어를 제공할 수 있는 '커스텀 동의어'라는 기능을 제공합니다. 동의어는 이름에서 알 수 있듯이 검색 중에 사용되는 유사한 단어입니다. 사용자가 '텔레비전'을 검색하면 'TV', '비디오 모니터', '비디오 화면'과 같은 동의어가 사용자가 모르는 사이에 원활하게 추가될 수 있습니다. 사용자의 원래 검색어와 동의어가 검색어를 실행하는 데 사용됩니다.
이 기능은 사용자의 검색을 확장하고 예상 결과를 반환하는 데 도움이 됩니다. 일반적인 사용 사례에는 회사 또는 업계 용어, 약어, 전문 용어, 일상어가 포함됩니다.
Synonym, Context, 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" |
| "Tax return","1040","1120","1099","W-2" |
위의 예시에서 사용자가 '통화'를 쿼리하고 queryContext가 '금융'인 경우 해당 행의 다른 동의어(예: 외환, 달러, 유로, 엔)가 검색어에 암시적으로 추가됩니다. 마찬가지로 사용자가 해당 행의 검색어를 쿼리하면 다른 모든 검색어가 최종 쿼리에 추가됩니다. 동일한 예를 사용하여 사용자가 '유로'를 쿼리하면 통화, 외환, 달러, 엔이 최종 쿼리에 추가됩니다.
컨텍스트가 '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" |
커스텀 동의어 확장으로 검색
고객이 커스텀 동의어 확장을 사용하여 문서를 검색하려면 하나 이상의 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"
}
}
]
}