我想使用动态模板创建索引并关闭对字符串字段的分析。我已经创建了用于 flex 搜索的查询,但是如何将其转换为elastic4s语句? (建议使用elastic4s 1.3.x版)
该语句是:
PUT /myIndex
{
"mappings": {
"myType": {
"dynamic_templates": [
{
"templateName": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"index" : "not_analyzed",
"omit_norms" : true
}
}
}
]
}}}
P.S.
可能可以通过执行此“原始”请求来创建此索引,但是我没有找到如何使用elastic4s 1.3.4来做到这一点:(
最佳答案
创建索引时,Elastic4s(自1.5.4起)支持动态模板。因此,您可以执行以下操作:
val req = create.index("my_index").mappings(
"my_type" templates (
template name "es" matching "*_es" matchMappingType "string" mapping {
field withType StringType analyzer SpanishLanguageAnalyzer
},
template name "en" matching "*" matchMappingType "string" mapping {
field withType StringType analyzer EnglishLanguageAnalyzer
}
)
)
因此,与您发布的示例等效:
create.index("my_index").mappings(
"my_type" templates (
template name "templateName" matching "*" matchMappingType "string" mapping {
field typed StringType index NotAnalyzed omitNorms true
}
)