Ich arbeite gerade an einem Projekt, wo unsere Hauptdatenbank ist mongodb und für die Suche verwenden wir elasticsearch. Wir haben Daten in mongodb durch eine Java-Anwendung eingefügt. Und wir verwendeten das River-Plugin, um Daten zu synchronisieren. Bisher haben wir die Daten zwischen mongodb und elasticsearch manuell durch Ausführen der unten genannten Shellscript-Dateien synchronisiert. (Setup.sh & & bash.sh)Automate mongodb und elasticsearch sync
//setup.sh
curl -XPOST http://localhost:9200/classdata -d @setup.json
//setup.json
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"classdata": {
"properties": {
"className": {
"type": "string"
},
"jarID": {
"index": "not_analyzed",
"type": "string"
},
"jarFileName": {
"index": "not_analyzed",
"type": "string"
},
"dependencies": {
"properties": {
"methodSignature": {
"type": "string"
},
"dependedntClass": {
"type": "string"
}
}
}
}
}
}
}
//bash.sh
curl -XPUT "localhost:9200/_river/classdata/_meta" -d '
{
"type": "mongodb",
"mongodb": {
"servers": [
{ "host": "127.0.0.1", "port": 27017 }
],
"options": { "secondary_read_preference": true },
"db": "E",
"collection": "ClassData"
},
"index": {
"name": "classdata",
"type": "classdata"
}
}'
Aber jetzt unsere Anforderung geändert hat. Jetzt müssen wir den Prozess automatisieren, nachdem wir Daten in mongodb eingefügt haben, müssen wir automatisch Daten zwischen elasticsearch und mongodb synchronisieren. Ich habe keine Ahnung, wie das geht. Wenn jemand diesen Prozess automatisieren kann, bitte hilf mir.
Warum Sie keine Methode erstellen, diese sh-Dateien von Ihrem Java-Programm auszuführen, nach dem Einfügen Ihre Daten in Mongodb? –
Das ist nicht möglich Ich denke, dass jedes Betriebssystem die Ausführung von Shellscript-Dateien nicht unterstützt, richtig? –