🚀 性能
你正在寻找的
性能驱动 Manticore Search 的开发。我们致力于实现 低响应时间,这对于分析大型数据集至关重要。吞吐量也是一个关键考虑因素,使 Manticore 能够每秒处理大量查询。Manticore Search 是 处理大数据和向量搜索的最快开源搜索引擎。
成本效益高的搜索引擎
Manticore Search 是最用户友好、易于访问且 成本效益高的搜索数据库。我们在效率方面表现出色,即使在资源有限的小型 VM/容器设置上,例如 1 个核心和 1GB 内存, 仍然能提供令人印象深刻的性能 。Manticore Search 被设计用于处理各种使用场景,并为所有规模的操作提供强大的性能和资源效率。通过我们的基准测试 此处 查看 Manticore 在各种场景中如何超越其他解决方案。
向量搜索
通过 Manticore Search 发现语义和向量搜索的强大功能。通过阅读我们的文章了解更多信息: Manticore 中的向量搜索 和 将向量搜索集成到 GitHub 。

Elasticsearch 替代方案
Manticore Search 是 Elasticsearch 的强大替代方案。将其与 Logstash 和 Beats 集成,处理 10M Nginx 日志数据集时性能可提升高达 比 Elasticsearch 快 29 倍 。对于日志分析,Manticore 还能与 Kibana 无缝协作,提供更好的性能。在我们的比较中了解更多: Manticore Search 与 Elasticsearch 的日志分析对比 。探索 Manticore 如何在 各种用例 中提升搜索速度。
专业服务
虽然 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" : "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;
人们关于 Manticore Search 的评价
不要只听我们的,听听我们可爱的用户怎么说!











