@noowah/ch-search-service
v1.0.2
Published
Typescript SDK for CloudHospital Azure search service: ch-search-service
Downloads
4
Readme
ch-search-service SDK
Getting started
❗️User must have access to ch-search-sevice
to work with this SDK flexibly due to following reasons
- ✅ check index fiends
- ✅ CORS information
- ✅ private service values such as
key
andendpoint
Installation
npm install @noowah/ch-search-service
yarn add @noowah/ch-search-service
User guide
azsearch(SearchServiceConfig)
const azsearch: Promise<{ results: SearchResults; totalCount: number }>;
returned value:
- results :
SearchReuslts
type SearchResults = (
| HospitalDocument
| DoctorDocument
| DealDocument
| SpecialtyDocument
| DepartmentDocument
| HospitalSpecialtyDocument
| ArticleDocument
| ServiceDocument
| ContributorDocument
| CountryDocument
| FaqDocument
| FaqCategoryDocument
)[];
- totalCount :
number
SearchServiceConfig
| Param | Type | Desctiption |
| ------------------ | ----------------- | ----------------------------------------------------- |
| idx | string (required) | use enum Idx
( "hospitals" | "doctors" | "deals") |
| stage | string (required) | "dev" | "int" | "prd" |
| az_search_key | string (required) | Azure search service key (contact CH team) |
| az_search_endpoint | string (optional) | Azure search service endpoint |
| options | Object(required) | use interface SearchOption
|
SearchOption
| Param | Type | Desctiption |
| ------------ | ------------------------------- | ------------------------------------ |
| searchTerm | string (required) | search keyword |
| filters | SearchFilterOption
(optional) | {[propertyName: string]: string[]}
|
| page | number (optional) | default :1 |
| limit | number (optional) | default :null |
| select | Array<string>
(optional) | select specific retrievable
fields |
| queryType | QueryType
(optional) | "simple" (default) | "full" |
| searchFields | Array<string>
(optional) | selecct specificsearchable
fields |
| searchMode | string (optional) | "any"(default) | "all" |
example:
const searchOption: SearchOption = {
searchTerm: `${searchTerm}~`,
limit: 20,
};
const fetchData = async () => {
const config: SearchServiceConfig = {
idx: Idx.hospitals,
stage: "int",
az_search_endpoint: NEXT_PUBLIC_AZ_SEARCH_ENDPOINT,
az_search_key: NEXT_PUBLIC_AZ_SEARCH_KEY,
options: searchOption,
};
const { results, totalCount } = await azsearch(config);
const castedResult = results as HospitalDocument;
};
SearchFilterOption
interface SearchFilterOption {
[propertyName: string]: string[];
}
- Set
filterable
fields as keys❗️ Refer to the
indexes
onch-search-service
(only accessible by CH dev team)
example:
'Translations/IsConfirmed': ['true']