Save rule
editSettings
ACL
$index->saveRule(array Rule) $index->saveRule(array Rule, [ // All the following parameters are optional 'forwardToReplicas' => boolean ])
We released a new version of the PHP API client in public beta. Read the beta documentation for more information.
We released a new version of the JavaScript API client in public beta. Read the beta documentation for more information.
We released a new version of the Java API client in public beta. Read the beta documentation for more information.
You’re currently reading the JavaScript API client v4 documentation. Check the migration guide to learn how to upgrade from v3 to v4. You can still access the v3 documentation.
You’re currently reading the Ruby API client v2 documentation. Check the migration guide to learn how to upgrade from v1 to v2. You can still access the v1 documentation.
About this method
Create or update a single Rule.
You can import and export Rules from the Algolia dashboard.
Examples
Read the Algolia CLI documentation for more information.
Save a Rule
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$rule = array(
    'objectID' => 'a-rule-id',
    'conditions' => array(array(
        'pattern'   => 'smartphone',
        'anchoring' => 'contains',
    )),
    'consequence' => array(
        'params' => array(
            'filters' => 'category = 1',
        )
    )
);
// Optionally, to disable the rule
$rule['enabled'] = false;
// Optionally, to add validity time ranges
$rule['validity'] = array(
  array(
    'from' => time(),
    'until' => time() + 10*24*60*60,
  )
);
$index->saveRule($rule);
      Save a Rule with alternatives enabled
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$rule = array(
    'objectID' => 'a-rule-id',
    'conditions' => array(array(
        'pattern'   => 'smartphone',
        'anchoring' => 'contains',
        'alternatives' => true
    )),
    'consequence' => array(
        'params' => array(
            'filters' => 'category = 1',
        )
    )
);
$index->saveRule($rule);
      Save a Rule with a context based condition
1
2
3
4
5
6
7
8
9
10
11
12
13
$rule = array(
    'objectID' => 'a-rule-id',
    'conditions' => array(array(
        'context' => 'mobile',
    )),
    'consequence' => array(
        'params' => array(
            'filters' => 'release_date >= 1568498400',
        )
    )
);
$index->saveRule($rule);
      Parameters
| Parameter | Description | 
|---|---|
          
            objectID
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Unique identifier for the Rule (format:  Note that for some languages, the objectID is duplicated in the Rule.  | 
      
          
            Rule
          
         | 
        
           
                
                type: rule
                
               
              
                
                        Required
                
               
          The rule object, its conditions and consequences. {
  objectID: objectID,
  conditions: conditions,
  consequence: consequence
}
         | 
      
          
            forwardToReplicas
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: false
                
               
              
                
                    Optional
                
               
          By default, this method applies only to the specified index.
By making this   | 
      
Rule ➔ rule
| Parameter | Description | 
|---|---|
          
            objectID
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Must contain the same value as the preceding objectID.  | 
      
          
            condition
          
         | 
        
           
                
                type: condition
                
               
              
                
                    Optional
                
               
          This parameter is deprecated in favor of conditions. Condition of the Rule, expressed using the following variables:
 When the condition isn’t provided or is empty, the Rule is active for all queries to the relevant index. {
  "pattern": pattern,
  "anchoring": anchoring,
  "alternatives": alternatives,
  "context": context
}
         | 
      
          
            conditions
          
         | 
        
           
                
                type: list of condition
                
               
              
                
                    Optional
                
               
          A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule. Filters can also be used as conditions. [
  {
    "pattern": pattern,
    "anchoring": anchoring,
    "alternatives": alternatives,
    "context": context
  }
]
         | 
      
          
            consequence
          
         | 
        
           
                
                type: consequence
                
               
              
                
                        Required
                
               
          Consequence of the Rule. At least one of the following object must be used:  | 
      
          
            description
          
         | 
        
           
                
                type: string
                
               
              
                
                    Optional
                
               
          This field is intended for Rule management purposes, in particular to ease searching for Rules and presenting them to human readers. It’s not interpreted by the API.  | 
      
          
            enabled
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: true
                
               
              
                
                    Optional
                
               
          Whether the Rule is enabled. Disabled Rules remain in the index, but aren’t applied at query time.  | 
      
          
            validity
          
         | 
        
           
                
                type: list of timeRange
                
               
              
                
                    Optional
                
               
          By default, Rules are permanently valid. When validity periods are specified, the Rule applies only during those periods; it’s ignored the rest of the time. The list must not be empty.  | 
      
Rule ➔ rule ➔ condition
| Parameter | Description | 
|---|---|
          
            pattern
          
         | 
        
           
                
                type: string
                
               
              
                
                    Optional
                
               
          Query pattern syntax Query patterns are expressed as a string with a specific syntax. A pattern is a sequence of tokens, which can be either: 
 You can’t use the special characters  This parameter goes hand in hand with the  Otherwise, you can omit both.  | 
      
          
            anchoring
          
         | 
        
           
                
                type: string, enum
                
               
              
                
                    Optional
                
               
          {  This parameter goes hand in hand with the  Otherwise, you can omit both.  | 
      
          
            alternatives
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: false
                
               
              
                
                    Optional
                
               
          If  For example, if  A maximum of 10 alternatives will be checked for each word in  If you have more than 10 alternatives, none will be checked.  | 
      
          
            context
          
         | 
        
           
                
                type: string
                
               
              
                
                    Optional
                
               
          Rule context (format:   | 
      
Rule ➔ rule ➔ consequence
| Parameter | Description | 
|---|---|
          
            params
          
         | 
        
           
                
                type: params
                
               
              
                
                    Optional
                
               
          Additional search parameters. Any valid search parameter is allowed.
Specific treatment is applied to these fields:
 {
  "query": query,
  "automaticFacetFilters": automaticFacetFilters,
  "automaticOptionalFacetFilters": automaticOptionalFacetFilters
}
         | 
      
          
            promote
          
         | 
        
           
                
                type: list
                
               
              
                
                    Optional
                
               
          Objects to promote as hits. Each object must contain the following fields:
 By default, you can promote up to 300 items per rule, and 100 items per promote group ( {
  "objectID": objectID,
  "objectIDs": objectIDs,
  "position": position
}
         | 
      
          
            filterPromotes
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: false
                
               
              
                
                    Optional
                
               
          Only use in combination with the  {
  "promote": [
    {
      "objectID": objectID,
      "position": position
    }
  ],
  "filterPromotes": true
}
         | 
      
          
            hide
          
         | 
        
           
                
                type: list
                
               
              
                
                    Optional
                
               
          Objects to hide from hits. Each object must contain an  By default, you can hide up to 50 items per rule. {
  "objectID": objectID
}
         | 
      
          
            userData
          
         | 
        
           
                
                type: object
                
               
              
                
                    Optional
                
               
          Custom JSON object that will be appended to the   | 
      
Rule ➔ rule ➔ consequence ➔ params
| Parameter | Description | 
|---|---|
          
            query
          
         | 
        
           
                
                type: string or query
                
               
              
                
                    Optional
                
               
          When providing a string, it replaces the entire query string. When providing an object, it describes incremental edits to be made to the query string (but you can’t do both). {
  "edits": list of edit
}
         | 
      
          
            automaticFacetFilters
          
         | 
        
           
                
                type: list of automaticFacetFilter
                
               
              
                
                    Optional
                
               
          Names of facets to which automatic filtering must be applied;
they must match the facet name of a facet value placeholder in the query pattern.
Ex.   | 
      
          
            automaticOptionalFacetFilters
          
         | 
        
           
                
                type: object
                
               
              
                
                    Optional
                
               
          Same syntax as   | 
      
Rule ➔ rule ➔ consequence ➔ promote-params
| Parameter | Description | 
|---|---|
          
            objectID
          
         | 
        
           
                
                type: string
                
               
              
                
                        true (unless using objectIDs)
                
               
          Unique identifier of the object to promote.  | 
      
          
            objectIDs
          
         | 
        
           
                
                type: string[]
                
               
              
                
                        true (unless using objectID)
                
               
          Array of unique identifiers of the objects to promote.  | 
      
          
            position
          
         | 
        
           
                
                type: integer
                
               
              
                
                        Required
                
               
          The position to promote the objects to (zero-based). If you pass   | 
      
Rule ➔ rule ➔ consequence ➔ hide
| Parameter | Description | 
|---|---|
          
            objectID
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Unique identifier of the object to hide.  | 
      
Rule ➔ rule ➔ validity ➔ timeRange
| Parameter | Description | 
|---|---|
          
            from
          
         | 
        
           
                
                type: integer
                
               
              
                
                        Required
                
               
          Lower bound of the time range (Unix timestamp).  | 
      
          
            until
          
         | 
        
           
                
                type: integer
                
               
              
                
                        Required
                
               
          Upper bound of the time range (Unix timestamp).  | 
      
Rule ➔ rule ➔ consequence ➔ params ➔ automaticFacetFilter
| Parameter | Description | 
|---|---|
          
            facet
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Attribute to filter on. This must match a facet placeholder in the Rule’s pattern.  | 
      
          
            score
          
         | 
        
           
                
                type: integer
                
               
              
                
                  default: 1
                
               
              
                
                    Optional
                
               
          Score for the filter. Typically used for optional or disjunctive filters.  | 
      
          
            disjunctive
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: false
                
               
              
                
                    Optional
                
               
          Whether the filter is disjunctive (  | 
      
          
            negative
          
         | 
        
           
                
                type: boolean
                
               
              
                
                  default: false
                
               
              
                
                    Optional
                
               
          Whether the match is inverted (  | 
      
Rule ➔ rule ➔ consequence ➔ params ➔ query ➔ edits ➔ edit
| Parameter | Description | 
|---|---|
          
            type
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Type of edit. Must be one of: 
  | 
      
          
            delete
          
         | 
        
           
                
                type: string
                
               
              
                
                        Required
                
               
          Text or patterns to remove from the query string. [
  {
    "type": "remove",
    "delete": "red"
  }
]
         | 
      
          
            insert
          
         | 
        
           
                
                type: string
                
               
              
                
                    Optional
                
               
          Text that should be inserted in place of the removed text inside the query string. [
  {
    "type": "replace",
    "delete": "red",
    "insert": "blue"
  }
]
         | 
      
Response
This section shows the JSON response returned by the API.
Each API client encapsulates this response inside objects specific to the programming language,
so that the actual response might be different.
You can view the response by using the getLogs method.
Don’t rely on the order of attributes in the response, as JSON doesn’t guarantee the ordering of keys in objects.
JSON format
1
2
3
4
{
  "updatedAt":"2013-01-18T15:33:13.556Z",
  "taskID": 678
}
        | Field | Description | 
|---|---|
        
          updatedAt
        
       | 
      
         
            
              string
            
           
        Date at which the indexing job has been created.  | 
    
        
          taskID
        
       | 
      
         
            
              integer
            
           
        The taskID used with the waitTask method.  |