1.0.2 • Published 3 years ago
@noowah/ch-search-service v1.0.2
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
keyandendpoint
Installation
npm install @noowah/ch-search-service
yarn add @noowah/ch-search-serviceUser 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
filterablefields as keys❗️ Refer to the
indexesonch-search-service(only accessible by CH dev team)
example:
'Translations/IsConfirmed': ['true']