提升查询,从文档中复制
boosting query, copied from documentation
我正在尝试创建增强查询,如 documentation 中所示
但是当我尝试
{
"query": {
"match_all":{}
},
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
}
},
"negative_boost" : 0.2
}
它不工作我收到错误
error: SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;
shardFailures {[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][0]:
SearchParseException[[idx_users_all_backup_dev][0]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][0]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][1]:
SearchParseException[[idx_users_all_backup_dev][1]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][1]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][2]:
SearchParseException[[idx_users_all_backup_dev][2]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]]; nested: SearchParseException[[idx_users_all_backup_dev][2]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][3]:
SearchParseException[[idx_users_all_backup_dev][3]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]]; nested: SearchParseException[[idx_users_all_backup_dev][3]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][4]:
SearchParseException[[idx_users_all_backup_dev][4]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][4]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }]
status: 400
我也尝试添加 explain: true
但它没有给我任何关于查询错误的额外信息。
编辑
我写过这样的查询
{
"sort": [
{
"is_active": "asc"
}
],
"fields": [
"is_job_seeking", "is_active"
],
"query": {
"bool": {
"must": [
{
"bool": {
"must": {
"term": {
"is_job_seeking": 1
}
}
}
},
{
"boosting": {
"positive": {
"term": {
"is_active": 1
}
},
"negative": {
"term": {
"is_active": 0
}
},
"negative_boost": 0.3
}
}
]
}
}
}
并且此查询给了我 1000 个结果,但是没有包含 is_active=0
的文档,当我删除 boosting
部分时,我用文档 is_active=0
更正了结果
您的查询应该是这样的:
{
"query": {
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
},
"negative_boost": 0.2
}
}
}
与bool
:
{
"query": {
"bool": {
"should": [
{
"term": {
"text": {
"value": "something"
}
}
},
{
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
},
"negative_boost": 0.2
}
}
]
}
}
}
我正在尝试创建增强查询,如 documentation 中所示 但是当我尝试
{
"query": {
"match_all":{}
},
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
}
},
"negative_boost" : 0.2
}
它不工作我收到错误
error: SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;
shardFailures {[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][0]:
SearchParseException[[idx_users_all_backup_dev][0]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][0]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][1]:
SearchParseException[[idx_users_all_backup_dev][1]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][1]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][2]:
SearchParseException[[idx_users_all_backup_dev][2]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]]; nested: SearchParseException[[idx_users_all_backup_dev][2]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][3]:
SearchParseException[[idx_users_all_backup_dev][3]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]]; nested: SearchParseException[[idx_users_all_backup_dev][3]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }{[bP7jZnVHSRu83G30B0uSmw][idx_users_all_backup_dev][4]:
SearchParseException[[idx_users_all_backup_dev][4]: from[-1],size[-1]:
Parse Failure [Failed to parse source [
{
"boosting": {
"positive": {
"term": {
"field1":"value1"
}
},
"negative": {
"term": {
"field2":"value2"
}
},
"negative_boost":0.2
}
}
]]];
nested: SearchParseException[[idx_users_all_backup_dev][4]: from[-1],size[-1]:
Parse Failure [No parser for element [boosting]]]; }]
status: 400
我也尝试添加 explain: true
但它没有给我任何关于查询错误的额外信息。
编辑 我写过这样的查询
{
"sort": [
{
"is_active": "asc"
}
],
"fields": [
"is_job_seeking", "is_active"
],
"query": {
"bool": {
"must": [
{
"bool": {
"must": {
"term": {
"is_job_seeking": 1
}
}
}
},
{
"boosting": {
"positive": {
"term": {
"is_active": 1
}
},
"negative": {
"term": {
"is_active": 0
}
},
"negative_boost": 0.3
}
}
]
}
}
}
并且此查询给了我 1000 个结果,但是没有包含 is_active=0
的文档,当我删除 boosting
部分时,我用文档 is_active=0
您的查询应该是这样的:
{
"query": {
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
},
"negative_boost": 0.2
}
}
}
与bool
:
{
"query": {
"bool": {
"should": [
{
"term": {
"text": {
"value": "something"
}
}
},
{
"boosting": {
"positive": {
"term": {
"is_job_seeking": 1
}
},
"negative": {
"term": {
"is_job_seeking": 0
}
},
"negative_boost": 0.2
}
}
]
}
}
}