🚀 Производительность
которую вы ищете

Производительность движет развитием Manticore Search. Мы стремимся к достижению низкого времени отклика, что критично для анализа больших наборов данных. Пропускная способность также является ключевым фактором, позволяя Manticore обрабатывать большое количество запросов в секунду. Manticore Search — это самый быстрый открытый поисковый движок для больших данных и векторного поиска.

Экономичный поисковый движок

Manticore Search — это самый удобный, доступный и экономичный движок для поиска. Мы превосходим в эффективности, даже на небольших настройках VM/контейнеров с минимальными ресурсами, такими как 1 ядро и 1 ГБ памяти, при этом по-прежнему обеспечивая впечатляющую скорость . Manticore Search разработан для обработки широкого спектра случаев использования и предлагает мощную производительность с эффективностью использования ресурсов для операций любого масштаба. Изучите наши бенчмарки здесь , чтобы увидеть, как Manticore превосходит другие решения в различных сценариях.

Экономичный поисковый движок

Векторный поиск

Откройте для себя мощные возможности семантического и векторного поиска с Manticore Search. Узнайте больше, изучив наши статьи о векторном поиске в Manticore и интеграции векторного поиска в GitHub .

Векторный поиск

Альтернатива Elasticsearch

Manticore Search — это мощная альтернатива Elasticsearch. Интегрируйте его с Logstash и Beats , чтобы увидеть улучшения производительности до 29 раз быстрее, чем Elasticsearch при обработке набора данных логов Nginx на 10M. Для анализа логов Manticore также работает без проблем с Kibana, предлагая лучшую производительность. Узнайте больше в нашем сравнении: Manticore Search против Elasticsearch для анализа логов . Узнайте, как Manticore ускоряет поиск в различных случаях использования .

Альтернатива Elasticsearch

Профессиональные услуги

Хотя Manticore является 100% открытым исходным кодом, мы здесь, чтобы помочь вам извлечь из него максимум!

Консультирование: Сэкономьте время и ресурсы вашей команды, создавая быстрее
Тонкая настройка: Убедитесь, что ваш экземпляр работает на пике производительности
Разработка функций: Получите индивидуальные функции, адаптированные к потребностям вашего бизнеса

Узнайте больше о нашем полном спектре услуг .

Профессиональные услуги

Истинный открытый исходный код

Мы любим открытый исходный код. Manticore Search и другие публично доступные продукты Manticore полностью бесплатны для использования и опубликованы под лицензиями открытого исходного кода, одобренными OSI . Не стесняйтесь вносить свой вклад на GitHub .

Истинный открытый исходный код

Просто в использовании

Узнайте, как легко использовать Manticore Search с популярными языками программирования.
Настройте и выполните поиск всего за несколько строк кода менее чем за 1 минуту.

curl localhost:9308/_bulk -H "Content-Type: application/x-ndjson" -d '
{ "index" : { "_index" : "tbl" } }
{ "title" : "Сумка через плечо", "price": 19.85}
{ "index" : { "_index" : "tbl" } }
{ "title" : "микрофибровая простыня", "price": 19.99}
'

# Поиск с подсветкой
curl localhost:9308/search -d '
{
  "index": "tbl",
  "query": {
    "match": {
      "*": "сумка"
    }
  },
  "highlight": {
    "fields": ["title"]
  }
}'
create table products(title text, price float) morphology='stem_en';
insert into products(title,price) values ('Сумка через плечо с кисточкой', 19.85), ('комплект микрофибровых простыней', 19.99), ('Перчатка для удаления шерсти домашних животных', 7.99);
select id, highlight(), price from products where match('удалить шерсть');
curl "localhost:9308/sql?mode=raw" -d "INSERT INTO mytable (title, price) VALUES ('Сумка через плечо', 19.85), ('микрофибровая простыня', 19.99)"

curl localhost:9308/sql -d "SELECT *, HIGHLIGHT() FROM mytable WHERE MATCH('сумка')"
use Manticoresearch\{Index, Client};
$client = new Client(['host'=>'127.0.0.1','port'=>9308]);
$table = $client->index('products');
$table->addDocument(['title' => 'Сумка через плечо', 'price' => 19.85]);
$table->addDocument(['title' => 'микрофибровая простыня', 'price' => 19.99]);

# Поиск с подсветкой
$result = $table->search('сумка')->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" : "Сумка через плечо с кисточкой", "price" : 19.85}});
res = await indexApi.insert({"index": "products", "doc" : {"title" : "комплект микрофибровых простыней", "price" : 19.99}});
res = await searchApi.search({"index": "products", "query": {"query_string": "@title сумка"}, "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 : 'Сумка через плечо с кисточкой'}});
await indexApi.insert({index : 'products', id : 2, doc : {title : 'Перчатка для удаления шерсти домашних животных'}});
const res = await searchApi.search({
	index: 'products',
	query: { query_string: {'сумка'} },
});
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" : "Сумка через плечо с кисточкой", "price" : 19.85}})
indexApi.insert({"index": "products", "doc" : {"title" : "Перчатка для удаления шерсти домашних животных", "price" : 7.99}})
searchApi.search({"index": "products", "query": {"query_string": "@title сумка"}, "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" : "Сумка через плечо с кисточкой", "price" : 19.85}})
    await indexApi.insert({"index": "products", "doc" : {"title" : "Перчатка для удаления шерсти домашних животных", "price" : 7.99}})
    await searchApi.search({"index": "products", "query": {"query_string": "@title сумка"}, "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": "Сумка через плечо с кисточкой"}
indexReq := manticoreclient.NewInsertDocumentRequest(tableName, indexDoc)
indexReq.SetId(1)
apiClient.IndexAPI.Insert(context.Background()).InsertDocumentRequest(*indexReq).Execute();

indexDoc = map[string]interface{} {"title": "Перчатка для удаления шерсти домашних животных"}
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;

Что говорят люди о Manticore Search

Не верьте нам на слово, послушайте, что говорят наши замечательные пользователи!

Мы ежедневно полагаемся на Manticore как на основу нашего сервиса текстового анализа, используя как его мощный основной движок, так и Python API. Поддержка команды Manticore исключительна — они всегда отзывчивы, знающи и готовы помочь. Среди его многочисленных достоинств мы особенно ценим: - Эффективные массовые вставки/обновления для операций с высокой пропускной способностью. - Бесшовная интеграция с контейнерами, упрощающая развертывание и масштабируемость. - Гибкая функциональность match(), которая позволяет точно и настраиваемо выполнять запросы. После оценки нескольких решений с аналогичными возможностями мы выбрали Manticore за его непревзойденную гибкость и богатый набор функций.

orazs
orazs

Я использую сам движок и клиенты на go и php. Я выбрал Manticore, потому что он с открытым исходным кодом, легко интегрируется, у него отзывчивые разработчики и он не требует много аппаратных ресурсов. Очень положительный опыт — движок дал огромный прирост производительности и открыл двери для новых сервисов.

Alisher Rusinov
Alisher Rusinov

Flumtec

Мне нравится Manticore search за его низкое потребление ресурсов. Elasticsearch как альтернатива требует больше ресурсов из-за Java. Документация могла бы более четко объяснять фасетный и префиксный поиск. В целом, мне действительно нравится — я еще не использовал его в производстве, но скоро начну. Большое спасибо сообществу за то, что указали мне на Manticore!

Roman
Roman

Python Backend Dev

Я узнал о Manticore на работе на https://poisk.im/ (Сайт, где мы используем Manticore). Документация отличная, продукт быстрый, и в целом он надежный — я бы оценил его на 8/10. Я хотел бы видеть такие функции, как ассоциативный поиск, векторный поиск и нечеткий поиск, доступные по HTTP, а не только по SQL.

Flild
Flild

Backend developer in notissimus

Мы нашли Manticore, когда искали альтернативу Meilisearch. В нашем случае он оказался более надежным, гибким и предсказуемым, чем Meilisearch. Было бы здорово иметь подготовленные выражения в SQL-режиме и автооптимизацию без балансировщика. В целом, все хорошо.

Max Besogonov
Max Besogonov

Developer at @thermos

Я использую Manticore для полнотекстового поиска и люблю, как быстро выполняются запросы. Я бы оценил его на 7/10 — в некоторых местах сообщения об ошибках должны быть более ясными, но команда поддержки отличная, и я верю, что проект будет продолжать улучшаться.

Ali Suliman
Ali Suliman

Developer at BeInMedia

Manticoresearch быстрый, справляется с высокой нагрузкой даже на слабых серверах, а конфигурации очень гибкие. Он супер стабильный — я на версии 4 в производстве и готовлюсь перейти на версию 9. Если чего-то не хватает, я обычно решаю это в пользовательском коде. В целом, мой опыт очень положительный — документация и канал поддержки в Telegram помогают со всем.

Yuri (godem111)
Yuri (godem111)

Мы используем Manticore Search уже более 5 лет. Он гибкий, легко настраивается и хорошо масштабируется с большими индексами. Мы хотели бы видеть более продвинутые варианты группировки, такие как медиана, и возможность использовать функции, такие как month() и day(), с поддержкой часовых поясов. В целом, наш опыт был очень положительным — мы давно перешли с Sphinx из-за его ограниченных возможностей. Немного контекста: - Индексированные документы: ~100м - Индексированные байты: 35TiB (в будущем мы планируем увеличить это число до 100)

sabnak
sabnak

Одной из определяющих особенностей Manticore, которая сразу же привлекла мое внимание, была его замечательная скорость. Возможность взаимодействовать с сервисом, используя JSON, обеспечила гибкий и современный подход к обработке поисковых запросов, что хорошо соответствует текущим практикам разработки. Мой общий опыт работы с Manticore был несколько смешанным. С одной стороны, мне действительно понравились возможности, которые он предлагает, особенно производительность и метод общения через JSON. Эти аспекты значительно повысили эффективность и адаптивность моих проектов. С другой стороны, освоение Manticore стало путешествием, которое потребовало тщательного изучения его руководства. Кривая обучения, хотя и не непроходимая, потребовала значительного времени и усилий. Активное сообщество и форум поддержки также внесли значительный вклад в процесс поиска решений для возникающих передо мной проблем. Заметной проблемой стало сильное ориентирование на SQL, включая учебные материалы, которые, хотя и были исчерпывающими, представляли собой крутой путь обучения для кого-то, кто больше привык к системам, ориентированным на JSON. Несмотря на эти трудности, мой опыт работы с Manticore в целом был положительным. Сочетание скорости, гибкости и мощных поисковых возможностей, которые он предлагает, оказалось бесценным. В дальнейшем я надеюсь увидеть более широкий спектр учебных ресурсов, которые будут подходить как для ветеранов SQL, так и для тех, кто более комфортно чувствует себя с JSON. Manticore имеет потенциал стать универсальным инструментом в области поисковых технологий, и я с нетерпением жду возможности продолжить исследовать его возможности.

THE-KONDRAT
THE-KONDRAT

Перед Manticore я не работал с чем-то подобным, но я был приятно удивлен тем, насколько все оказалось простым. Документация была ясной и исчерпывающей, предоставляя ответы на почти все мои вопросы сразу. Она провела меня через настройку моего собственного экземпляра базы данных, заполнение его данными и многое другое, без каких-либо проблем. Оглядываясь на мой общий опыт работы с Manticore, я бы сказал, что он был отличным. Мне очень понравилось работать с ним, процесс оказался гораздо более интуитивным, чем я ожидал. Если мне снова понадобится полнотекстовый поиск в моей работе, Manticore, безусловно, будет моим первым выбором. Manticore не только удовлетворил мои потребности, но и сделал это так, что потенциально сложный процесс казался легким. Этот опыт был невероятно положительным, и я с нетерпением жду возможности продолжить исследовать, что может предложить Manticore.

Владимир Семериков
Владимир Семериков

Вы знаете, я сам что-то вроде дата-сайентиста

Мы ежедневно полагаемся на Manticore как на основу нашего сервиса текстового анализа, используя как его мощный основной движок, так и Python API. Поддержка команды Manticore исключительна — они всегда отзывчивы, знающи и готовы помочь. Среди его многочисленных достоинств мы особенно ценим: - Эффективные массовые вставки/обновления для операций с высокой пропускной способностью. - Бесшовная интеграция с контейнерами, упрощающая развертывание и масштабируемость. - Гибкая функциональность match(), которая позволяет точно и настраиваемо выполнять запросы. После оценки нескольких решений с аналогичными возможностями мы выбрали Manticore за его непревзойденную гибкость и богатый набор функций.

orazs
orazs

Я использую сам движок и клиенты на go и php. Я выбрал Manticore, потому что он с открытым исходным кодом, легко интегрируется, у него отзывчивые разработчики и он не требует много аппаратных ресурсов. Очень положительный опыт — движок дал огромный прирост производительности и открыл двери для новых сервисов.

Alisher Rusinov
Alisher Rusinov

Flumtec

Мне нравится Manticore search за его низкое потребление ресурсов. Elasticsearch как альтернатива требует больше ресурсов из-за Java. Документация могла бы более четко объяснять фасетный и префиксный поиск. В целом, мне действительно нравится — я еще не использовал его в производстве, но скоро начну. Большое спасибо сообществу за то, что указали мне на Manticore!

Roman
Roman

Python Backend Dev

Я узнал о Manticore на работе на https://poisk.im/ (Сайт, где мы используем Manticore). Документация отличная, продукт быстрый, и в целом он надежный — я бы оценил его на 8/10. Я хотел бы видеть такие функции, как ассоциативный поиск, векторный поиск и нечеткий поиск, доступные по HTTP, а не только по SQL.

Flild
Flild

Backend developer in notissimus

Мы нашли Manticore, когда искали альтернативу Meilisearch. В нашем случае он оказался более надежным, гибким и предсказуемым, чем Meilisearch. Было бы здорово иметь подготовленные выражения в SQL-режиме и автооптимизацию без балансировщика. В целом, все хорошо.

Max Besogonov
Max Besogonov

Developer at @thermos

Я использую Manticore для полнотекстового поиска и люблю, как быстро выполняются запросы. Я бы оценил его на 7/10 — в некоторых местах сообщения об ошибках должны быть более ясными, но команда поддержки отличная, и я верю, что проект будет продолжать улучшаться.

Ali Suliman
Ali Suliman

Developer at BeInMedia

Manticoresearch быстрый, справляется с высокой нагрузкой даже на слабых серверах, а конфигурации очень гибкие. Он супер стабильный — я на версии 4 в производстве и готовлюсь перейти на версию 9. Если чего-то не хватает, я обычно решаю это в пользовательском коде. В целом, мой опыт очень положительный — документация и канал поддержки в Telegram помогают со всем.

Yuri (godem111)
Yuri (godem111)

Мы используем Manticore Search уже более 5 лет. Он гибкий, легко настраивается и хорошо масштабируется с большими индексами. Мы хотели бы видеть более продвинутые варианты группировки, такие как медиана, и возможность использовать функции, такие как month() и day(), с поддержкой часовых поясов. В целом, наш опыт был очень положительным — мы давно перешли с Sphinx из-за его ограниченных возможностей. Немного контекста: - Индексированные документы: ~100м - Индексированные байты: 35TiB (в будущем мы планируем увеличить это число до 100)

sabnak
sabnak

Одной из определяющих особенностей Manticore, которая сразу же привлекла мое внимание, была его замечательная скорость. Возможность взаимодействовать с сервисом, используя JSON, обеспечила гибкий и современный подход к обработке поисковых запросов, что хорошо соответствует текущим практикам разработки. Мой общий опыт работы с Manticore был несколько смешанным. С одной стороны, мне действительно понравились возможности, которые он предлагает, особенно производительность и метод общения через JSON. Эти аспекты значительно повысили эффективность и адаптивность моих проектов. С другой стороны, освоение Manticore стало путешествием, которое потребовало тщательного изучения его руководства. Кривая обучения, хотя и не непроходимая, потребовала значительного времени и усилий. Активное сообщество и форум поддержки также внесли значительный вклад в процесс поиска решений для возникающих передо мной проблем. Заметной проблемой стало сильное ориентирование на SQL, включая учебные материалы, которые, хотя и были исчерпывающими, представляли собой крутой путь обучения для кого-то, кто больше привык к системам, ориентированным на JSON. Несмотря на эти трудности, мой опыт работы с Manticore в целом был положительным. Сочетание скорости, гибкости и мощных поисковых возможностей, которые он предлагает, оказалось бесценным. В дальнейшем я надеюсь увидеть более широкий спектр учебных ресурсов, которые будут подходить как для ветеранов SQL, так и для тех, кто более комфортно чувствует себя с JSON. Manticore имеет потенциал стать универсальным инструментом в области поисковых технологий, и я с нетерпением жду возможности продолжить исследовать его возможности.

THE-KONDRAT
THE-KONDRAT

Перед Manticore я не работал с чем-то подобным, но я был приятно удивлен тем, насколько все оказалось простым. Документация была ясной и исчерпывающей, предоставляя ответы на почти все мои вопросы сразу. Она провела меня через настройку моего собственного экземпляра базы данных, заполнение его данными и многое другое, без каких-либо проблем. Оглядываясь на мой общий опыт работы с Manticore, я бы сказал, что он был отличным. Мне очень понравилось работать с ним, процесс оказался гораздо более интуитивным, чем я ожидал. Если мне снова понадобится полнотекстовый поиск в моей работе, Manticore, безусловно, будет моим первым выбором. Manticore не только удовлетворил мои потребности, но и сделал это так, что потенциально сложный процесс казался легким. Этот опыт был невероятно положительным, и я с нетерпением жду возможности продолжить исследовать, что может предложить Manticore.

Владимир Семериков
Владимир Семериков

Вы знаете, я сам что-то вроде дата-сайентиста

Установить Manticore Search

Установить Manticore Search