58 lines
1.8 KiB
Bash
58 lines
1.8 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "Creating Elasticsearch indexes, roles, and users..."
|
|
|
|
# Command to create the "plans" index
|
|
curl -XPUT "http://localhost:9200/opencdmp-plans-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
|
|
"settings": {
|
|
"number_of_shards": 1,
|
|
"number_of_replicas": 1
|
|
},
|
|
"mappings": {
|
|
"properties": {
|
|
"title": { "type": "text" },
|
|
"description": { "type": "text" },
|
|
"price": { "type": "float" },
|
|
"date_added": { "type": "date" }
|
|
}
|
|
}
|
|
}' || { echo "Failed to create the 'plans' index"; exit 1; }
|
|
|
|
# Command to create the "descriptions" index
|
|
curl -XPUT "http://localhost:9200/opencdmp-descriptions-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
|
|
"settings": {
|
|
"number_of_shards": 1,
|
|
"number_of_replicas": 1
|
|
},
|
|
"mappings": {
|
|
"properties": {
|
|
"product_id": { "type": "keyword" },
|
|
"description_text": { "type": "text" },
|
|
"language": { "type": "keyword" }
|
|
}
|
|
}
|
|
}' || { echo "Failed to create the 'descriptions' index"; exit 1; }
|
|
|
|
# Command to create the role
|
|
curl -XPOST "localhost:9200/_security/role/opencdmp-api-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
|
|
"indices": [
|
|
{
|
|
"names": [ "opencdmp-plans-test", "opencdmp-descriptions-test" ],
|
|
"privileges": [ "all" ]
|
|
}
|
|
]
|
|
}' || { echo "Failed to create the role"; exit 1; }
|
|
|
|
# Command to create the user
|
|
curl -XPOST "localhost:9200/_security/user/opencdmp-api-test?pretty" -u elastic:elastic -H 'Content-Type: application/json' -d '
|
|
{
|
|
"password" : "opencdmp",
|
|
"roles" : [ "opencdmp-api-test" ]
|
|
}' || { echo "Failed to create the user"; exit 1; }
|
|
|
|
# Install the analysis-icu plugin
|
|
elasticsearch-plugin install analysis-icu || { echo "Failed to install the analysis-icu plugin"; exit 1; }
|
|
|
|
echo "Initialization complete."
|