3

このクエリを変更して、エラスティック サーチがスコアを与えないようにする必要があります。カスタム フィルター スコアだけを結果にスコアを与えるものにしたいと考えています。どうすればこれを達成できますか?

各レコードのスコアは、0、100、または 1000 のみにする必要があります。

{
  "size":50, 
  "from":0, 
  "query" : {
    "custom_filters_score" : {
      "query" : {
        "filtered" : {
          "query" : {
            "bool" : {
              "must" : [
                {"term":{"type":"alpha"}}, 
                {"field":{"sector":"exists"}}, 
                {"field":{"sector.sub":"exists"}}, 
                {"field":{"alpha_sector.sub.categories":"second"}}, 
                {"field":{"beta_sector.sub.columns":"first"}}, 
                {"term":{"beta_type":"beta"}}, 
                {"term":{"area":"624"}}
              ]
            }
          }, 
          "filter" : {
            "or" : [
              {
                "and" : [
                  {"term":{"area":"624"}}, 
                  {"term":{"start":"07242013"}}
                ]
              }, 
              {
                "and" : [
                  {"term":{"area":"624"}}, 
                  {"term":{"start":"blank"}}
                ]
              }
            ]
          }
        }
      }, 
      "filters" : [
        {"filter":{"term":{"resource":5726}}, "boost":"1000"}, 
        {"filter":{"term":{"alpha_resource":5726}}, "boost":"100"}
      ], 
      "score_mode":"sum"
    }
  }
}
4

1 に答える 1

3

ここで何を達成しようとしているのかよくわかりません

            {"field":{"sector":"exists"}}, 
            {"field":{"sector.sub":"exists"}},

ただし、一般に、クエリの一部がスコアに影響を与えたくない場合は、それをフィルターにします。また、"and"/"or"/"not" の代わりに "term" フィルターで "bool" を使用することをお勧めします。

{
  "size":50, 
  "from":0, 
  "query" : {
    "custom_filters_score" : {
      "query" : {
        "filtered" : {
          "query" : {
            "match_all": {}
          }, 
          "filter" : {
            "bool" : {
              "must" : [
                {"term":{"type":"alpha"}}, 
                {"query":{"field":{"sector":"exists"}}}, 
                {"query":{"field":{"sector.sub":"exists"}}}, 
                {"query":{"field":{"alpha_sector.sub.categories":"second"}}}, 
                {"query":{"field":{"beta_sector.sub.columns":"first"}}}, 
                {"term":{"beta_type":"beta"}}, 
                {"term":{"area":"624"}}
              ],
              "should" : [
                {
                  "bool" : {
                    "must" : [
                      {"term":{"area":"624"}}, 
                      {"term":{"start":"07242013"}}
                    ]
                  }
                }, 
                {
                  "bool" : {
                    "must": [
                      {"term":{"area":"624"}}, 
                      {"term":{"start":"blank"}}
                    ]
                  }
                }
              ]
            }
          }
        }
      }, 
      "filters" : [
        {"filter":{"term":{"resource":5726}}, "boost":"1000"}, 
        {"filter":{"term":{"alpha_resource":5726}}, "boost":"100"}
      ], 
      "score_mode":"total"
    }
  }
}
于 2013-07-20T01:30:09.077 に答える