2011-11-16 16 views
31

que sigo los consejos que aquí con el fin de encontrar las palabras parciales con elasticsearch:Elasticsearch siempre volviendo "tipo de asignación no se encuentra"

ElasticSearch n-gram tokenfilter not finding partial words

He creado un script bash simple que intenta ejecutar una versión de este:

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"} 
    } 
    } 
}' 

después de ejecutar este script los dos primeros comandos (Dumping productos, a continuación, establecer el índice) parece funcionar darme esta:

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

Entonces él los errores a cabo siguiendo la llamada mapeo darme esta:

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

Puede alguien ver lo que estoy haciendo mal? La búsqueda en google comienza a autocompletar "mapeo no encontrado elasticsearch", por lo que parece ser un error muy común.

+1

elasticsearch sigue siendo un proyecto joven, la documentación está creciendo, pero aún falta. Normalmente obtengo excelentes respuestas en la lista de correo, https://groups.google.com/group/elasticsearch – Andy

Respuesta

72

resulta que esto está sucediendo porque la asignación se debe aplicar al tipo:

He intentado aplicarlo a lo que no debía:

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

Se necesita ser aplicado al tipo como tal :

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

Es triste que una simple búsqueda en Google no pudo responder a esto. También la publicación anterior a la que me vinculé es muy engañosa y la respuesta es incorrecta, que también señalaré allí.

+5

Estoy contigo. Simplemente no parece ser suficiente para la búsqueda elástica. Los documentos no son lo suficientemente útiles y la búsqueda no ayuda mucho. Tuve un error con _routing y no pude encontrar ninguna respuesta en ningún lado. Tampoco probé el IRC, pero probablemente podría ayudar. – swatkins

+0

Estoy de acuerdo con usted en los documentos pero creo que esto fue un cambio reciente (cuando lo solicitó) como [anteriormente podía 'PON 'una asignación al índice e incluir el tipo de documento en la asignación JSON] (https: // groups.google.com/a/elasticsearch.com/d/msg/users/_i2sVYlCsrI/5n2tqMa-DXEJ) ... La documentación está mejorando, pero todavía no está completa. – Basic

+0

Enlace a [documentación] (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html) para referencia. – yurez

Cuestiones relacionadas