Min_score 对于 Elasticsearch 中的 bool 查询中的 "must"
Min_score for a "must" in a bool query in Elasticsearch
有没有办法将最低分数应用于 elasticsearch 中 bool 查询中的 must 子句。
我希望能够做这样的事情:
{
"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query":"A Name",
"min_score": 0.3
}
}
},
{
"match": {
"address": {
"query":"1 Somewhere Street, Somewhereset, UK",
"min_score": 0.3
}
}
}
]
}
}
}
这将要求名称查询与分数 > 0.3 匹配,地址查询与分数 > 0.3 匹配才能返回文档。这是为了阻止非常好的名称匹配被返回,尽管地址匹配很糟糕(例如只匹配 1),反之亦然。
我目前使用的是 Elasticsearch 1.5,但我过去也希望将其用于 2.3。
查询的分数似乎是根据所有字段的组合计算得出的。您可以使用函数查询中的 script_score 更改分数的计算方式:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html#function-script-score
但是,您似乎不太可能单独访问每个字段结果的分数。
试试这个,如果有效请告诉我:
{
"query": {
"bool": {
"must": [
{
"function_score": {
"query": {
"match": {
"name": {
"query": "A Name"
}
}
},
"min_score": 0.3
}
},
{
"function_score": {
"query": {
"match": {
"address": {
"query": "1 Somewhere Street, Somewhereset, UK"
}
}
},
"min_score": 0.3
}
}
]
}
}
}
有没有办法将最低分数应用于 elasticsearch 中 bool 查询中的 must 子句。
我希望能够做这样的事情:
{
"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query":"A Name",
"min_score": 0.3
}
}
},
{
"match": {
"address": {
"query":"1 Somewhere Street, Somewhereset, UK",
"min_score": 0.3
}
}
}
]
}
}
}
这将要求名称查询与分数 > 0.3 匹配,地址查询与分数 > 0.3 匹配才能返回文档。这是为了阻止非常好的名称匹配被返回,尽管地址匹配很糟糕(例如只匹配 1),反之亦然。
我目前使用的是 Elasticsearch 1.5,但我过去也希望将其用于 2.3。
查询的分数似乎是根据所有字段的组合计算得出的。您可以使用函数查询中的 script_score 更改分数的计算方式:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html#function-script-score
但是,您似乎不太可能单独访问每个字段结果的分数。
试试这个,如果有效请告诉我:
{
"query": {
"bool": {
"must": [
{
"function_score": {
"query": {
"match": {
"name": {
"query": "A Name"
}
}
},
"min_score": 0.3
}
},
{
"function_score": {
"query": {
"match": {
"address": {
"query": "1 Somewhere Street, Somewhereset, UK"
}
}
},
"min_score": 0.3
}
}
]
}
}
}