我正在进行一个简单的查询,包含多个字段,并尝试根据给定文档的天数来应用衰减函数。我的尝试是以下查询:
{
query: {
function_score:{
query: {
multi_match: {
query: query,
fields: ['name', 'location']
},
functions: [{
gauss: {
created_at: {
origin: 'now',
scale: '1d',
offset: '2d',
decay: 0.5
}
}
}]
}
}
}
}
使用以下映射:
mappings dynamic: 'false' do
indexes :name, analyzer: 'english'
indexes :location, analyzer: 'english'
indexes :created_at, type: 'date'
end
给出以下错误:
[400] {"错误" {" ROOT_CAUSE":[{"类型":" query_parsing_exception""理由":& #34:否 查询注册 〔高斯〕""指数":"人""线":1," COL" 143}], "类型":" search_phase_execution_exception""理由":"所有 碎片 失败""相":" query_fetch""分组":真," failed_shards":[{"碎片& #34;:0,"指数":"工作""节点":" abcdefgZq1PMsd882foA""理由" :{"类型":" query_parsing_exception""理由":"否 查询注册 〔高斯〕""指数":"人""线":1," COL" 143}}] },"状态" 400}
答案 0 :(得分:1)
functions
需要更高一级,就在function_score
内而不是query
内,如下所示:
{
query: {
function_score:{
functions: [{
gauss: {
created_at: {
origin: 'now',
scale: '1d',
offset: '2d',
decay: 0.5
}
}
}],
query: {
multi_match: {
query: query,
fields: ['name', 'location']
}
}
}
}
}