是否可以仅在elasticsearch
?
示例:
$ curl -XPUT 'http://localhost:9200/test/item/1' -d '
{
"record": {
"city": "London",
"contact": "Some person name"
}
}
$ curl -XPUT 'http://localhost:9200/test/item/2' -d '
{
"record": {
"city": "London",
"contact": { "phone": "some-phone-number", "name": "Other person's name" }
}
}
$ curl -XPUT 'http://localhost:9200/test/item/3' -d '
{
"record": {
"city": "Oslo",
"headquarters": { "phone": "some-other-phone-number",
"address": "some address" }
}
}
我只想要搜索城市名称,我希望留下未编入索引且完全随意的对象的所有剩余部分。例如,某些字段可以从对象更改其类型。 是否可以编写允许这种行为的映射?
更新
我的最终解决方案如下:
{
"test": {
"dynamic": "false",
"properties": {
"name": {
"type": "string"
}
}
}
}
我在映射的最低层添加“dynamic”:“false”,它按预期工作。
答案 0 :(得分:3)
您可以通过禁用整个类型或内部对象记录的动态映射来实现此目的:
"mappings": {
"doc": {
"properties": {
"record": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"dynamic": false
}
}
}
}