有人可以告诉我如何为所有文本字段设置true。我需要根据它们进行排序,这会引发一个错误默认情况下,文本字段上的字段数据是禁用的。这是一段映射,其中街道或城市是文本字段,这会引发我这个错误。
"address": {
"properties": {
"city": {
"type": "text",
"boost": 5,
"analyzer": "suggestion"
},
"zip": {
"type": "text"
},
"street": {
"type": "text",
"boost": 7,
"analyzer": "suggestion"
}
答案 0 :(得分:1)
为此,您需要更新字段的映射才能使用 elasticsearch的put映射API。
PUT yourindexName/_mapping/_doc
{
"properties": {
"yourfield": {
"type": "text",
"fielddata": true
}
}
}
尽管不建议在文本字段上启用字段数据,因为它们会占用大量堆空间。
我建议您通过此链接详细解释其背后的原理。 elasticsearch fielddata
或者,您也可以尝试使用以下字段映射:
"yourfield": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
不是纯文本,而是希望它能满足您的目的。
快乐编码:)