A React library that allows you to quickly implement search experiences without re-inventing the wheel.

Use it with Elastic to have a search experience up and running in minutes.

Features 👍

  • You know, for search - Maintained by Elastic, the team behind Elasticsearch.
  • Speedy Implementation - Build a complete search experience with a few lines of code.
  • Customizable - Tune the components, markup, styles, and behaviors to your liking.
  • Smart URLs - Searches, paging, filtering, and more, are captured in the URL for direct result linking.
  • Flexible front-end - Not just for React. Use with any JavaScript library, even vanilla JavaScript.
  • Flexible back-end - Use it with Elasticsearch, Elastic Enterprise Search, or any other search API.

Live Demo

FAQ 🔮

Is Search UI only for React?

Nope. Search UI is "headless".

You can write support for it into any JavaScript framework. You can even use vanilla JavaScript.

Read about the search-ui package for more information, or check out the Vue.js Example.

Can I use my own styles?

You can!

Read the Custom Styles and Layout Guide to learn more, or check out the Seattle Indies Expo Demo.

Can I build my own Components?

Yes! Absolutely.

Check out the Build Your Own Component Guide.

Nope! We do have two first party connectors: Site Search and App Search.

But Search UI is headless. You can use any Search API.

Read the Building a custom connector to learn more about building your own connector for your API.

How do I use this with Elasticsearch?

Read the Elasticsearch Connector docs.

Where do I report issues with the Search UI?

If something is not working as expected, please open an issue.

Where can I go to get help?

The Enterprise Search team at Elastic maintains this library and are happy to help. Try posting your question to the Elastic Enterprise Search discuss forums. Be sure to mention that you're using Search UI and also let us know what backend your using; whether it's App Search, Site Search, Elasticsearch, or something else entirely.

Contribute 🚀

We welcome contributors to the project. Before you begin, a couple notes...

  • Read the Search UI Contributor's Guide.
  • Prior to opening a pull request, please:
    • Create an issue to discuss the scope of your proposal.
    • Sign the Contributor License Agreement. We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once.
  • Please write simple code and concise documentation, when appropriate.

License 📗

Apache-2.0 © Elastic

Thank you to all the contributors! 🙏 🙏

Last updated: Feb 27th, 2022