【发布时间】:2020-01-30 18:25:07
【问题描述】:
我必须使用 elastic4s 创建一个像这样的 ElasticSearch 映射:
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "text",
"analyzer": "ngram_analyzer",
"fielddata": true
},
"lang": {
"type": "keyword"
},
"order": {
"type": "long"
},
"active": {
"type": "boolean"
}
"description": {
"type": "text"
}
}
}
我可以的
def mapping: Option[MappingDefinition] =
Some(
properties(
KeywordField("id"),
KeywordField("lang"),
BasicField("order", "long"),
BasicField("active", "boolean"),
TextField("description")
)
)
用于 id、lang、order、active 和 description。
但是,我怎样才能为name 做这样的映射。问题在于其中的analyzer 和fielddata。
【问题讨论】:
-
一些例子可以找到here
-
@Val,但它们看起来不像我的示例
-
你试过
TextField("name").fielddata(true).analyzer("ngram_analyzer")吗? -
@Val,它没有用。很可能,因为您必须描述“ngram”分析器。现在的问题是如何描述分析器)
-
当然,您需要在设置部分执行此操作(即创建您的分析仪)。但是尝试改用
standard,你会发现它应该可以工作。
标签: scala elasticsearch mapping elastic4s