我需要在ElasticSearch中添加对象的答案

33qvvth1  于 2023-01-08  发布在  ElasticSearch
关注(0)|答案(1)|浏览(122)
fun create(creator: Creator): Map<String, Any?> {
    return mutableMapOf(
        SearchFieldNames.WEBSITE to creator.getWebsite(),
        SearchFieldNames.WEBSITES to websiteOf(creator.getWebsites())
    )

}

private fun websiteOf(websites: List<WebSite>?): List<MutableMap<String, Any>> {
    return websites?.map {it ->
        mutableMapOf(
            SearchFieldNames.WEB_TYPE to it.webType.name,
            SearchFieldNames.URL to it.url,
        )
    }!!
}

我想在ElasticSearch中添加网站对象字段,所以我为添加字段和添加列表做了一个创建方法
但是发生了这个错误
Elasticsearch异常[类型=mapper_parser_exception,原因=无法解析ID为“999999998”的文档中类型为[关键字]的字段[网站]。预览字段值:“{网页类型=ETC,网址= naver.com}”]
首先,我做了一个创建方法,使一个Map,然后,我做了一个websiteOf方法的网站对象添加Map,但..它发生了错误..
第一个月
你有什么好主意吗?这是第一次使用ElasticSearch,所以我需要你的帮助,现在我找不到解决方案..

8mmmxcuj

8mmmxcuj1#

由于websites的当前类型为keyword,因此无法将map放入字段。
您需要在索引Map中将websites定义为object field

PUT index-name
{
  "mappings": {
    "properties": { 
      "websites": { 
        "properties": {
          "webType":  { "type": "keyword" },
          "url":  { "type": "keyword" },
        }
      }
    }
  }
}

相关问题