我目前在使用弹性搜索时遇到问题。当我尝试执行搜索并且只希望返回字段的子集时,如果字段是嵌套的,我需要使用点表示法指定字段。这是我的映射器 json 文档的示例,它映射了我的 couchDB 文档:
{
"product": {
"_type": {"store": "yes"},
"_source": {"compress": true},
"index_analyzer": "standard",
"search_analyzer": "standard",
"dynamic_date_formats": ["date_time_no_millis", "date_optional_time"],
"properties": {
"_id": {"type": "string", "store": "yes", "index": "not_analyzed"},
"key": {"type": "string", "store": "yes"},
"content": {
"type": "object",
"path": "just_name",
"properties": {
"key": {"type": "string", "store": "yes"},
"name": {"type": "string", "store": "yes", "index_name": "name"},
"description": {"type": "string", "store": "yes", "index_name": "description"},
"brand": {
"type": "object",
"index_name": "brand",
"properties": {
"abbreviation": {"type": "string", "store": "yes", "index_name": "brand_abbreviation"},
"name": {"type": "string", "store": "yes", "index_name": "brand_name"}
}
}
}
}
}
}
}
引用 _id 只是一个简单的 _id,但如果我想在内容中引用 name,我必须将其称为 content.name。这样做的问题是,当搜索输出输出时,json 输出包含字段名称为:“content.name”。
是否可以将其重命名为“名称”而没有“内容”。字首?您可以看到,我尝试指定 index_name,但这似乎没用。