elasticsearch 如何在使用函数_score时向弹性查询添加过滤器?,elasticsearch,search,elastic-stack,elasticsearch,Search,Elastic Stack" /> elasticsearch 如何在使用函数_score时向弹性查询添加过滤器?,elasticsearch,search,elastic-stack,elasticsearch,Search,Elastic Stack" />

elasticsearch 如何在使用函数_score时向弹性查询添加过滤器?

elasticsearch 如何在使用函数_score时向弹性查询添加过滤器?,elasticsearch,search,elastic-stack,elasticsearch,Search,Elastic Stack,以下是我当前的弹性查询: { "from": 0, "size": 10, "query": { "function_score": { "query": { "bool": { "must": [{

以下是我当前的弹性查询:

{
    "from": 0,
    "size": 10,
    "query": {
        "function_score": {
            "query": {
                "bool": {
                    "must": [{
                        "multi_match": {
                            "query": "ocean",
                            "fields": [],
                            "fuzziness": "AUTO"
                        }}],
                    "must_not": [{
                        "exists": {
                            "field": "parentId"
                        }
                    }]
                }
            },
            "functions" : [
                {
                    "gauss": {
                            "createTime": {
                                    "origin": "2020-07-09T23:50:00",
                                    "scale": "365d",
                                    "decay": 0.3
                            }
                    }
                }
            ]
        }
    }
}
如何正确地将过滤器添加到此中?我想可能是因为我使用了
function\u score
,这就不同了?我想添加一个硬过滤器,例如,只显示上传用户的结果:'Mr.Bean'。。。但是仍然保留通过此过滤器的结果的评分

我尝试在不同的地方使用
filter
,也使用了
must
,但我要么没有得到结果,要么得到了所有结果


我用的是弹性搜索7。感谢您的帮助

您可以尝试以下搜索查询:

有关功能分数查询的更多信息,请咨询该ES官员

    {
  "from": 0,
  "size": 10,
  "query": {
    "function_score": {
      "query": {
        "bool": {
          "filter": {
            "term": {
              "uploadUser": "Mr. Bean"
            }
          },
          "must": [
            {
              "multi_match": {
                "query": "ocean",
                "fields": [
                  
                ],
                "fuzziness": "AUTO"
              }
            }
          ],
          "must_not": [
            {
              "exists": {
                "field": "parentId"
              }
            }
          ]
        }
      },
      "functions": [
        {
          "gauss": {
            "createTime": {
              "origin": "2020-07-09T23:50:00",
              "scale": "365d",
              "decay": 0.3
            }
          }
        }
      ]
    }
  }
}

您可以尝试以下搜索查询:

有关功能分数查询的更多信息,请咨询该ES官员

    {
  "from": 0,
  "size": 10,
  "query": {
    "function_score": {
      "query": {
        "bool": {
          "filter": {
            "term": {
              "uploadUser": "Mr. Bean"
            }
          },
          "must": [
            {
              "multi_match": {
                "query": "ocean",
                "fields": [
                  
                ],
                "fuzziness": "AUTO"
              }
            }
          ],
          "must_not": [
            {
              "exists": {
                "field": "parentId"
              }
            }
          ]
        }
      },
      "functions": [
        {
          "gauss": {
            "createTime": {
              "origin": "2020-07-09T23:50:00",
              "scale": "365d",
              "decay": 0.3
            }
          }
        }
      ]
    }
  }
}

你能分享你期望得到的样本数据和结果吗?你能分享你期望得到的样本数据和结果吗?@tyler-g你能试试上面的搜索查询,并告诉我这是否有效吗?而且,如果你能提供一些样本索引数据和你期望的结果,那就太好了。我尝试了这种方法,但不幸没有得到任何结果。如果没有“过滤器”,我会得到几个结果,我可以看到其中一些结果已上载。用户:憨豆先生results@tyler-g你能分享你的索引数据和地图吗?甚至根据索引数据你希望得到什么搜索结果?@tyler-g你有机会看一下我的答案吗,期待收到您的反馈:)是的,开始工作了谢谢您的反馈@Bhavya@tyler-g你能尝试一下上面的搜索查询,并告诉我这是否有效吗?而且,如果你能提供一些样本索引数据和你期望的结果,那就太好了。我尝试了这种方法,但不幸没有得到任何结果。如果没有“过滤器”,我会得到几个结果,我可以看到其中一些结果已上载。用户:憨豆先生results@tyler-g你能分享你的索引数据和地图吗?甚至根据索引数据你希望得到什么搜索结果?@tyler-g你有机会看一下我的答案吗,期待收到您的反馈:)是的,开始工作了谢谢您的反馈@Bhavya!