Elasticsearch revient toujours "le type de mapping est absent"

je suis le conseil donné ici afin de trouver des mots partiels avec elasticsearch:

ElasticSearch n-gramme tokenfilter de ne pas trouver de mots partiels

j'ai créé un script bash simple qui tente d'exécuter une version de ceci:

curl -XDELETE 10.160.86.134:9200/products
curl -XPOST 10.160.86.134:9200/products -d '{
  "index": {
    "number_of_shards": 1,
    "analysis": {
       "filter": {
         "mynGram" : {"type": "nGram", "min_gram": 2, "max_gram": 10}
       },
       "analyzer": {
         "a1" : {
           "type":"custom",
           "tokenizer": "standard",
           "filter": ["lowercase", "mynGram"]
         }
       }
     }
    }
  }
}'

curl -XPUT 10.160.86.134:9200/products/_mapping -d '{
  "product" : {
    "index_analyzer" : "a1",
    "search_analyzer" : "standard",
    "properties" : {
      "product_description": {"type":"string"},
      "product_name": {"type":"string"}
    }
  }
}'

après avoir exécuté ce script, les deux premières commandes (dumping products, puis setting the index) semblent fonctionner en me donnant ceci:

{"ok":true,"acknowledged":true}
{"ok":true,"acknowledged":true}

puis il se trompe en suivant l'appel de mapping me donnant ceci:

{"error":"ActionRequestValidationException[Validation Failed: 1: mapping type is missing;]","status":500}

est-ce que quelqu'un peut voir ce que je fais de mal? La recherche google commence autocompleting "mapping pas trouvé elasticsearch" donc il semble être une erreur très commune.

32
demandé sur Community 2011-11-17 03:31:28

2 réponses

S'avère que cela se produit parce que la cartographie doit être appliquée au type:

j'ai essayé de l'appliquer à la mauvaise chose:

curl -XPUT 10.160.86.134:9200/products/_mapping -d '{

il doit être appliqué au type comme ainsi:

curl -XPUT 10.160.86.134:9200/products/product/_mapping -d '{

c'est triste qu'une simple recherche sur google n'ait pas pu répondre à cette question. Aussi le post précédent, j'ai lié est très trompeuse et la réponse est fausse, je vais souligner.

77
répondu Travis 2011-11-17 01:09:22

mapping pour l'index est possible dans Elastic search. J'ai essayé avec la dernière version de Elastic search 1.7.3 et j'ai pu régler la correspondance avec succès à l'index.

j'ai essayé le suivant,

2
répondu Thamizharasu 2015-11-07 11:43:48