在字段ElasticSearch 6.4.3上未声明类型关键字的处理程序

时间:2018-12-02 07:43:07

标签: elasticsearch go

我想知道是什么原因。这是代码

package main

import (
    "context"
    "errors"
    "fmt"
    "time"

    "github.com/olivere/elastic"
)

const (
    indexName    = "applications"
    docType      = "log"
    appName      = "myApp"
    indexMapping = `{
        "mappings" : {
            "log" : {
                "properties" : {
                    "app" : { "type" : "keyword" },
                    "message" : { "type" : "keyowrd" },
                    "time" : { "type" : "date" }
                }
            }
        }
    }`
)

type Log struct {
    App     string    `json:"app"`
    Message string    `json:"message"`
    Time    time.Time `json:"time"`
}

func main() {

    client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200"))

    if err != nil {
        panic(err)
    }

    err = createIndexWithLogs(client)
    if err != nil {
        panic(err)
    }

    // err = findAndPrintAppLogs(client)
    // if err != nil {
    //  panic(err)
    // }

}

我收到一个错误,在Field ElasticSearch 6.4.3上声明了Type关键字没有处理程序。根据我得到的信息,ES 6.4.3应该使用type关键字。我不知道我的代码无法正常工作。

有人知道错误在哪里吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您在"keyword"字段中将"keyowrd"拼写为"message"。更正如下:

{
        "mappings" : {
            "log" : {
                "properties" : {
                    "app" : { "type" : "keyword" },
                    "message" : { "type" : "keyword" },
                    "time" : { "type" : "date" }
                }
            }
        }
    }