🚀 Performance
you are looking for

Performance drives the development of Manticore Search. We are dedicated to achieving low response times, which are crucial for analyzing large datasets. Throughput is also a key consideration, allowing Manticore to handle a high number of queries per second. Manticore Search is the fastest open-source search engine for big data and vector search.

Cost-effective search engine

Manticore Search is the most user-friendly, accessible, and cost-effective database for search. We excel in efficiency, even on small VM/container setups with minimal resources, such as 1 core and 1GB of memory, while still delivering impressive speed . Manticore Search is designed to handle a wide range of use cases and offers powerful performance with resource efficiency for operations of all scales. Explore our benchmarks here to see how Manticore outperforms other solutions in various scenarios.

Cost-effective search engine

Vector Search

Discover the powerful capabilities of Semantic and Vector Search with Manticore Search. Learn more by exploring our articles on Vector Search in Manticore and Integrating Vector Search into GitHub .

Vector Search

Elasticsearch alternative

Manticore Search is a powerful alternative to Elasticsearch. Integrate it with Logstash and Beats to see performance improvements of up to 29x faster than Elasticsearch when processing a 10M Nginx logs dataset. For log analysis, Manticore also works seamlessly with Kibana, offering better performance. Learn more in our comparison: Manticore Search vs. Elasticsearch for Log Analysis . Explore how Manticore boosts search speeds in various use cases .

Elasticsearch alternative

Professional Services

While Manticore is 100% open-source, we’re here to help you make the most of it!

Consulting: Save your team’s time and resources while building faster
Fine-tuning: Ensure your instance runs at peak performance
Feature Development: Get custom features tailored to your business needs

Discover more about our full range of services .

Professional Services

True open source

We love open source. Manticore Search and other publicly available Manticore products are all free to use and published under OSI-approved open source licences . Feel free to contribute on GitHub .

True open source

Easy to use

Check out how easy to use Manticore Search with popular programming languages.
Setup and perform a search in a few lines of code under 1 minute.

curl localhost:9308/_bulk -H "Content-Type: application/x-ndjson" -d '
{ "index" : { "_index" : "tbl" } }
{ "title" : "Crossbody Bag", "price": 19.85}
{ "index" : { "_index" : "tbl" } }
{ "title" : "microfiber sheet", "price": 19.99}
'

# Search with highlighting
curl localhost:9308/search -d '
{
  "index": "tbl",
  "query": {
    "match": {
      "*": "bag"
    }
  },
  "highlight": {
    "fields": ["title"]
  }
}'
create table products(title text, price float) morphology='stem_en';
insert into products(title,price) values ('Crossbody Bag with Tassel', 19.85), ('microfiber sheet set', 19.99), ('Pet Hair Remover Glove', 7.99);
select id, highlight(), price from products where match('remove hair');
curl "localhost:9308/sql?mode=raw" -d "INSERT INTO mytable (title, price) VALUES ('Crossbody Bag', 19.85), ('microfiber sheet', 19.99)"

curl localhost:9308/sql -d "SELECT *, HIGHLIGHT() FROM mytable WHERE MATCH('bag')"
use Manticoresearch\{Index, Client};
$client = new Client(['host'=>'127.0.0.1','port'=>9308]);
$table = $client->index('products');
$table->addDocument(['title' => 'Crossbody Bag', 'price' => 19.85]);
$table->addDocument(['title' => 'microfiber sheet', 'price' => 19.99]);

# Search with highlighting
$result = $table->search('bag')->highlight(['title'])->get();
var Manticoresearch = require('manticoresearch');
var client= new Manticoresearch.ApiClient()
client.basePath="http://127.0.0.1:9308";
indexApi = new Manticoresearch.IndexApi(client);
searchApi = new Manticoresearch.SearchApi(client);
res = await indexApi.insert({"index": "products", "doc" : {"title" : "Crossbody Bag with Tassel", "price" : 19.85}});
res = await indexApi.insert({"index": "products", "doc" : {"title" : "microfiber sheet set", "price" : 19.99}});
res = await searchApi.search({"index": "products", "query": {"query_string": "@title bag"}, "highlight": {"fieldnames": ["title"]}});
import {Configuration, IndexApi, SearchApi, UtilsApi} from "manticoresearch-ts";
const config = new Configuration({
	basePath: 'http://localhost:9308',
})
const indexApi = new IndexApi(config);
const searchApi = new SearchApi(config);
await indexApi.insert({index : 'products', id : 1, doc : {title : 'Crossbody Bag with Tassel'}});
await indexApi.insert({index : 'products', id : 2, doc : {title : 'Pet Hair Remover Glove'}});
const res = await searchApi.search({
	index: 'products',
	query: { query_string: {'bag'} },
});
import manticoresearch
config = manticoresearch.Configuration(
    host = "http://127.0.0.1:9308"
)
client = manticoresearch.ApiClient(config)
indexApi = manticoresearch.IndexApi(client)
searchApi = manticoresearch.SearchApi(client)
indexApi.insert({"index": "products", "doc" : {"title" : "Crossbody Bag with Tassel", "price" : 19.85}})
indexApi.insert({"index": "products", "doc" : {"title" : "Pet Hair Remover Glove", "price" : 7.99}})
searchApi.search({"index": "products", "query": {"query_string": "@title bag"}, "highlight":{"fieldnames":["title"]}})
import manticoresearch
config = manticoresearch.Configuration(
    host = "http://127.0.0.1:9308"
)
with manticoresearch.ApiClient(configuration) as client:
    indexApi = manticoresearch.IndexApi(client)
    searchApi = manticoresearch.SearchApi(client)
    await indexApi.insert({"index": "products", "doc" : {"title" : "Crossbody Bag with Tassel", "price" : 19.85}})
    await indexApi.insert({"index": "products", "doc" : {"title" : "Pet Hair Remover Glove", "price" : 7.99}})
    await searchApi.search({"index": "products", "query": {"query_string": "@title bag"}, "highlight":{"fieldnames":["title"]}})
import (
	"context"
	manticoreclient "github.com/manticoresoftware/manticoresearch-go"
)
configuration := manticoreclient.NewConfiguration()
configuration.Servers[0].URL = "http://localhost:9308"
apiClient := manticoreclient.NewAPIClient(configuration)

tableName := "products"
indexDoc := map[string]interface{} {"title": "Crossbody Bag with Tassel"}
indexReq := manticoreclient.NewInsertDocumentRequest(tableName, indexDoc)
indexReq.SetId(1)
apiClient.IndexAPI.Insert(context.Background()).InsertDocumentRequest(*indexReq).Execute();

indexDoc = map[string]interface{} {"title": "Pet Hair Remover Glove"}
indexReq = manticoreclient.NewInsertDocumentRequest(tableName, indexDoc)
indexReq.SetId(2)
apiClient.IndexAPI.Insert(context.Background()).InsertDocumentRequest(*indexReq).Execute()

searchRequest := manticoreclient.NewSearchRequest(tableName)
query := map[string]interface{} {"query_string": "bag"}
searchRequest.SetQuery(query)

res, _, _ := apiClient.SearchAPI.Search(context.Background()).SearchRequest(*searchRequest).Execute()
import com.manticoresearch.client.*;
import com.manticoresearch.client.model.*;
import com.manticoresearch.client.api.*;
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("http://127.0.0.1:9308");
IndexApi indexApi = new IndexApi(client);
SearchApi searchApi = new SearchApi(client);

// Insert document 1
InsertDocumentRequest newdoc = new InsertDocumentRequest();
HashMap<String,Object> doc = new HashMap<String,Object>(){{
    put("title", "Crossbody Bag with Tassel");
    put("price", 19.85);
}};
newdoc.index("products").setDoc(doc);
sqlresult = indexApi.insert(newdoc);

// Insert document 2
newdoc = new InsertDocumentRequest();
doc = new HashMap<String,Object>(){{
    put("title","microfiber sheet set");
    put("price", 19.99);
}};
newdoc.index("products").setDoc(doc);
sqlresult = indexApi.insert(newdoc);

// Search
query = new HashMap<String,Object>();
query.put("query_string", "@title bag");
searchRequest = new SearchRequest();
searchRequest.setIndex("products");
searchRequest.setQuery(query);

Highlight highlight = new Highlight();
highlight.setFieldnames( Arrays.asList("title") );
searchRequest.setHighlight(highlight);

searchResponse = searchApi.search(searchRequest);
use manticoresearch::{
  apis::{
    {configuration::Configuration,IndexApi,IndexApiClient,SearchApi,SearchApiClient}
  },
  models::{InsertDocumentRequest,SearchRequest,SearchQuery,Highlight}
};

let api_config = Arc::new(Configuration::new());
let index_api = IndexApiClient::new(api_config.clone());
let search_api = SearchApiClient::new(api_config.clone());

// Create documents 
let doc = serde_json::json!({"title": "Crossbody Bag with Tassel", "price": 19.85});
let insert_request = InsertDocumentRequest {
  table: "products",
  doc: doc,
  ..Default::default()
};
  
let _ = index_api.insert(insert_request).await;

// Prepare search request
let query = SearchQuery {
   query_string: Some(serde_json::json!("Star").into()),
   ..Default::default()
};

let highlight = Highlight {
   fields: Some(serde_json::json!(["title"]).into()),
   ..Default::default()
};

let mut options = HashMap::new();
options.insert("cutoff".to_string(), serde_json::json!(5));
options.insert("ranker".to_string(), serde_json::json!("bm25"));

let search_request = SearchRequest {
  table: "movies".to_string(),
  query: Some(Box::new(query)),
  highlight: Some(Box::new(highlight)),
  options: Some(serde_json::json!(options)),
  ..Default::default()
};

 // Perform search
 let search_response = search_api.search(search_request).await;

What people say about Manticore Search

Don’t just take our word for it, hear what our lovely users have to say!

We rely on Manticore daily as the backbone of our text analysis service, leveraging both its powerful core engine and Python API. The support from the Manticore team is exceptional—they're always responsive, knowledgeable, and eager to help. Among its many strengths, we particularly appreciate: - Efficient bulk inserts/updates for high-throughput operations. - Seamless container integration, simplifying deployment and scalability. - The flexible match() functionality, which enables precise and customizable querying. After evaluating multiple solutions with similar capabilities, we chose Manticore for its unmatched flexibility and rich feature set.

orazs
orazs

I use the engine itself and the go and php clients. I chose Manticore because it's open source, easy to integrate, has responsive developers, and doesn't need much hardware. Very positive experience—the engine gave a huge performance boost and opened doors for new services.

Alisher Rusinov
Alisher Rusinov

Flumtec

I like Manticore search for its low resource consumption. Elasticsearch as an alternative is more resource hungry because of Java. The documentation could explain faceted and prefix search more clearly. Overall, I really like it - I haven't used it in production yet, but I will soon. Big thanks to the community for pointing me to Manticore!

Roman
Roman

Python Backend Dev

I found out about Manticore at work in https://poisk.im/ (The site where we use Manticore). The docs are great, the product is fast, and overall it's solid—I'd rate it 8/10. I'd love to see features like associative search, vector search, and fuzzy search available over HTTP, not just SQL.

Flild
Flild

Backend developer in notissimus

We found Manticore while looking for a Meilisearch alternative. In our use case, it's been more reliable, flexible, and predictable than Meilisearch. It would be great to have prepared statements in SQL mode and auto optimize without a balancer. Overall, everything's good.

Max Besogonov
Max Besogonov

Developer at @thermos

I use Manticore for full-text search and love how fast the queries are. I'd give it 7/10—at some places the error messages need to be more clear, but the support team is great and I believe the project will keep getting better.

Ali Suliman
Ali Suliman

Developer at BeInMedia

Manticoresearch is fast, handles high load even on weak servers, and configs are very flexible. It's super stable—I'm on version 4 in production and preparing to move to version 9. If something's missing, I usually handle it in custom code. Overall, my experience is very positive—docs and the Telegram support channel help with everything.

Yuri (godem111)
Yuri (godem111)

We use Manticore Search for over 5 years now. It's flexible, easy to set up, and scales well with large indexes. We'd love to see more advanced grouping options like median, and the ability to use functions like month() and day() with time zone support. Overall, our experience has been very positive — we switched from Sphinx long ago due to its limited features. Some context: - Indexed documents: ~100m - Indexed bytes: 35TiB (in the future, we plan to increase this number up to 100)

sabnak
sabnak

I use manticore search and the columnar library—it's a complete and easy search solution that covers all my use cases. It's fast, scalable, open source, and supports mysql protocol and geo search. I'd give it 9/10. I'd love better docs for non-experts, easier data ingestion, and maybe Parquet support. Found it after trying Sphinx and other tools—Manticore just works better

blackrez
blackrez

One of the defining features of Manticore that immediately grabbed my attention was its remarkable speed. The ability to interface with the service using JSON made for a flexible and modern approach to handling search queries, aligning well with current development practices. My overall experience with Manticore has been somewhat mixed. On one hand, I've genuinely enjoyed the capabilities it brings to the table, particularly the performance and the JSON communication method. These aspects have significantly enhanced the efficiency and adaptability of my projects. On the other hand, mastering Manticore has been a journey that required a thorough dive into its manual. The learning curve, while not insurmountable, demanded considerable time and effort. An active community and a support forum also made a significant contribution to the process of finding solutions to the problems that arose in front of me. A notable challenge has been the strong orientation towards SQL, including the training materials, which, while comprehensive, posed a steep learning path for someone more accustomed to JSON-centric systems. Despite these challenges, my experience with Manticore has been largely positive. The blend of speed, flexibility, and powerful search capabilities it offers has been invaluable. Moving forward, I hope to see a broader range of learning resources that cater to both SQL veterans and those more comfortable with JSON. Manticore has the potential to be a versatile tool in the search technology space, and I'm keen to continue exploring its possibilities.

THE-KONDRAT
THE-KONDRAT

We rely on Manticore daily as the backbone of our text analysis service, leveraging both its powerful core engine and Python API. The support from the Manticore team is exceptional—they're always responsive, knowledgeable, and eager to help. Among its many strengths, we particularly appreciate: - Efficient bulk inserts/updates for high-throughput operations. - Seamless container integration, simplifying deployment and scalability. - The flexible match() functionality, which enables precise and customizable querying. After evaluating multiple solutions with similar capabilities, we chose Manticore for its unmatched flexibility and rich feature set.

orazs
orazs

I use the engine itself and the go and php clients. I chose Manticore because it's open source, easy to integrate, has responsive developers, and doesn't need much hardware. Very positive experience—the engine gave a huge performance boost and opened doors for new services.

Alisher Rusinov
Alisher Rusinov

Flumtec

I like Manticore search for its low resource consumption. Elasticsearch as an alternative is more resource hungry because of Java. The documentation could explain faceted and prefix search more clearly. Overall, I really like it - I haven't used it in production yet, but I will soon. Big thanks to the community for pointing me to Manticore!

Roman
Roman

Python Backend Dev

I found out about Manticore at work in https://poisk.im/ (The site where we use Manticore). The docs are great, the product is fast, and overall it's solid—I'd rate it 8/10. I'd love to see features like associative search, vector search, and fuzzy search available over HTTP, not just SQL.

Flild
Flild

Backend developer in notissimus

We found Manticore while looking for a Meilisearch alternative. In our use case, it's been more reliable, flexible, and predictable than Meilisearch. It would be great to have prepared statements in SQL mode and auto optimize without a balancer. Overall, everything's good.

Max Besogonov
Max Besogonov

Developer at @thermos

I use Manticore for full-text search and love how fast the queries are. I'd give it 7/10—at some places the error messages need to be more clear, but the support team is great and I believe the project will keep getting better.

Ali Suliman
Ali Suliman

Developer at BeInMedia

Manticoresearch is fast, handles high load even on weak servers, and configs are very flexible. It's super stable—I'm on version 4 in production and preparing to move to version 9. If something's missing, I usually handle it in custom code. Overall, my experience is very positive—docs and the Telegram support channel help with everything.

Yuri (godem111)
Yuri (godem111)

We use Manticore Search for over 5 years now. It's flexible, easy to set up, and scales well with large indexes. We'd love to see more advanced grouping options like median, and the ability to use functions like month() and day() with time zone support. Overall, our experience has been very positive — we switched from Sphinx long ago due to its limited features. Some context: - Indexed documents: ~100m - Indexed bytes: 35TiB (in the future, we plan to increase this number up to 100)

sabnak
sabnak

I use manticore search and the columnar library—it's a complete and easy search solution that covers all my use cases. It's fast, scalable, open source, and supports mysql protocol and geo search. I'd give it 9/10. I'd love better docs for non-experts, easier data ingestion, and maybe Parquet support. Found it after trying Sphinx and other tools—Manticore just works better

blackrez
blackrez

One of the defining features of Manticore that immediately grabbed my attention was its remarkable speed. The ability to interface with the service using JSON made for a flexible and modern approach to handling search queries, aligning well with current development practices. My overall experience with Manticore has been somewhat mixed. On one hand, I've genuinely enjoyed the capabilities it brings to the table, particularly the performance and the JSON communication method. These aspects have significantly enhanced the efficiency and adaptability of my projects. On the other hand, mastering Manticore has been a journey that required a thorough dive into its manual. The learning curve, while not insurmountable, demanded considerable time and effort. An active community and a support forum also made a significant contribution to the process of finding solutions to the problems that arose in front of me. A notable challenge has been the strong orientation towards SQL, including the training materials, which, while comprehensive, posed a steep learning path for someone more accustomed to JSON-centric systems. Despite these challenges, my experience with Manticore has been largely positive. The blend of speed, flexibility, and powerful search capabilities it offers has been invaluable. Moving forward, I hope to see a broader range of learning resources that cater to both SQL veterans and those more comfortable with JSON. Manticore has the potential to be a versatile tool in the search technology space, and I'm keen to continue exploring its possibilities.

THE-KONDRAT
THE-KONDRAT

Install Manticore Search

Install Manticore Search