sql >> Database >  >> RDS >> Database

Gegevens verwijderen uit Elastisearch

Een van de unieke ontwerpkenmerken van Elasticsearch is dat, in tegenstelling tot de meeste traditionele systemen of databases, alle taken zoals verbinding maken met en manipuleren van Elasticsearch worden uitgevoerd met behulp van een REST API , wat betekent dat bijna elke query of opdracht die op uw Elasticsearch-knooppunt wordt uitgevoerd, een eenvoudig HTTP-verzoek is naar een bepaalde URL.

Afhankelijk van het HTTP verb verzonden en de URL waarnaar het werkwoord wordt verzonden, kan Elasticsearch een grote verscheidenheid aan acties uitvoeren op het knooppunt of zelfs op het cluster.

De Elasticsearch REST API URL-structuur

Op het meest basale niveau, om een ​​opdracht in Elasticsearch uit te voeren, moet u een HTTP-werkwoord naar de URL van uw Elasticsearch-knooppunt sturen. Voor ontwikkeling is dit meestal localhost:9200 .

In de meeste gevallen is de eenvoudigste methode voor het verzenden van een verzoek naar de REST API van Elasticsearch via de handige opdrachtregeltool, cURL , een eenvoudig hulpmiddel dat wordt gebruikt om bijna alle soorten internetgegevens over te dragen.

Om bijvoorbeeld alle indices weer te geven , kunt u de volgende curl uitvoeren commando vanaf de shell-prompt van uw ontwikkelserver (zoals aangegeven in de officiële documentatie:

$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size

Hier hebben we toegang tot de cat API (aangegeven door de leidende _ underscore) en het bekijken van de indices , die een doorsnede toont van elke index in het cluster.

Indices, typen, documenten en eigenschappen

Met een voorbeeld op zijn plaats kunnen we de specifieke structuur van Elasticsearch REST API's nader onderzoeken, die meestal uit drie gestructureerde componenten zullen bestaan, de index , het type , en het document :

localhost:9200/index/type/document

De index is de bovenliggende structuur en wordt het eenvoudigst gezien als een database die veel types herbergt . En index kan elk concept vertegenwoordigen, maar zal vaak een heel systeem van componenten vertegenwoordigen, zoals een shop of een bookstore .

Types zijn opgenomen in een index en zijn vergelijkbaar met database tables , met elk type die een verzameling van vergelijkbare objecten vertegenwoordigen (zoals shirt of book ).

Ten slotte, het document is een enkele instantie of representatie van een object van het bovenliggende type . Het boek "The Hobbit" kan dus bestaan ​​als een boek type in de index genaamd boekhandel .

Gegevens verwijderen uit Elasticsearch

Nu de standaard REST API-syntaxis uit de weg is, kunnen we onderzoeken hoe we specifieke acties kunnen uitvoeren, zoals het verwijderen van gegevens.

Een enkel document verwijderen

Als we onze basissyntaxis nemen zoals hierboven te zien is, moeten we curl . gebruiken en stuur de DELETE HTTP-werkwoord, met behulp van de -XDELETE optie:

$ curl -XDELETE 'localhost:9200/index/type/document'

Om bijvoorbeeld ons eerder genoemde boek document . te verwijderen , kunnen we het volgende commando gebruiken:

$ curl -XDELETE 'localhost:9200/bookstore/book/1'

Hiermee wordt het document verwijderd met een ID van 1 uit het book type dat is binnen de bookstore index .

Een type verwijderen

Zoals je misschien al vermoedt, kunnen we een volledig type verwijderen, omdat de syntaxis slechts iets breder wordt. . Hier verwijderen we het book type :

$ curl -XDELETE 'localhost:9200/bookstore/book'

Een index verwijderen

Ten slotte, als we een hele index willen verwijderen , dit kan met dezelfde syntaxis als voorheen:

$ curl -XDELETE 'localhost:9200/bookstore'

  1. MySQL vs MongoDB 1000 leest

  2. Getallen opmaken met komma's in SQL Server

  3. Is COUNT(rowid) sneller dan COUNT(*)?

  4. Oracle Sequentietrigger maken