web-dev-qa-db-fra.com

Comment supprimer des types de documents dans elasticsearch?

Je crée un index "myindex" avec un type de document spécifié "mytype". Je suis en mesure de supprimer l'index, mais il semble que "mytype" existe toujours sans être lié à l'index. 

Comment puis-je me débarrasser de "mytype"?

15
Rolando

Si vous avez vraiment supprimé l'index, le mappage dans cet index ne devrait plus exister ..__ Avez-vous un autre index dans votre cluster avec un nom de type similaire?

Pour répondre à la question: How to delete document types in elasticsearch?, utilisez Delete Mapping API :

curl -XDELETE http://localhost:9200/index/type

EDIT: à partir d'elasticsearch 2.0, ce ne sera plus possible. Voir Modifications de mappage . Vous devrez installer le plugin Delete By Query et lancer une requête qui supprimera vos documents, mais le mappage existera toujours. Il sera donc probablement préférable de réindexer vos documents dans un autre index sans l'ancien type.

Mais, comme @mguillemin et @javanna l'ont dit, lorsque vous supprimez un index, chaque mappage attaché à cet index est également supprimé:

curl -XDELETE http://localhost:9200/index
42
dadoonet

Vous pouvez utiliser _delete_by_query chemin pour supprimer le type.

POST index-name/type-name/_delete_by_query
{
    "query": { 
        "match": {
            "message": "some message"
        }
    }
}
5
yabaiwebyasan

Dans la dernière version de la recherche élastique, ils ne prennent plus en charge la suppression de types de document. C'est mentionné dans la documentation

Il n'est plus possible de supprimer le mappage pour un type. Au lieu de cela vous devrait supprimer l’index et le recréer avec les nouveaux mappages.

3
bhargav reddy

Vous n'avez même pas besoin de spécifier le corps de la demande. Juste

curl -XPOST http://<Host>:9200/<index>/<type>/_delete_by_query
2
wizawu