App Search

App Search

Search can make or break a user experience. Relevant and fast results matter. Elasticsearch is the most popular open source search engine today. Here's why.

Experience app search with Elastic. Learn More

You've Touched Elastic in the Last 24 Hours

Everyone's looking for something. From finding credit card receipts to dates, meals, bottles of shampoo, or rides home, Elasticsearch powers the search experience for thousands of applications and websites such as Wikipedia, Esri, Intuit, Yelp, Tinder, and Dell.com.

Whether it's document search, ecommerce search, geo search, or graph search, the possibilities are endless. Learn how to get started.

It's an Engine Built for Speed and Scale

Queries that take hours or minutes to run in other systems can take milliseconds with Elasticsearch. It has the smarts to make a petabyte of data highly available and readily accessible, making fast work of the text, numbers, dates, IPs, and geo data you throw at it.

Plus, it's easy to start small and grow. It scales horizontally, while automatically managing how indices and queries are distributed across the cluster.

And You Can Make It Your Own

Elasticsearch gives you total control over your app's search experience. It's your open source search engine, not a black box.

Dig in with both hands to tune relevancy, configure text analysis, optimize queries, and boost results based on real-time insight into what users are looking for, when they search, what they look for next, and beyond.

Elasticsearch is Developer-Friendly

Elasticsearch ships with a simple, consistent query language and uses standard RESTful APIs and JSON. It also has a love for language clients — Python, Ruby, .NET, Java, Groovy, the list goes on — that feel natural and let you work with Elasticsearch the way you want regardless of programming background.

(We've also got a global community 100,000+ members strong. One of our favorite features, really.)

									curl -H "Content-Type: application/json" -XGET
'http://localhost:9200/social-*/_search' -d '{
  "query": {
    "match": {
      "message": "myProduct"
    }
  },
  "aggregations": {
    "top_10_states": {
      "terms": {
        "field": "state",
        "size": 10
      }
    }
  }
}'
								
									RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
                    new HttpHost("localhost", 9200, "http")).build());

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());            
searchSourceBuilder.aggregation(AggregationBuilders.terms("top_10_states").field("state").size(10));

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("social-*");
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest);
								
									var client = new ElasticClient();

var searchResponse = client.Search<Tweet>(s => s
    .Index("social-*")
    .Query(q => q
        .Match(m => m
            .Field(f => f.Message)
            .Query("myProduct")
        )
    )
    .Aggregations(a => a
        .Terms("top_10_states", t => t
            .Field(f => f.State)
            .Size(10)
        )
    )
);
								
									from elasticsearch import Elasticsearch

esclient = Elasticsearch(['localhost:9200'])
response = esclient.search(
index='social-*',
body={
    "query": {
        "match": {
            "message": "myProduct"
        }
    },
    "aggs": {
        "top_10_states": {
            "terms": {
                "field": "state",
                "size": 10
            }
        }
    }
}
)
								
									var elasticsearch = require('elasticsearch');
var esclient = new elasticsearch.Client({
  host: 'localhost:9200'
});
esclient.search({
  index: 'social-*',
  body: {
    query: {
      match: { message: 'myProduct' }
    },
    aggs: {
      top_10_states: {
        terms: {
            field: 'state',
            size: 10
        }
      }
    }
  }
}
).then(function (response) {
    var hits = response.hits.hits;
}
);
								
									$esclient = Elasticsearch\ClientBuilder::create()
              ->setHosts(["localhost:9200"])
              ->build();
$params = [
'index' => 'social-*',
'body' => [
    'query' => [
        'match' => [ 'message' => 'myProduct' ]
    ],
    'aggs' => [
        'top_10_states' => [
            'terms' => [
                'field' => 'state',
                'size' => 10,
            ]
        ]
    ]
]
];
$response = $esclient->search($params);
								
									use Search::Elasticsearch;

my $esclient = Search::Elasticsearch->new( nodes => 'localhost:9200' );
my $response = $esclient->search(
index => 'social-*',
body => {
        query => {
            match => { message => 'myProduct' }
        },
        aggs => {
            top_10_states => {
                terms => {
                    field => 'state',
                    size => 10
                }
            }
        }
    }
);
								
									require 'elasticsearch'

esclient = Elasticsearch::Client.new

response = esclient.search index: 'social-*', body: {
  query: {
    match: {
      message: 'myProduct'
    }
  },
  aggregations: {
    top_10_states: {
      terms: {
        field: 'state',
        size: 10
      }
    }
  }
}
								

You'll Be in Good Company: A Walgreens Story

"Don't waste the customer's time" is a paradigm US retailer Walgreens stands by. And they've upheld that promise by swapping out the proprietary, rigid search solution powering their phone app with Elasticsearch.

They're not the only ones searching with Elastic. Explore more customer examples.

App Search with Elasticsearch

How to use Elasticsearch and the Elastic Stack to embed search into your app and leverage easy-to-use full-text, geosearch, ecommerce search features.

Logging

Fast and scalable logging, that won't quit.

Learn More

Metrics

Do the numbers: CPU, memory, and more.

Learn More

Site Search

Easily create a great search experience for your site.

Learn More

Security Analytics

Interactive investigation at speed and scale.

Learn More

APM

Get insight into your application performance.

Learn More