当前位置: 首页 > 面试题库 >

Elasticsearch总是返回“映射类型丢失”

糜征
2023-03-14
问题内容

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

ElasticSearchn-gram令牌过滤器未找到部分单词

我创建了一个简单的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}

有人可以看到我在做什么吗?搜索谷歌开始自动完成“映射未找到elasticsearch”,所以这似乎是一个非常常见的错误。


问题答案:

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

我尝试将其应用于错误的事物:

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

需要将其应用于以下类型:

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

遗憾的是,一个简单的Google搜索无法回答这个问题。另外,我链接到的上一篇文章非常容易引起误解,答案是错误的,我也会在那指出。



 类似资料:
  • 问题内容: 我的映射: 当我搜寻 要么 我的点击数是0;但是,当我将order_id更改为1016081511482088 7时 ,我获得了成功。但是,返回的JSON ES显示: 我搜索了10160815114820888->没有结果 我搜索了1016081511482088 7- >结果是1016081511482088 8 我在官方文档中找到了long类型: 我的数据不超过2 ^ 63-1 那

  • 类型映射 web3j中使用的原生Java到ABI类型映射如下: boolean -> bool BigInteger -> uint/int byte[] -> bytes String -> string and address types List<> -> dynamic/static array BigInteger类型必须用于数字类型,因为Ethereum以太坊中的数字类型是256位整数

  • 我正在寻找一种映射函数,它的功能类似于: 这意味着,当强制转换为时,它返回类型为的对象。 这样的功能存在吗?

  • 问题内容: 我的映射: 当我搜寻 要么 我的点击数是0;但是,当我将order_id更改为1016081511482088 7时 ,我获得了成功。但是,返回的JSON ES显示: 我搜索了10160815114820888->没有结果 我搜索了1016081511482088 7- >结果是1016081511482088 8 我在官方文档中找到了long类型: 我的数据不超过2 ^ 63-1 那

  • 问题内容: 我想将查询发送给ELS,该查询仅返回总点击数。 没有别的 就像我得到回应一样 我只想打印731552 现在我只发送: 卷曲http:// server:9200 / games_profilder / _search 谢谢 问题答案: 您可以为此使用响应过滤: 这将产生 如果您真的只想得到总数,则可以使用以下方法传递结果: 那只会产生数字

  • 主要内容:映射类型,动态映射,映射参数映射是存储在索引中的文档的大纲。它定义数据类型,如或文档和规则中存在的字段的字符串和格式,以控制动态添加的字段的映射。 例如, 请求正文 响应 字段数据类型 Elasticsearch支持文档中字段的多种不同数据类型。以下数据类型用于在Elasticsearch中存储字段 - 核心数据类型 - 这些是几乎所有系统支持的基本数据类型,如整数,长整数,双精度,短整型,字节,双精度,浮点型,字符串,日期