Reindexer¶
Reindexer on tööriist Elasticsearchi indeksitest koopiate või alamhulkade loomiseks. Reindexeri on võimalik kasutada järgnevate ülesannete teostamiseks:
Andmestikust koopia loomiseks;
Mitme andmestiku liitmiseks;
Alusandmestikust juhuslikult valitud dokumentidega alamhulga loomiseks;
Eeldefineeritud kitsenduste ehk päringute alusel andmestiku alamhulga loomiseks;
Väljade ümbernimetamiseks;
Väljade Elasticsearchi andmetüübi muutmiseks.
Loomine¶
Parameetrid¶
- description:
Reindekeerimise protsessi nimi.
- indices:
Nimekiri reindekseeritavatest Elasticsearchi indeksitest (andmestikest).
- fields:
Nimekiri uude andmestikku ülekantavatest väljadest. Vaikimisi on valitud kõik väljad.
- query:
Eeldefineeritud Elasticsearchi otsingupäring. Välja tühjaks jätmisel (juhul kui random_size parameeter on samuti väärtustamata), kantakse uude andmestikku üle kõik lähteandmestiku dokumendid.
- new_index:
Uue indeksi (andmestiku) nimi.
- random_size:
Juhusliku alamhulga suurus. Välja väärtustamisel koostatakse uus indeks (andmestik) valitud arvust juhuslikest dokumentidest. Välja väärtustamata jätmisel kantakse uude andmestikku üle kõik lähteandmestiku (või kitsendatud otsingupäringule „query“ vastavad) dokumendid.
- field_type:
Nimekiri Elasticsearchi väljatüüpidest järgnevas vormingus:
[{"field_name": "new_field_type"}]
GUI¶
Uue reindekseerimisprotsessi loomiseks navigeeri: „Tools“ -> „Reindexer“ nagu kujutatud joonisel Joonis 24.
Eduka navigatsiooni korral peaksid nägema joonisega Joonis 25 analoogset lehte, mille ülemises vasakus nurgas asub nupp nimega „Create“.
„Create“ nupule vajutamise tagajärjel avaneb uus aken pealkirjaga „New Reindexer“ nagu kujutatud joonisel Joonis 26.
Täida nõutud väljad ja vajuta nupule „Create“ akna alumises paremas nurgas (Joonis 27).
Loodud Reindexer ilmub nüüd reindekseerimisprotsesside tabelisse (Joonis 28).
API¶
Viide: http://localhost:8000/api/v1/redoc/#operation/projects_reindexer_create
Otspunkt /projects/{project_pk}/reindexer/
Näide:
curl -X POST "http://localhost:8000/api/v1/projects/1/reindexer/" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Token 8229898dccf960714a9fa22662b214005aa2b049" \
-d '{
"description": "reindex imdb reviews",
"indices": ["imdb_reviews"],
"fields": ["review_text", "doc_id"],
"new_index": "imdb_reviews_copy"
}'
Vastus:
{
"id": 81,
"url": "https://localhost:8000/api/v1/projects/1/reindexer/1/",
"author_username": "my_username",
"description": "rewindex imdb reviews",
"fields": ["review_text", "doc_id"],
"query": "{\"query\": {\"match_all\": {}}}",
"new_index": "imdb_reviews_copy",
"random_size": 0,
"field_type": [],
"task": {
"id": 153610,
"status": "created",
"progress": 0.0,
"step": "",
"errors": "[]",
"time_started": "2020-10-27T11:37:06.276108+02:00",
"last_update": null,
"time_completed": null,
"total": 0,
"num_processed": 0
}
}