做公司网站的尺寸一般是多大,企业管理网站,psd素材,安卓手机app痛点 虽然Elasticsearch足够灵活强大、扩展性和实时性也较好。但是对于中小型项目来说#xff0c;Elasticsearch还是显得有些庞大#xff0c;对硬件设备的要求也较高。那么#xff0c;在要求不是很高的情况下#xff0c;我们可以考虑另一种搜索引擎方案#xff1a;MeiliSe…痛点 虽然Elasticsearch足够灵活强大、扩展性和实时性也较好。但是对于中小型项目来说Elasticsearch还是显得有些庞大对硬件设备的要求也较高。那么在要求不是很高的情况下我们可以考虑另一种搜索引擎方案MeiliSearch。 MeiliSearch是一个功能强大、快速、开源、易于使用和部署的搜索引擎并且MeiliSearch的搜索和索引都是高度可定制的提供开箱即用的功能属性如错字容忍、过滤器和同义词。而最重要的一点是它【支持中文搜索】而不需要添加额外的配置。 特性 它具有以下特点 快速 MeiliSearch旨在提供快速的搜索速度。使用MeiliSearch用户可以在毫秒级别内获取查询结果即使在大数据集上也是如此。精度高 MeiliSearch采用先进的算法来确保搜索结果的准确性。它支持拼写修正、同义词替换、近义词搜索等功能这些功能可以大大提高搜索结果的质量。可定制性强 MeiliSearch具有灵活的API可以轻松集成到任何应用程序中。它还支持自定义排名、字段权重和搜索范围等功能。易于使用 MeiliSearch的安装和设置过程非常简单并且它提供了易于使用的Web界面和CLI工具使用户可以轻松管理和监控搜索引擎。 快速 在官方网站上提供了一些性能比较数据和基准测试结果这些测试结果显示MeiliSearch在处理大型数据集时速度非常快可以在毫秒级别内返回查询结果。 例如在官方提供的基准测试中使用MeiliSearch处理10万个文档时平均搜索时间为1.47毫秒而使用Elasticsearch搜索同样的数据集时平均搜索时间为44.1毫秒。这表明MeiliSearch在速度方面比其他一些搜索引擎更快并且可以在大规模数据集上实现高效搜索。 高精度搜索 MeiliSearch的第二个特点是高精度搜索。为了实现这个特点MeiliSearch使用了多种算法和技术包括 拼写纠正当用户拼写单词错误时MeiliSearch可以自动检测并纠正拼写错误从而提供更准确的搜索结果。同义词替换MeiliSearch支持同义词替换当用户输入一个词时搜索引擎会将其替换为相关的同义词从而扩展搜索范围并提供更准确的搜索结果。近义词搜索MeiliSearch还支持近义词搜索当用户输入一个词时搜索引擎会在索引中查找相关的近义词并将它们包含在搜索结果中。 除了上述功能MeiliSearch还支持模糊搜索、停用词过滤、基于短语和前缀的搜索等多种功能这些功能可以大大提高搜索结果的质量和准确性。总之MeiliSearch通过多种算法和技术来提高搜索结果的准确性和质量使其成为一种高精度的搜索引擎。 可定制性强 MeiliSearch的第三个特点是可定制性强。它提供了灵活的API使开发人员可以根据自己的需求自定义搜索引擎的各种功能和特性包括 自定义排名开发人员可以根据自己的需求自定义搜索结果的排名方式以确保最相关的结果在搜索结果列表中排名靠前。字段权重开发人员可以指定搜索引擎在搜索过程中应该优先考虑哪些字段以提高搜索结果的准确性。搜索范围开发人员可以限制搜索的范围例如只搜索特定的字段或文档类型以提高搜索结果的质量。 以下是一些示例 假设我们有一个在线书店我们想要实现一种搜索功能可以搜索书名、作者、出版社等字段并且希望搜索结果按照出版日期的先后顺序排列。我们可以使用MeiliSearch的API来实现这个功能例如 import io.github.crew102.meilisearchjava.Client;
import io.github.crew102.meilisearchjava.Index;public class MeiliSearchDemo {public static void main(String[] args) {// Create a MeiliSearch client objectClient client new Client(http://localhost:7700, masterKey);// Get an indexIndex index client.getIndex(books);// Define search parametersSearchParams params new SearchParams().setSort(Collections.singletonList(published_date)).setAttributesToHighlight(Arrays.asList(title, author, publisher)).setAttributesToRetrieve(Arrays.asList(title, author, publisher, published_date));// Perform searchSearchResultsBook results index.search(Harry Potter, Book.class, params);// Print search resultsfor (SearchResultBook hit : results.getHits()) {Book book hit.getResult();System.out.println(book.getTitle() by book.getAuthor() published by book.getPublisher() on book.getPublishedDate());}}
} 在上面的示例中我们首先创建了一个MeiliSearch客户端对象然后定义了一些搜索参数例如按照出版日期排序、高亮显示标题、作者和出版商等。接下来我们使用MeiliSearch的search方法来执行搜索并遍历搜索结果以打印出书名、作者、出版社和出版日期等信息。 支持多语言搜索 MeiliSearch的第五个特点是支持多语言搜索。这意味着MeiliSearch能够搜索多种语言的文本并且可以正确处理每种语言的语法和语义。这种功能对于需要支持全球用户的应用程序非常有用例如国际化的电子商务平台、跨语言的新闻网站等。 MeiliSearch支持的语言非常多包括但不限于英语、中文、日语、韩语、法语、德语、西班牙语、意大利语、荷兰语、葡萄牙语、俄语、阿拉伯语、希伯来语等等。MeiliSearch能够支持如此多种语言的搜索主要得益于其内置的各种语言处理工具例如分词器、词干提取器、同义词扩展器、语义分析器等等。 部署安装 环境ubuntu 部署方式Docker 编排工具DockerCompose 配置信息: version: 3services:meilisearch:image: getmeili/meilisearch:latestcontainer_name: meilisearchrestart: alwaysenvironment:MEILI_HTTP_ADDR: 0.0.0.0:7700# MEILI_MASTER_KEY: meilisearchmasterkeyports:- 7700:7700volumes:- meilisearch_data:/data.msvolumes:meilisearch_data: 执行安装命令 docker-compose -f meilisearch_compose.yaml stop docker-compose 下载测试数据 测试数据地址https://docs.meilisearch.com/movies.json 导入测试数据 curl -X POST http://localhost:7700/indexes/movies/documents?primaryKeyid -H Content-Type: application/json --data-binary movies.json 总结 总的来说对于数据量不是很大的中小型企业来说几百万到几千万的数据都可以使用 MeiliSearch 搜索引擎。同时它的使用场景基本可以覆盖当前主流的平台和技术如管理后台搜索、小程序搜索等场景中。是一款真正轻量级安装部署、搜索速度快到极致名副其实的轻量级且美丽搜索引擎