【发布时间】:2018-08-08 10:09:06
【问题描述】:
我曾尝试在索引中插入以下映射以支持搜索功能。
索引设置:
url: PUT http:/localhost:9200/indexname
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": ["lowercase"]
}
}
}
}
}
映射:
url: PUT http:/localhost:9200/indexname/typename/_mapping
{
"org-5-table": {
"properties": {
"GroupName": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"Createdby": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"GroupUser": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"UpdatedDateTime": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"GroupMessage": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"CreatedDateTime": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"GroupId": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
},
"status": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
},
"lowcase": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
}
}
}
当我尝试通过浏览器映射插入时,它被正确插入,但是当我通过 elasticsearch java api 尝试时,我正在关注异常
Elasticsearch exception [type=illegal_argument_exception, reason=unknown setting [index.settings.analysis.normalizer.my_normalizer.filter] please check that any required plugins are installed, or check the breaking changes documentation for removed settings]
这是我正在使用的代码
CreateIndexRequest createIndexRequest = new CreateIndexRequest(indexName);
createIndexRequest.settings(settings.toString(), XContentType.JSON);
createIndexRequest.mapping(typeName, mapping.toString(),XContentType.JSON);
client.indices().create(createIndexRequest, header).isAcknowledged()
弹性搜索 6.1.2.
非常感谢任何帮助。
【问题讨论】:
-
您使用的是哪个版本的 Java 客户端 API?莫非你用的不是6.1.2版本?
-
我使用的是客户端 6.2.1,如果我使用客户端 6.1.2,我无法找到用于在 client.indices().create(createIndexRequest, header).isAcknowledged 中创建映射的创建方法()
-
你能推荐任何替代方案吗
标签: java elasticsearch mapping normalization lowercase