Sdílet prostřednictvím


Spuštění přeindexování úlohy

Existují scénáře, ve kterých můžete mít parametry hledání ve službě FHIR® ve službě Azure Health Data Services, které ještě nebyly indexovány. Tento scénář je relevantní, když definujete vlastní parametry hledání. Dokud se vyhledávací parametr neindexuje, nedá se použít v živém produkčním prostředí. Tento článek popisuje, jak spustit úlohu přeindexování pro indexování všech vlastních parametrů vyhledávání v databázi služby FHIR.

Upozorňující

Než začnete, přečtěte si celý článek. Úloha reindexování může být velmi náročná na výkon. Tento článek popisuje možnosti omezení a řízení úlohy přeindexování.

Spuštění úlohy přeindexování

Úlohu přeindexování je možné spustit pro celou databázi služby FHIR a pro konkrétní vlastní parametry hledání.

Spuštění přeindexování úlohy pro celou databázi služby FHIR

Pokud chcete spustit úlohu přeindexování, použijte následující POST volání s prostředkem ve formátu Parameters JSON v textu požadavku.

POST {{FHIR_URL}}/$reindex 
content-type: application/fhir+json
{ 

"resourceType": "Parameters",  

"parameter": [] 

}

"parameter": [] Pokud nepotřebujete upravovat prostředky přidělené úloze přeindexování, nechte pole prázdné (jak je znázorněno).

Pokud je požadavek úspěšný, obdržíte kromě prostředku v odpovědi i stavový kód 201 Created (Vytvořený stavový Parameters kód 201).

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": "maximumConcurrency",
            "valueDecimal": 3.0
        },
        {
            "name": "queryDelayIntervalInMilliseconds",
            "valueDecimal": 500.0
        },
        {
            "name": "maximumNumberOfResourcesPerQuery",
            "valueDecimal": 100.0
        }
    ]
}

Spuštění úlohy přeindexování s konkrétním parametrem vlastního vyhledávání

Pokud chcete spustit úlohu přeindexování s konkrétním parametrem vlastního vyhledávání, použijte následující POST volání s prostředkem ve formátu Parameters JSON v textu požadavku.

POST {{FHIR_URL}}/$reindex 
content-type: application/fhir+json
{ 

"resourceType": "Parameters",  

"parameter": [
    {
      "name": "targetSearchParameterTypes",
      "valueString": "{url of custom search parameter. In case of multiple custom search parameters, url list can be comma separated.}"
    }
] 

}

Poznámka:

Pokud chcete zkontrolovat stav nebo zrušit úlohu přeindexování, potřebujete ID přeindexování. Jedná se o "id" "parameter" hodnotu odpovědi. V předchozím příkladu by ID pro úlohu přeindexování bylo 560c7c61-2c70-4c54-b86d-c53a9d29495e.

Postup kontroly stavu přeindexování úlohy

Jakmile spustíte úlohu přeindexování, můžete pomocí následujícího volání zkontrolovat stav úlohy.

GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}

Tady je příklad odpovědi.

{
    "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": "maximumConcurrency",
            "valueDecimal": 3.0
        },
        {
            "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": "queryDelayIntervalInMilliseconds",
            "valueDecimal": 500.0
        },
        {
            "name": "maximumNumberOfResourcesPerQuery",
            "valueDecimal": 100.0
        }
    ]
}

V předchozí odpovědi jsou uvedené následující informace:

  • totalResourcesToReindex: Zahrnuje celkový počet prostředků, které se v této úloze přeindexují.

  • resourcesSuccessfullyReindexed: Celkový počet prostředků, které již byly v této úloze přeindexovány.

  • progress: Přeindexovat procento dokončení úlohy. Rovná se resourcesSuccessfullyReindexed/totalResourcesToReindex x 100.

  • status: Stavy, pokud je úloha přeindexování zařazena do fronty, spuštěna, dokončena, selhala nebo zrušena.

  • resources: Zobrazí seznam všech typů prostředků ovlivněných úlohou přeindexování.

  • ResourceReindexProgressByResource (CountReindexed of Count):" Poskytuje přeindexovaný počet celkového počtu na typ prostředku. V případech, kdy je přeindexování pro určitý typ prostředku zařazeno do fronty, je zadán pouze počet.

  • SearchParams: Uvádí adresu URL parametrů hledání ovlivněných úlohou přeindexování.

Odstranění přeindexovací úlohy

Pokud potřebujete zrušit úlohu přeindexování, použijte DELETE volání a zadejte ID úlohy přeindexování.

DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}

Důležité informace o výkonu

Úloha přeindexování může být poměrně náročná na výkon. Služba FHIR nabízí ovládací prvky omezování, které vám pomůžou spravovat způsob, jakým se úloha přeindexování spouští ve vaší databázi.

Poznámka:

U velkých datových sad není neobvyklé, že se úloha přeindexování spustí po dobu dnů.

Níže je tabulka s popisem dostupných parametrů, výchozích hodnot a doporučených rozsahů pro řízení výpočetních prostředků úloh přeindexování. Pomocí těchto parametrů můžete proces urychlit (použít více výpočetních prostředků) nebo proces zpomalit (použít méně výpočetních prostředků).

Parametr Popis Výchozí Dostupný rozsah
QueryDelayIntervalInMilliseconds Zpoždění mezi jednotlivými dávkami prostředků, které se spustí během přeindexované úlohy. Menší číslo zrychluje úlohu, zatímco větší číslo ji zpomalí. 500 MS (,5 sekundy) 50 až 500000
MaximumResourcesPerQuery Maximální početprostředkůch 100 1-5000
MaximumConcurrency Počet dávek provedených najednou. 0 1-10

Pokud chcete použít některý z předchozích parametrů, můžete je předat do Parameters prostředku při odeslání počátečního POST požadavku, aby se spustila úloha přeindexování.


POST {{FHIR_URL}}/$reindex 
content-type: application/fhir+json
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "maximumConcurrency",
      "valueInteger": "3"
    },
    {
      "name": "queryDelayIntervalInMilliseconds",
      "valueInteger": "1000"
    },
    {
      "name": "maximumNumberOfResourcesPerQuery",
      "valueInteger": "1"
    }
  ]
}

Další kroky

V tomto článku jste se dozvěděli, jak provést úlohu přeindexování ve službě FHIR. Informace o definování vlastních parametrů hledání najdete v tématu

Poznámka:

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.