16 May 2018 Releases

App Search is Now Generally Available! Here's How to Build It Into Your App

By Matt Riley

We're excited to announce that the Elastic App Search Service is moving out of Beta today and into General Availability. Since announcing App Search at Elastic{ON} in February, we've had the pleasure of interacting with a large number of our early adopters, hearing about their experiences with the product, and incorporating that valuable feedback into this latest release. We're confident that App Search is ready for production deployments now, and as the first major release since Swiftype joined forces with Elastic last year, our team is thrilled to see what the Elastic community builds with App Search.

For those of you who missed our initial launch announcement, App Search is a search-as-a-service solution designed to simplify the process of building rich, user-facing search experiences. We leverage the incredible power of Elasticsearch and focus it squarely on powering search experiences in software applications of every kind — from ecommerce websites, to SaaS applications and mobile apps.

Key Benefits

Developers using App Search are able to build search experiences much faster, due to three key factors:

  1. Simple Implementation: features such as schemaless indexing and built-in typo tolerance, in conjunction with a library of first-party API Clients, enables developers to be up-and-running in minutes.
  2. Cloud-Based SaaS Model: no need for on-premise deployment, infrastructure provisioning, or long-term maintenance. Simply create an account and get started immediately.
  3. Seamless Scalability: App Search is designed to scale seamlessly and painlessly as your usage increases.

This blog post will guide you through the basics of creating an App Search-powered search experience. And be sure to join us for the Elastic App Search webinar on June 6 for an overview and live demo of Elastic App Search.

Getting Started

Step 1 - Signing up for a Swiftype account

Your Swiftype account is where you create and manage Elastic App Search-powered search engines. Your account is also where you choose a subscription tier and enter billing information.

If you haven't done so already, sign up for your free App Search trial account. Once your email address has been confirmed, select the App Search product from the Swiftype product selector

step-one-elastic-app-search-blog-announcement.jpg

Step 2 - Creating an engine

An engine in App Search is analogous to an index in Elasticsearch. It serves as a container for the documents you index, dataset- level configurations such as weights and boosts, as well as the search analytics that App Search automatically collects for you as users perform searches on the content in that index. To create an engine, locate and click the “Create an Engine” button from your account home.

Creating an engine - Enter your new engine's name

create-an-engine-app-search-ga-2.png

Name your engine wisely, it will be used as the identifying key when making API calls or issuing search queries.

Step 3 - Locating your API credentials

Now that you've created your first Engine, you should locate the various keys required to issue API requests. These API requests will allow you to index documents and ultimately perform searches.

API Keys - Locate the Account Host Key and API Key

locate-api-credentials-app-search-2.png

For a more complete authentication overview, refer to the Understanding API Authentication guide.

Step 4 - Indexing documents

With your API credentials handy, you may now start adding documents to your newly created Engine using the Documents API. Swiftype App Search does not require you to define a schema prior to indexing your first documents, as it will be dynamically generated based on the data and fields provided via the Documents API.

Using the API Client of your choice, or simply using cURL to submit API requests, you can start indexing a small number of documents as an array of JSON objects, making sure to prefix the host with your Account Host Key, and including your API key as the HTTP authorization request header:

EXAMPLE - Indexing a document in the rent-a-car engine

curl -X POST 'https://host-7s23ap.api.swiftype.com/api/as/v1/engines/rent-a-car/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer api-3958sdlfjadsf' \
-d '[
    {
      "id": "441376183",
      "make": "Toyota",
      "model": "4RUNNER",
      "year": "2017",
      "color": "blue",
      "drivetrain": "AWD",
      "category": "Full-Size SUV",
      "seats": 7,
      "status": "available",
      "daily_rate": 79,
      "ac": true,
      "mileage_policy": "unlimited",
      "current_location": "37.6213, -122.3790"
    }
  ]'

You may confirm that the documents were properly indexed by visiting the Documents area of the App Search dashboard. If you encounter any issue while indexing documents, you may also refer to the API Logs area of the dashboard for more information on request failures.

The Indexing Documents guide covers document ingestion in greater detail, including additional document operations, and schema updates.

Step 5 - Searching documents

There are multiple ways to search over the content now contained within your Engine. The simplest, fastest way to experiment with querying is using the Query Tester found in the App Search Dashboard:

Testing a query - Enter any term that matches one or more documents

query-tester-app-search-2.png

The Searching guide is a great place to start when issuing your first search queries via the Search API, as it covers basic search features and query customizations.

Next steps

While this getting started guide provided a very high-level view of the App Search functionality, you have already covered the most important aspects of interacting with the search platform, whether it be through the dashboard or the API itself. From here, you can dive deeper into the key concepts of indexing and searching in the Guides section: