search mobile facets autocomplete spellcheck crawler rankings weights synonyms analytics engage api customize documentation install setup technology content domains user history info home business cart chart contact email activate analyticsalt analytics autocomplete cart contact content crawling custom documentation domains email engage faceted history info install mobile person querybuilder search setup spellcheck synonyms weights engage_search_term engage_related_content engage_next_results engage_personalized_results engage_recent_results success add arrow-down arrow-left arrow-right arrow-up caret-down caret-left caret-right caret-up check close content conversions-small conversions details edit grid help small-info error live magento minus move photo pin plus preview refresh search settings small-home stat subtract text trash unpin wordpress x alert case_deflection advanced-permissions keyword-detection predictive-ai sso

Self-Managed App Search, Installation

Supported platforms:

  • Linux: x86_64 only
  • MacOS X: High Sierra 10.13 - 10.1x (64 bit only)
  • Windows: Not supported

Minimum hardware:

  • ~4GB of free RAM or 6GB if Elasticsearch is running on the same machine.
    • 2GB for App Server.
    • 2GB for Worker.
    • 50Mb for Filebeat and other processes.
  • 5GB of disk space available.

Dependencies:

Notices:

  • Elasticsearch must have at least a basic license. A free basic license is included when downloading Elasticsearch from Elastic.co, but not available within OSS versions like those acquired via a package manager like homebrew.
  • When using security features within your Elasticsearch cluster, define a minimum Elasticsearch role:
{
  "cluster" : [ "manage_index_templates", "monitor" ],
  "indices" : [
    {
      "names" : [ ".app-search-*" ],
      "privileges" : [ "manage", "write", "read" ]
    }
  ]
}
  • Ensure that there are no pre-existing Elasticsearch indexes with: .app-search-*.
  • Dynamic Index Creation within Elasticsearch must be turned off for App Search indexes.
  • API endpoints URLs do not require a Host Identifier. API requests only require the host (localhost for local test deployments), port, and API suffix. All first party clients have been updated to consider the Host Identifier optional:
## A managed service query with a Host Identifier:
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/[YOUR_ENGINE_NAME]/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer [YOUR_SEARCH_KEY]' \
-d '{
  "query": "everglade"
}'

## A self managed query without a Host Identifier:
curl -X POST 'http://localhost:3002/api/as/v1/engines/[YOUR_ENGINE_NAME]/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer [YOUR_SEARCH_KEY]' \
-d '{
  "query": "everglade"
}'

Running App Search

Ensure Elasticsearch is running:

bin/elasticsearch

If you can run curl http://localhost:9200/ to successfully reach Elasticsearch, then keep going!

Next, apply our recommended Elasticsearch cluster configuration.

To do so, choose one of the following methods:

  1. Allow App Search to modify cluster settings. Add the following line to App Search's config/app_search.yml: allow_es_settings_modification: true.

  2. Allow Elasticsearch to create indexes automatically. Add the following line to Elasticsearch's elasticsearch.yml or within your Elasticsearch cluster settings: action.auto_create_index: ".app-search-*-logs-*,-.app-search-*,+*"

After that, enter the App Search directory and run...

bin/app-search

After it starts, visit http://localhost:3002.

The default login credentials are:

  • Email: app-search@example.com
  • Password: changeme

Be sure to change the password once you login!

And now?

  • Explore the documentation
  • Configure your app_search.yml file
  • Index some data
  • Configure the Reference UI
  • Perform search queries
  • Tune relevance
  • Build your next great search experience

Thanks for trying out Self-Managed App Search. Please send us your beta feedback!