当前位置:  开发笔记 > 编程语言 > 正文

Elasticsearch始终返回"映射类型丢失"

如何解决《Elasticsearch始终返回"映射类型丢失"》经验,为你挑选了1个好方法。

我遵循这里给出的建议,以便使用elasticsearch查找部分单词:

ElasticSearch n-gram tokenfilter没有找到部分单词

我创建了一个简单的bash脚本,试图运行这个版本:

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

运行此脚本后,前两个命令(转储产品,然后设置索引)似乎可以解决这个问题:

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

然后它在映射调用后出错,给我这个:

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

谁能看到我做错了什么?搜索谷歌开始自动填充"映射未找到弹性搜索",所以它似乎是一个非常常见的错误.



1> Travis..:

事实证明这种情况正在发生,因为映射需要应用于类型:

我尝试将它应用于错误的事情:

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

它需要应用于这样的类型:

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

令人遗憾的是,简单的谷歌搜索无法回答这个问题.我之前链接的帖子也是非常误导,答案是错误的,我也会在那里指出.


我和你在一起.弹性搜索似乎没有足够的东西.文档不够有用,搜索也没有多大帮助.我在_routing时遇到错误,无法在任何地方找到任何答案.我也没有尝试过IRC,但它可能会有所帮助.
推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有