Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Vissa scenarier kräver omindexering av sökparametrar i FHIR-tjänsten® i Azure Health Data Services. Det här scenariot är relevant när du definierar dina egna anpassade sökparametrar. Du kan inte använda den i liveproduktion förrän en sökparameter har indexerats. Den här artikeln förklarar hur man kör ett reindexjobb i din FHIR-tjänstedatabas.
Varning
Läs hela den här artikeln innan du börjar. Ett omindexeringsjobb kan vara mycket resurskrävande. I den här artikeln beskrivs alternativ för hur du begränsar och kontrollerar ett omindexeringsjobb.
Kommentar
Att köra ett reindexjobb mot specifika anpassade sökparametrar är föråldrat.
Så här kör du ett omindexeringsjobb
Du kan köra ett reindexjobb mot en hel FHIR-tjänstedatabas.
Om du vill köra ett omindexeringsjobb använder du följande POST anrop med den JSON-formaterade resursen i begärandetexten Parameters .
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Om begäran lyckas får du statuskoden 201 Skapad utöver en Parameters resurs i svaret.
HTTP/1.1 201 Created
Content-Location: https://{{FHIR URL}}/_operations/reindex/560c7c61-2c70-4c54-b86d-c53a9d29495e
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "138035"
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:52:44.0974408+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 0.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 0.0
},
{
"name": "progress",
"valueDecimal": 0.0
},
{
"name": "status",
"valueString": "Queued"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
},
{
"name": "maximumNumberOfResourcesPerWrite",
"valueDecimal": 100.0
}
]
}
Så här kontrollerar du status för ett omindexeringsjobb
När du har startat ett omindexeringsjobb kontrollerar du statusen med hjälp av följande anrop.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Här är ett exempelsvar.
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "138087"
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "startTime",
"valueDateTime": "2023-06-08T04:54:53.2943069+00:00"
},
{
"name": "endTime",
"valueDateTime": "2023-06-08T04:54:54.4052272+00:00"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:54:54.4053002+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 2.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 2.0
},
{
"name": "progress",
"valueDecimal": 100.0
},
{
"name": "status",
"valueString": "Completed"
},
{
"name": "resources",
"valueString": "{{LIST_OF_IMPACTED_RESOURCES}}"
},
{
"name": "resourceReindexProgressByResource (CountReindexed of Count)",
"valueString": "{{RESOURCE_TYPE:REINDEXED_COUNT OF TOTAL_COUNT}}"
},
{
"name": "searchParams",
"valueString": "{{LIST_OF_SEARCHPARAM_URLS}}"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
},
{
"name": "maximumNumberOfResourcesPerWrite",
"valueDecimal": 100.0
}
]
}
Föregående svar visar följande information:
| Parameter | Description |
|---|---|
totalResourcesToReindex |
Det totala antalet resurser som jobbet indexerar om. |
resourcesSuccessfullyReindexed |
Det totala antalet resurser som jobbet indexerar om. |
progress |
Omindexeringsjobbets slutförandegrad i procent.
resourcesSuccessfullyReindexed Lika med dividerat med totalResourcesToReindex gånger 100. |
status |
Status för omindexeringsjobbet. Den kan placeras i kö, köras, slutföras, misslyckas eller avbrytas. |
resources |
Alla resurstyper som omindexeringsjobbet påverkar. |
resourceReindexProgressByResource (CountReindexed of Count) |
Det omindexerade antalet av det totala antalet per resurstyp. Om omindexering för en viss resurstyp står i kö anges endast Antal. |
searchParams |
URL:en för sökparametrarna som omindexeringsjobbet påverkar. |
maximumNumberOfResourcesPerQuery |
Det maximala antalet resurser som bearbetas i en dataenhet. |
maximumNumberOfResourcesPerWrite |
Det maximala antalet resurser som uppdateras i datalagringen i en enda transaktion. |
Avbryt ett omindexeringsjobb
Om du vill avbryta ett omindexeringsjobb använder du ett anrop till DELETE och anger ID:t för omindexeringsjobbet.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Prestandaöverväganden
Ett omindexeringsjobb kan vara ganska resurskrävande. Även om FHIR-tjänsten automatiskt skalar backend-distribuerad beräkningsinfrastruktur beroende på belastning, kan en reindexering ändå påverka API-operationerna. Om detta inte är acceptabelt kan reindex-beräkningsförbrukningen strypas genom att minska skrivtransaktionsstorleken som styrs av maximumNumberOfResourcesPerWrite. En annan aspekt är resursstorlek som påverkar mängden minne som krävs för att hantera en enda skrivtransaktion, och styrs av samma maximumNumberOfResourcesPerWrite. Standardvärdet för maximumNumberOfResourcesPerWrite är 1000. Du kan ställa in mellan 1 och 5000. Minska till 1 (en resurs per skrivning) för att hantera mycket stora resurser eller för att begränsa omindexeringen.
Exempelbegäran med parametern:
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumNumberOfResourcesPerWrite",
"valueInteger": 1
}
]
}
Kommentar
Det är inte ovanligt att ett omindexeringsjobb på stora datauppsättningar körs i flera dagar.
Nästa steg
I den här artikeln har du lärt dig hur du genomför ett omindexeringsjobb i din FHIR-tjänst. Information om hur du definierar anpassade sökparametrar finns i
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.