如何启用嵌套映射?

时间:2019-09-05 22:28:03

标签: elasticsearch elasticsearch-mapping

使用ES 6,并且无法正确设置我的映射。 我有这个文件:

09-06 01:23:09.141 8469-8469/org.tensorflow.demo A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x58 in tid 8469 (tensorflow.demo)

我的映射:

{
    "_index": "entries_1",
    "_type": "elasticsearch-record",
    "_id": "3684",
    "_score": 5.355921,
    "_source": {
            "title": "My Title",
            "result": {
            "autor": [
                "fernando-fernandes"
            ]
        }
    }
}

而且我无法以此查询{ "craft-entries_1": { "mappings": { "elasticsearch-record": { "properties": { "result": { "type": "nested", "enabled": false } } } } } }

results.autor

我已经尝试过将其放置,但是似乎对映射没有任何影响,即使再次查询后我的映射仍然显示为{ "query": { "bool" : { "must" : [ { "term": { "result.autor": "fernando-fernandes" } } ] } } } ,也许我应该将其映射为对象?

enabled:false

我缺少什么?

1 个答案:

答案 0 :(得分:0)

根据您的映射,您的源文档设计不正确,应该是这样的:

Navigator.push(context,MaterialPageRoute(builder: 
 (context) => Home(userRole: role)),
 ModalRoute.withName('/home'));

由于{ "title": "My Title", "result": [ { "autor": "fernando-fernandes" } ] } 是嵌套的,因此应将其建模为内部包含元素的数组。

因此,删除索引,并使用以下映射重新创建索引(您需要删除result,因为这仅适用于enabled: false类型)

object

最后,按照我在上面显示的那样索引您的文档,然后您的查询将起作用。