Čam*_*amo 4 database nosql elasticsearch
有人可以告诉我如何为所有文本字段设置 fielddata 为真。我需要根据它们进行排序,它会抛出一个错误Fielddata 默认情况下在文本字段上被禁用这里是一块映射,其中街道或城市是文本字段,它会引发我这个错误。
"address": {
"properties": {
"city": {
"type": "text",
"boost": 5,
"analyzer": "suggestion"
},
"zip": {
"type": "text"
},
"street": {
"type": "text",
"boost": 7,
"analyzer": "suggestion"
}
Run Code Online (Sandbox Code Playgroud)
为此,您需要更新您的字段的映射,您可以使用 elasticsearch 的放置映射 API。
PUT yourindexName/_mapping/_doc
{
"properties": {
"yourfield": {
"type": "text",
"fielddata": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
尽管不建议在文本字段上启用 fielddata,因为它们会消耗大量堆空间。
我建议您通过此链接详细解释其背后的基本原理。弹性搜索字段数据
或者,您也可以为您的字段尝试以下映射:
"yourfield": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
Run Code Online (Sandbox Code Playgroud)
而不是纯文本...我希望它可以满足您的目的。
快乐编码:)