【发布时间】:2016-12-07 15:01:49
【问题描述】:
我正在使用代码使用弹性搜索进行搜索:
es.search(index="article-index", fields="url", body={
"query": {
"query_string": {
"query": "keywordstr",
"fields": [
"text",
"title",
"tags",
"domain"
]
}
}
})
现在我想在搜索评分中插入另一个参数——“recencyboost”。
我被告知 function_score 应该可以解决问题
res = es.search(index="article-index", fields="url", body={
"query": {
"function_score": {
"functions": {
"DECAY_FUNCTION": {
"recencyboost": {
"origin": "0",
"scale": "20"
}
}
},
"query": {
{
"query_string": {
"query": keywordstr
}
}
},
"score_mode": "multiply"
}
}
})
它给了我一个错误,字典 {"query_string": {"query": keywordstr}} 不可散列。
1) 我该如何解决这个错误?
2) 我怎样才能改变衰减函数,使其赋予更高的新近度提升更高的权重?
【问题讨论】:
标签: python elasticsearch pyelasticsearch