Think outside the (search) box
Learn how to improve your media KPIs, boost your revenue and delight your users.
Products overview
Pricing
Pricing that scales with the value of your business
Search API
Powerful, hosted search API to create fast and relevant search
Analytics
Understand your users, uncover hidden opportunities
Rules
Optimize results ranking for your users’ queries
A/B Testing
Uncover the best performing relevance strategies
InstantSearch
A set of UI components to design the perfect experience
Personalization
Tailor the Search and Discovery to your users
Crawler
Automatically extract and enrich your website content
Visual Editor
Get control over Search and Discovery to reflect your business goals
What’s new
What’s new in Algolia Fall ‘20
Algolia AI
A family of AI algorithms that optimize every dimension of Search and Discovery
Answers for Publishers
Natural language search to find answers deep within content
Answers for Support
ML-powered Q&A search to reduce support costs
Understand
Natural language understanding to get customers from search to conversion faster
Dynamic Synonym Suggestions
AI generated synonyms to get users to relevant results no matter the words they use
Dynamic Re-ranking
Optimizes the ranking of results for each search for higher conversion rate
Solutions overview
Site Search
Build frictionless experiences on any device
Voice Search
Search without the box
Geo Search
Leverage a location-based Search and Discovery
Mobile Search
Accelerate engagement and conversion on mobile
Enterprise overview
Infrastructure
Exceeding the highest standards
Security & Compliance
You can trust us with your data
“Our goal at 8Tracks is to push the barrier on what’s possible in terms of music discovery. That wouldn’t be possible without Algolia’s API.”
“Once we implemented Algolia and saw how much it was outperforming our previous solution just in terms of providing relevant search results, it was a no brainer for us to migrate to Algolia.”
Learn how to improve your media KPIs, boost your revenue and delight your users.
In today’s connected society, people across the world are consuming content and event coverage in real-time. Users expect that the relevant and freshest content will be available, in an instant, regardless of where they might be in the world at that moment. With Algolia’s globally distributed infrastructure and flexibility to support any language, extending a consistent and best-in-class search experience to every corner of the globe is no longer a challenge.
With Algolia’s Custom Crawler, unlocking your archives for users to discover your catalogue of rich content is made simple. In addition, boosting relevance based on custom engagement variables such as shares, likes, or even metrics from Google Analytics is all possible.
Build consistent Search & Discovery experiences across all platforms and devices so that users are able to find exactly what they’re looking for whenever, wherever and however they want.
Use our APIs to customize and integrate great Search & Discovery on all of your media properties.
my_index = client.init_index('contacts')my_index.save_object :firstname => "Jimmie",:lastname => "Barninger",:company => "California Paint"
class Contact < ActiveRecord::Baseinclude AlgoliaSearchalgoliasearch doattribute :firstname, :lastname, :companyendend
myIndex = apiClient.init_index("contacts")myIndex.save_object({"firstname": "Jimmie","lastname": "Barninger","company": "California Paint"})
from django.contrib.algoliasearch import AlgoliaIndexclass YourModelIndex(AlgoliaIndex):fields = ('firstname', 'lastname', 'company')
$myIndex = $apiClient->initIndex("contacts");$myIndex->saveObject(["firstname" => "Jimmie","lastname" => "Barninger","company" => "California Paint",]);
/*** @ORM\Entity*/class Contact {/*** @var string** @ORM\Column(name="firstname", type="string")* @Group({searchable})*/protected $firstname;/*** @var string** @ORM\Column(name="lastname", type="string")* @Group({searchable})*/protected $lastname;/*** @var string** @ORM\Column(name="company", type="string")* @Group({searchable})*/protected $company;}
use Illuminate\Database\Eloquent\Model;use Laravel\Scout\Searchable;class Contact extends Model {use Searchable;}
const myIndex = apiClient.initIndex('contacts');myIndex.saveObject({firstname: 'Jimmie',lastname: 'Barninger',company: 'California Paint',})
Index<Contact> index = client.initIndex("contacts", Contact.class);index.saveObject(new Contact().setFirstname("Jimmie").setLastname("Barninger").setCompany("California Paint"));
import algolia.AlgoliaDsl._import scala.concurrent.ExecutionContext.Implicits.globalcase class Contact(firstname: String,lastname: String,company: String)val indexing: Future[Indexing] = client.execute {index into "contacts" `object` Contact("Jimmie","Barninger","California Paint")}
object := map[string]string{"firstname": "Jimmie","lastname": "Barninger","company": "California Paint"}res, err := index.SaveObject(object)
SearchIndex index = client.InitIndex("contacts");var contact = new Contact {FirstName = "Jimmie",LastName = "Barninger",Company = "California Paint"};index.SaveObject(contact);
val index = client.initIndex(IndexName("contacts"))val json = json {"firstname" to "Jimmie""lastname" to "Barninger""company" to "California Paint" }index.saveObject(json)
let myIndex = apiClient.getIndex("contacts")let n = ["firstname": "Jimmie","lastname": "Barninger","company": "California Paint"]myIndex.saveObject(n)
Index myIndex = apiClient.initIndex("contacts");JSONObject jsonObject = new JSONObject().put("firstname", "Jimmie").put("lastname", "Barninger").put("company", "California Paint");myIndex.addObjectAsync(jsonObject, null);
<div id="searchbox"></div><div id="refinement"></div><div id="hits"></div><script>const {searchBox,hits} = instantsearch.widgets;search.addWidgets([searchBox({container: "#searchbox"}),hits({container: "#hits"}),refinementList({container: "#refinement",attribute: "company"}),]);search.start();</script>
const App = () => (<InstantSearch><SearchBox /><Hits /><Pagination /><RefinementListattribute="company"/></InstantSearch>);
<RelativeLayoutxmlns:algolia="http://schemas.android.com/apk/res-auto"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><com.algolia.instantsearch.ui.views.SearchBoxandroid:id="@+id/search_box"android:layout_width="match_parent"android:layout_height="wrap_content"/><com.algolia.instantsearch.ui.views.Statsandroid:id="@+id/search_box"android:layout_width="match_parent"android:layout_height="wrap_content"/><com.algolia.instantsearch.ui.views.Hitsandroid:layout_width="match_parent"android:layout_height="wrap_content"algolia:itemLayout="@layout/hits_item"/></RelativeLayout>
<ais-instant-search><ais-search-box /><ais-refinement-listattribute="company"/><ais-hits /><ais-pagination /></ais-instant-search>
<ais-instantsearch><ais-search-box></ais-search-box><ais-refinement-list[attribute]="company"></ais-refinement-list<ais-hits></ais-hits></ais-instantsearch>
import InstantSearchoverride func viewDidLoad() {super.viewDidLoad()let searchBar = SearchBarWidget(frame: ...)let statsWidget = StatsLabelWidget(frame: ...)self.view.addSubview(searchBar)self.view.addSubview(statsWidget)InstantSearch.shared.registerAllWidgets(in: self.view)}
Hear about rich new ecosystems of services, how winning platforms are serving developers, and RedMonk's vision on trends in the market.
Watch video
Algolia customers who adopted personalization saw up to a 50% increase in their conversion rate. Learn more in this webinar.
Watch video
Headless commerce is the decoupling of a website’s front end (the content and user interface that comprise the customer experience) from the back end (the business engine that processes ordering,...
Read more