Skip to main content
By default, all model attributes are indexed. To control, which attributes to index, use the attribute method.

The attribute method

The attribute method defines which model attributes to index.
  • If you pass one or more symbols, it calls the methods with the same name.
  • If you pass it a block, you can only use one symbol to define the attribute name. The block defines the value.
To keep your code as readable as possible:
  • attributes is an alias for attribute
  • You can call both methods multiple times
For example:
Ruby
If you’re using dynamic attributes, you need to handle updates to those attributes manually. For more information, see Automatic updates.

The add_attribute method

You can use the add_attribute and add_attributes methods, if you want to add new attributes to your .
Ruby

Custom object IDs

Every Algolia record needs an objectID. By default, this gem uses Rails id as the Algolia objectID. To use a custom ID, use the id option. Each objectID must be unique in the , or your records might be overwritten or deleted by other models. The id can be a model attribute or you can define your own attribute.
Ruby
Ruby

Helpers

The algoliasearch-rails gem comes with helpers for special Algolia attributes. To detect changes for these helpers, see tags and geoloc helpers. Adding coordinates to your records lets you search by location.
Ruby

Tags

The _tags attribute is required for filtering by tags. You use any attribute for filtering if you configure it in the settings.
Ruby
To create tags dynamically, use a block:
Ruby

Sanitize HTML

To remove all HTML tags from your attributes, use the sanitize options.
Ruby

UTF-8 encoding

To make all your attributes UTF-8 encoded, use the force_utf8_encoding option.
Ruby

Serialization with ActiveModelSerializers

You can use ActiveModelSerializers to extract all logic for creating your records into a separate class. In the algoliasearch block, specify what class to use with use_serializer. If specified, all attribute(s) methods are ignored. You can still use add_attribute(s) and the tags or geoloc helpers.
Ruby
Last modified on June 12, 2026