support query not multi does cutoff_frequency elasticsearch javascript

query - phrase elasticsearch



elasticsearch: crea índices con mapeos usando javascript (4)

Intento crear un índice elasticsearch con asignaciones utilizando el cliente oficial de JavaScript.

Mi código es el siguiente:

client.indices.create({ index: "aName", "mappings": { "aType": { "properties": { "aProp1": { "type": "string", "index": "not_analyzed" }, "aProp2": { "type": "string", "index": "not_analyzed" }, "aProp3": { "type": "string", "index": "not_analyzed" }, "aProp4": { "type": "string", "index": "not_analyzed" } } } } }, function(err,resp,respcode){ console.log(err,resp,respcode); });

Sin embargo ... el índice se crea pero sin las asignaciones ... La salida es:

undefined { ok: true, acknowledged: true } 200

¿Qué estoy haciendo mal?


Intenté lo mismo pero obtuve el error del nombre del índice. aName no es válido, el error fue sobre el uso del nombre de índice en minúsculas. Luego creó con asignaciones.

it.only(''putMapping'', function (done) { client.indices.create({ index: "aname", body: { "mappings": { "aType": { "properties": { "aProp1": {"type": "string", "index": "not_analyzed"}, "aProp2": {"type": "string", "index": "not_analyzed"}, "aProp3": {"type": "string", "index": "not_analyzed"}, "aProp4": {"type": "string", "index": "not_analyzed"} } } } } }, function (err, resp, respcode) { console.log(err, resp, respcode); }); })

Salida:

Elasticsearch DEBUG: 2015-08-08T15:23:09Z starting request { method: ''POST'', path: ''/aname'', body: { mappings: { aType: [Object] } }, query: {} } Elasticsearch TRACE: 2015-08-08T15:23:10Z -> POST http://localhost:9200/aname { "mappings": { "aType": { "properties": { "aProp1": { "type": "string", "index": "not_analyzed" }, "aProp2": { "type": "string", "index": "not_analyzed" }, "aProp3": { "type": "string", "index": "not_analyzed" }, "aProp4": { "type": "string", "index": "not_analyzed" } } } } } <- 200 { "acknowledged": true }


Ninguno de estos ejemplos me funcionó en ElasticSearch 5.3 API.

Aquí hay un ejemplo que funciona para 5.3.

elasticClient.indices.putMapping({ index: indexName, type: "document", body: { properties: { title: { type: "string" }, content: { type: "string" }, suggest: { type: "completion", analyzer: "simple", search_analyzer: "simple", payloads: true } } } })

Tenga en cuenta que el tipo ha sido extraído del cuerpo, y que solo los subparámetros que estaban debajo del tipo están ahora en el cuerpo.

Fuente: https://blog.raananweber.com/2015/11/24/simple-autocomplete-with-elasticsearch-and-node-js/


Refina la respuesta que está en el comentario anterior de Sander Spilleman. La propiedad "mapeos" debe estar dentro de la propiedad "cuerpo". También estoy usando el cliente de Javascript 1.3.0 y los documentos aún no están actualizados con un ejemplo.

Agregando un ejemplo que funcionó para mí con la API de JavaScript proporcionada por elasticsearch en NPM 1.3.0

var body = { tweet:{ properties:{ tag : {"type" : "string", "index" : "not_analyzed"}, type : {"type" : "string", "index" : "not_analyzed"}, namespace : {"type" : "string", "index" : "not_analyzed"}, tid : {"type" : "string", "index" : "not_analyzed"} } } } client.indices.putMapping({index:"tweets", type:"tweet", body:body});


Solo agregue el cuerpo alrededor de las asignaciones:

client.indices.create({ index: "aName", body: { "mappings": { "aType": { "properties": { "aProp1": { "type": "string", "index": "not_analyzed" }, "aProp2": { "type": "string", "index": "not_analyzed" }, "aProp3": { "type": "string", "index": "not_analyzed" }, "aProp4": { "type": "string", "index": "not_analyzed" } } } } } }, function (err, resp, respcode) { console.log(err, resp, respcode); });