J'ai installé les conteneurs Docker pour Elasticsearch 5.5.2 et Kibana. J'ai commencé à en apprendre davantage sur les types de cartographie, et créé un index avec le code suivant par xcurl:Echec du mappage de base Elasticsearch
{
"mappings": {
"user": {
"_all": { "enabled": false },
"properties": {
"title": { "type": "text" },
"name": { "type": "text" },
"age": { "type": "integer" }
}
}
}
L'indice a été créé avec succès et j'ai décidé d'insérer des données. Lorsque j'essaie d'ajouter une chaîne dans un champ entier i.e. {"age": "hello"}
, Elastic affiche une erreur (cela signifie que les mappages fonctionnent correctement). Le problème est avec d'autres types de données:
1.Il accepte les entiers et les flottants dans les champs de chaînes (je pense que cela pourrait être dû aux lancers implicites).
2.It accepte comme flotteurs 22.4
dans le domaine age
(quand je recherche avec Kibana ou xcurl le contenu du champ age
est représenté comme flottant et non comme un entier, cela signifie ne pas faire est de moulages à flotteur entier)
Qu'est-ce que je fais de mal?
Pouvez-vous nous dire comment vous insérez les documents? – aclokay
Pour la première partie de votre question; '22.2' est une chaîne parfaitement valide. Les chaînes ne sont pas des lettres ordinaires, ça peut être n'importe quoi. La différence est qu'un champ 'text' est analysé et segmenté différemment des autres champs. – MatsLindh
@aclokay 'curl -XPOST localhost: 9200/mon_index/utilisateur -d '{" title ":" Un titre "," nom ":" nom d'utilisateur "," age ": 223.5}'' et renvoie '{ "_index": "my_index", "_type": "user", "_id": "AV4JO3pZh8gyIWsivJ6d", "_version": 1, "résultat": "créé", "_Les éclats": { " total »: 2, "succès": 1, "a échoué": 0} , "créé": true} ' – Marco