diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b99a92c59..1c40c7dac 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,6 +4,10 @@ First, thank you for contributing to Meilisearch! The goal of this document is t Remember that there are many ways to contribute other than writing code: writing [tutorials or blog posts](https://github.com/meilisearch/awesome-meilisearch), improving [the documentation](https://github.com/meilisearch/documentation), submitting [bug reports](https://github.com/meilisearch/meilisearch/issues/new?assignees=&labels=&template=bug_report.md&title=) and [feature requests](https://github.com/meilisearch/product/discussions/categories/feedback-feature-proposal)... +The code in this repository is only concerned with managing multiple indexes, handling the update store, and exposing an HTTP API. Search and indexation are the domain of our core engine, [`milli`](https://github.com/meilisearch/milli), while tokenization is handled by [our `charabia` library](https://github.com/meilisearch/charabia/). + +If Meilisearch does not offer optimized support for your language, please consider contributing to `charabia` by following the [CONTRIBUTING.md file](https://github.com/meilisearch/charabia/blob/main/CONTRIBUTING.md) and integrating your intended normalizer/segmenter. + ## Table of Contents - [Assumptions](#assumptions) diff --git a/README.md b/README.md index 37e2b56e8..6edb95c33 100644 --- a/README.md +++ b/README.md @@ -1,205 +1,99 @@

- Meilisearch + +

-

Meilisearch

-

Website | Roadmap | Blog | - LinkedIn | - Twitter | Documentation | - FAQ + FAQ | + Slack

Build Status Dependency status License - Slack - Bors enabled

-

โšก Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine ๐Ÿ”

+

โšก A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow ๐Ÿ”

-**Meilisearch** is a powerful, fast, open-source, easy to use and deploy search engine. Both searching and indexing are highly customizable. Features such as typo-tolerance, filters, and synonyms are provided out-of-the-box. -For more information about features go to [our documentation](https://docs.meilisearch.com/). +Meilisearch helps you shape a delightful search experience in a snap, offering features that work out-of-the-box to speed up your workflow. -

- Web interface gif +

+ A bright colored application for finding movies screening near the user + A dark colored application for finding movies screening near the user

+[**Try it!**](https://where2watch.meilisearch.com/) + ## โœจ Features -* Search-as-you-type experience (answers < 50 milliseconds) -* Full-text search -* Typo tolerant (understands typos and misspelling) -* Faceted search and filters -* Supports hanzi (Chinese characters) -* Supports synonyms -* Easy to install, deploy, and maintain -* Whole documents are returned -* Highly customizable -* RESTful API -## Getting started +- **Search-as-you-type:** find search results in less than 50 milliseconds +- **[Typo tolerance](https://docs.meilisearch.com/learn/getting_started/customizing_relevancy.html#typo-tolerance):** get relevant matches even when queries contain typos and misspellings +- **[Filtering and faceted search](https://docs.meilisearch.com/learn/advanced/filtering_and_faceted_search.html):** enhance your user's search experience with custom filters and build a faceted search interface in a few lines of code +- **[Sorting](https://docs.meilisearch.com/learn/advanced/sorting.html):** sort results based on price, date, or pretty much anything else your users need +- **[Synonym support](https://docs.meilisearch.com/learn/getting_started/customizing_relevancy.html#synonyms):** configure synonyms to include more relevant content in your search results +- **[Geosearch](https://docs.meilisearch.com/learn/advanced/geosearch.html):** filter and sort documents based on geographic data +- **[Extensive language support](https://docs.meilisearch.com/learn/what_is_meilisearch/language.html):** search datasets in any language, with optimized support for Chinese, Japanese, Hebrew, and languages using the Latin alphabet +- **[Security management](https://docs.meilisearch.com/learn/security/master_api_keys.html):** control which users can access what data with API keys that allow fine-grained permissions handling +- **[Multi-Tenancy](https://docs.meilisearch.com/learn/security/tenant_tokens.html):** personalize search results for any number of application tenants +- **Highly Customizable:** customize Meilisearch to your specific needs or use our out-of-the-box and hassle-free presets +- **[RESTful API](https://docs.meilisearch.com/reference/api/overview.html):** integrate Meilisearch in your technical stack with our plugins and SDKs +- **Easy to install, deploy, and maintain** -### Deploy the Server +## ๐Ÿ“– Documentation -#### Homebrew (Mac OS) +You can consult Meilisearch's documentation at [https://docs.meilisearch.com](https://docs.meilisearch.com/). -```bash -brew update && brew install meilisearch -meilisearch -``` +## ๐Ÿš€ Getting started -#### Docker +For basic instructions on how to set up Meilisearch, add documents to an index, and search for documents, take a look at our [Quick Start](https://docs.meilisearch.com/learn/getting_started/quick_start.html) guide. -```bash -docker run -p 7700:7700 -v "$(pwd)/meili_data:/meili_data" getmeili/meilisearch -``` +You may also want to check out [Meilisearch 101](https://docs.meilisearch.com/learn/getting_started/filtering_and_sorting.html) for an introduction to some of Meilisearch's most popular features. -#### Announcing a cloud-hosted Meilisearch +## โ˜๏ธ Meilisearch cloud -Join the closed beta by filling out this [form](https://meilisearch.typeform.com/to/VI2cI2rv). +Join the closed beta for Meilisearch cloud by filling out [this form](https://meilisearch.typeform.com/to/VI2cI2rv). -#### Try Meilisearch in our Sandbox +## ๐Ÿงฐ SDKs & integration tools -Create a Meilisearch instance in [Meilisearch Sandbox](https://sandbox.meilisearch.com/). This instance is free, and will be active for 48 hours. +Install one of our SDKs in your project for seamless integration between Meilisearch and your favorite language or framework! -#### Run on Digital Ocean +Take a look at the complete [Meilisearch integration list](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html). -[![DigitalOcean Marketplace](assets/do-btn-blue.svg)](https://marketplace.digitalocean.com/apps/meilisearch?action=deploy&refcode=7c67bd97e101) +![Logos belonging to different languages and frameworks supported by Meilisearch, including React, Ruby on Rails, Go, Rust, and PHP](assets/integrations.png) -#### Deploy on Platform.sh +## โš™๏ธ Advanced usage - - Deploy on Platform.sh - +Experienced users will want to keep our [API Reference](https://docs.meilisearch.com/reference/api) close at hand. -#### APT (Debian & Ubuntu) +We also offer a wide range of dedicated guides to all Meilisearch features, such as [filtering](https://docs.meilisearch.com/learn/advanced/filtering_and_faceted_search.html), [sorting](https://docs.meilisearch.com/learn/advanced/sorting.html), [geosearch](https://docs.meilisearch.com/learn/advanced/geosearch.html), [API keys](https://docs.meilisearch.com/learn/security/master_api_keys.html), and [tenant tokens](https://docs.meilisearch.com/learn/security/tenant_tokens.html). -```bash -echo "deb [trusted=yes] https://apt.fury.io/meilisearch/ /" > /etc/apt/sources.list.d/fury.list -apt update && apt install meilisearch-http -meilisearch -``` +Finally, for more in-depth information, refer to our articles explaining fundamental Meilisearch concepts such as [documents](https://docs.meilisearch.com/learn/core_concepts/documents.html) and [indexes](https://docs.meilisearch.com/learn/core_concepts/indexes.html). -#### Download the binary (Linux & Mac OS) +## ๐Ÿ“Š Telemetry -```bash -curl -L https://install.meilisearch.com | sh -./meilisearch -``` +Meilisearch collects **anonymized** data from users to help us improve our product. You can [deactivate this](https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html#how-to-disable-data-collection) whenever you want. -#### Compile and run it from sources +To request deletion of collected data, please write to us atย [privacy@meilisearch.com](mailto:privacy@meilisearch.com). Don't forget to include your `Instance UID` in the message, as this helps us quickly find and delete your data. -If you have the latest stable Rust toolchain installed on your local system, clone the repository and change it to your working directory. +If you want to know more about the kind of data we collect and what we use it for, check the [telemetry section](https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html) of our documentation. -```bash -git clone https://github.com/meilisearch/meilisearch.git -cd meilisearch -cargo run --release -``` +## ๐Ÿ“ซ Get in touch! -### Create an Index and Upload Some Documents +Meilisearch is a search engine created by [Meili](https://www.welcometothejungle.com/en/companies/meilisearch), a software development company based in France and with team members all over the world. Want to know more about us? [Check out our blog!](https://blog.meilisearch.com/) -Let's create an index! If you need a sample dataset, use [this movie database](https://www.notion.so/meilisearch/A-movies-dataset-to-test-Meili-1cbf7c9cfa4247249c40edfa22d7ca87#b5ae399b81834705ba5420ac70358a65). You can also find it in the `datasets/` directory. +๐Ÿ—ž [Subscribe to our newsletter](https://meilisearch.us2.list-manage.com/subscribe?u=27870f7b71c908a8b359599fb&id=79582d828e) if you don't want to miss any updates! We promise we won't clutter your mailbox: we only send one edition every two months. -```bash -curl -L https://docs.meilisearch.com/movies.json -o movies.json -``` +๐Ÿ’Œ Want to make a suggestion or give feedback? Here are some of the channels where you can reach us: -Now, you're ready to index some data. +- For feature requests, please visit our [product repository](https://github.com/meilisearch/product/discussions) +- Found a bug? Open an [issue](https://github.com/meilisearch/meilisearch/issues)! +- Want to be part of our Slack community? [Join us!](https://slack.meilisearch.com/) +- For everything else, please check [this page listing some of the other places where you can find us](https://docs.meilisearch.com/learn/what_is_meilisearch/contact.html) -```bash -curl -i -X POST 'http://127.0.0.1:7700/indexes/movies/documents' \ - --header 'content-type: application/json' \ - --data-binary @movies.json -``` - -### Search for Documents - -#### In command line - -The search engine is now aware of your documents and can serve those via an HTTP server. - -The [`jq` command-line tool](https://stedolan.github.io/jq/) can greatly help you read the server responses. - -```bash -curl 'http://127.0.0.1:7700/indexes/movies/search?q=botman+robin&limit=2' | jq -``` - -```json -{ - "hits": [ - { - "id": "415", - "title": "Batman & Robin", - "poster": "https://image.tmdb.org/t/p/w1280/79AYCcxw3kSKbhGpx1LiqaCAbwo.jpg", - "overview": "Along with crime-fighting partner Robin and new recruit Batgirl, Batman battles the dual threat of frosty genius Mr. Freeze and homicidal horticulturalist Poison Ivy. Freeze plans to put Gotham City on ice, while Ivy tries to drive a wedge between the dynamic duo.", - "release_date": 866768400 - }, - { - "id": "411736", - "title": "Batman: Return of the Caped Crusaders", - "poster": "https://image.tmdb.org/t/p/w1280/GW3IyMW5Xgl0cgCN8wu96IlNpD.jpg", - "overview": "Adam West and Burt Ward returns to their iconic roles of Batman and Robin. Featuring the voices of Adam West, Burt Ward, and Julie Newmar, the film sees the superheroes going up against classic villains like The Joker, The Riddler, The Penguin and Catwoman, both in Gotham Cityโ€ฆ and in space.", - "release_date": 1475888400 - } - ], - "nbHits": 8, - "exhaustiveNbHits": false, - "query": "botman robin", - "limit": 2, - "offset": 0, - "processingTimeMs": 2 -} -``` - -#### Use the Web Interface - -We also deliver an **out-of-the-box [web interface](https://github.com/meilisearch/mini-dashboard)** in which you can test Meilisearch interactively. - -You can access the web interface in your web browser at the root of the server. The default URL is [http://127.0.0.1:7700](http://127.0.0.1:7700). All you need to do is open your web browser and enter Meilisearchโ€™s address to visit it. This will lead you to a web page with a search bar that will allow you to search in the selected index. - -| [See the gif above](#demo) - -## Documentation - -Now that your Meilisearch server is up and running, you can learn more about how to tune your search engine in [the documentation](https://docs.meilisearch.com). - -## Contributing - -Hey! We're glad you're thinking about contributing to Meilisearch! Feel free to pick an [issue labeled as `good first issue`](https://github.com/meilisearch/meilisearch/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22), and to ask any question you need. Some points might not be clear and we are available to help you! - -Also, we recommend following the [CONTRIBUTING](./CONTRIBUTING.md) to create your PR. - -## Core engine and tokenizer - -The code in this repository is only concerned with managing multiple indexes, handling the update store, and exposing an HTTP API. - -Search and indexation are the domain of our core engine, [`milli`](https://github.com/meilisearch/milli), while tokenization is handled by [our `tokenizer` library](https://github.com/meilisearch/tokenizer/). -## Telemetry - -Meilisearch collects anonymous data regarding general usage. -This helps us better understand developers' usage of Meilisearch features. - -To find out more on what information we're retrieving, please see our documentation on [Telemetry](https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html). - -This program is optional, you can disable these analytics by using the `MEILI_NO_ANALYTICS` env variable. - -## Feature request - -The feature requests are not managed in this repository. Please visit our [dedicated repository](https://github.com/meilisearch/product) to see our work about the Meilisearch product. - -If you have a feature request or any feedback about an existing feature, please open [a discussion](https://github.com/meilisearch/product/discussions). -Also, feel free to participate in the current discussions, we are looking forward to reading your comments. - -## ๐Ÿ’Œ Contact - -Please visit [this page](https://docs.meilisearch.com/learn/what_is_meilisearch/contact.html#contact-us). - -Meilisearch is developed by [Meili](https://www.meilisearch.com), a young company. To know more about us, you can [read our blog](https://blog.meilisearch.com). Any suggestion or feedback is highly appreciated. Thank you for your support! +Thank you for your support! diff --git a/assets/demo-dark.gif b/assets/demo-dark.gif new file mode 100644 index 000000000..947322878 Binary files /dev/null and b/assets/demo-dark.gif differ diff --git a/assets/demo-light.gif b/assets/demo-light.gif new file mode 100644 index 000000000..328145646 Binary files /dev/null and b/assets/demo-light.gif differ diff --git a/assets/integrations.png b/assets/integrations.png new file mode 100644 index 000000000..00a12fdad Binary files /dev/null and b/assets/integrations.png differ diff --git a/assets/meilisearch-logo-dark.svg b/assets/meilisearch-logo-dark.svg new file mode 100644 index 000000000..437860e91 --- /dev/null +++ b/assets/meilisearch-logo-dark.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/meilisearch-logo-light.svg b/assets/meilisearch-logo-light.svg new file mode 100644 index 000000000..ccd55cc50 --- /dev/null +++ b/assets/meilisearch-logo-light.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/meilisearch-http/src/option.rs b/meilisearch-http/src/option.rs index e97bf39d7..9459f0309 100644 --- a/meilisearch-http/src/option.rs +++ b/meilisearch-http/src/option.rs @@ -147,7 +147,7 @@ pub struct Opt { pub log_level: String, /// Enables Prometheus metrics and /metrics route. - #[clap(long)] + #[clap(long, env = "MEILI_ENABLE_METRICS_ROUTE")] pub enable_metrics_route: bool, #[serde(flatten)]