🚀 Производительность
которую вы ищете
В основе разработки Manticore Search лежит производительность. Мы стремимся к минимальному времени отклика, что особенно важно при работе с большими объемами данных. Высокая пропускная способность позволяет Manticore обрабатывать тысячи запросов в секунду. Manticore Search — самый быстрый поисковый движок с открытым кодом для работы с большими данными и векторным поиском.
4x
быстрее для больших данных
чем Elasticsearch в бенчмарке больших наборов данных (1,7 миллиарда документов)
29x
быстрее в задаче анализа логов
чем Elasticsearch в бенчмарке анализа логов (10M записей логов Nginx)
5x
быстрее в большом бенчмарке Hackernews (данные среднего объема)
чем Elasticsearch в бенчмарке 100M комментариев Hackernews
15x
быстрее в малом бенчмарке Hackernews (малые данные)
чем Elasticsearch в бенчмарке 1 миллиона комментариев Hackernews
Экономичный поисковый движок
Manticore Search — это самый удобный, доступный и экономичный движок для поиска. Он отличается эффективностью, даже при скромных ресурсах виртуальной машины или контейнера, такими как 1 ядро и 1ГБ памяти, при этом по-прежнему обеспечивая впечатляющую скорость . Manticore Search предназначен для работы с широким спектром вариантов использования и предлагает мощную производительность и эффективное использование ресурсов для разных масштабов объёмов данных и нагрузки. Взгляните на бенчмарки Manticore здесь , чтобы увидеть, как Manticore превосходит другие решения в различных сценариях.
Векторный поиск
Откройте для себя возможности семантического и векторного поиска с Manticore Search. Читайте наши статьи , чтобы узнать больше о векторном поиске в Manticore и его применении для, например, поиска задач на GitHub.

Альтернатива Elasticsearch
Manticore Search — превосходная альтернатива Elasticsearch. Вы можете ипользовать Manticore с Logstash и Beats , что, например, может улучшить производительность поиска до 29 раз по сравнению с Elasticsearch при обработке логов Nginx. Для визуализации анализа логов Manticore также может быть интегрирована с Kibana, обеспечивая лучшую производительность. Больше бенчмарков в статье .
Профессиональные услуги
Несмотря на то, что Manticore — это 100% открытый исходный код, мы здесь, чтобы помочь вам извлечь из него максимальную пользу!
✓ Консультирование: Экономьте время и ресурсы вашей команды, создавая поисковые системы на основе Manticore быстрее
✓ Тонкая настройка: Будьте уверены, что Manticore работает у вас на пике производительности
✓ Доработки функционала: Закажите новый функционал, адаптированный под ваши бизнес-потребности
Узнайте больше о нашем спектре услуг .
Настоящий opensource
Мы любим opensource. Manticore Search и другие доступные в публичном доступе продукты Manticore абсолютно бесплатны для использования и опубликованы под лицензиями с одобрением OSI . Вы тоже можете внести свой вклад в продукт на GitHub .
Просто в использовании
Посмотрите, как легко использовать Manticore Search с популярными языками программирования.
Настройте и выполните поиск всего за несколько строк кода менее чем за 1 минуту.
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);
Что говорят люди о Manticore Search
Не верьте просто нашим словам, послушайте, что говорят наши замечательные пользователи!