ElasticSearch 排序给出 fielddata 错误
ElasticSearch sort gives fielddata error
我正在使用 Firebase 手电筒查询我的 Firebase 数据库,但我无法对结果进行排序。
我正在使用这个查询:
this.elasticConfig = {
type: 'guest',
body: {
from: 0,
size: 20,
query: {
bool: {
must: [
{
match: {
isApproved: false
}
},
{
match: {
isCheckedIn: false
}
},
{
match: {
eventId: event.id
}
}
]
}
},
sort: [
{
name: {
order: 'asc'
}
}
]
}
};
但是我从 elasticsearch 得到这个错误:
Fielddata is disabled on text fields by default. Set fielddata=true on [name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.
我觉得很奇怪,一个简单的字母排序操作需要您使用 "significant memory"。
我在查询中遗漏了什么吗?或者我还能做些什么来让它发挥作用?
如果这是 ES 5 并且该字段已由 Elasticsearch 自动映射,请尝试对 name.keyword
进行排序。否则,您需要将 name
字段设置为 keyword
类型或向其添加 keyword
子字段以在 name.keyword
上进行搜索,当然,还需要将子字段设置为keyword
.
类型
我正在使用 Firebase 手电筒查询我的 Firebase 数据库,但我无法对结果进行排序。
我正在使用这个查询:
this.elasticConfig = {
type: 'guest',
body: {
from: 0,
size: 20,
query: {
bool: {
must: [
{
match: {
isApproved: false
}
},
{
match: {
isCheckedIn: false
}
},
{
match: {
eventId: event.id
}
}
]
}
},
sort: [
{
name: {
order: 'asc'
}
}
]
}
};
但是我从 elasticsearch 得到这个错误:
Fielddata is disabled on text fields by default. Set fielddata=true on [name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.
我觉得很奇怪,一个简单的字母排序操作需要您使用 "significant memory"。
我在查询中遗漏了什么吗?或者我还能做些什么来让它发挥作用?
如果这是 ES 5 并且该字段已由 Elasticsearch 自动映射,请尝试对 name.keyword
进行排序。否则,您需要将 name
字段设置为 keyword
类型或向其添加 keyword
子字段以在 name.keyword
上进行搜索,当然,还需要将子字段设置为keyword
.