🚀 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.
29x
faster for Log Analytics
than Elasticsearch in the log analytics benchmark (10M Nginx log records)
5x
faster in big Hackernews benchmark (medium-size data)
than Elasticsearch in the 100M Hackernews comments benchmark
15x
faster in small Hackernews benchmark (small data)
than Elasticsearch in the 1 million Hackernews comments benchmark
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.
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.
Elasticsearch alternative
Manticore Search offers a superior alternative to Elasticsearch. Use Manticore search engine with Logstash and Beats and experience performance improvements up to 29x better than Elasticsearch when handling 10M Nginx logs dataset. Discover more about our enhanced search speeds in various use cases.
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.
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.
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 (
"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);
What people say about Manticore Search
Don’t just take our word for it, hear what our lovely users have to say!