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

我遵循此处给出的建议,以便使用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搜索无法回答这个问题。另外,我链接到的上一篇文章非常容易引起误解,答案是错误的,我也会在那指出。

以上是 Elasticsearch总是返回“映射类型丢失” 的全部内容, 来源链接: utcz.com/qa/422541.html

回到顶部