How to covert this elastic search functional score query to java API using ES 2.3.3


(Praveen Kumar) #1
GET /schema_name/_search
 {
  "from": 0,
  "size": 200,
  "query": {
     "function_score": {
     "query": {
        "match_all": {}
    },
    "boost": "5",
    "functions": [{
            "filter": {
                "term": {
                    "alert_code": "event_rule_1"
                }
            },
            "weight": 50
        },
        {
            "filter": {
                "term": {
                    "alert_code": "event_rule_2"
                }
            },
            "weight": 30
        },
        {
            "filter": {
                "term": {
                    "alert_code": "event_rule_3"
                }
            },
            "weight": 10
        },
        {
            "filter": {
                "term": {
                    "alert_code": "event_rule_4"
                }
            },
            "weight": 10
        },
        {
            "filter": {
                "term": {
                    "alert_code": "event_rule_5"
                }
            },
            "weight": 50
        },
        {
            "filter": {
                "term": {
                    "alert_code": "event_rule_6"
                }
            },
            "weight": 50
        }
    ],
    "max_boost": 50,
    "score_mode": "max",
    "boost_mode": "replace",
    "min_score": 0
     }
   }
 }

Have been able to reach to this point

FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders
.functionScoreQuery(queryBuilder)
.setMinScore(0f)
.maxBoost(50f)
.scoreMode("max")
.boostMode(CombineFunction.REPLACE);

But not sure about how to add the functions and filters :frowning:


(system) #2

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.