sonic轻量级的搜索引擎,极致的性能,只用来单纯的查询

2023-11-22 14:40

本文主要是介绍sonic轻量级的搜索引擎,极致的性能,只用来单纯的查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sonic是利用rust语言开发的一款轻量级快捷纯净的搜索引擎,不适用于windows系统上部署,比较适合在docker容器上部署

1.在ubuntu上启动docker容器

 

2.在docker容器上下载sonic的镜像文件

docker pull valeriansaliou/sonic:v1.2.0

下载完成后,我们需要配置一份配置文件,比如说sonic的服务器端口号呀等等

 配置文件内容如下:

# Sonic
# Fast, lightweight and schema-less search backend
# Configuration file
# Example: https://github.com/valeriansaliou/sonic/blob/master/config.cfg[server]log_level = "debug"[channel]inet = "0.0.0.0:1491"
tcp_timeout = 300auth_password = "SecretPassword"[channel.search]query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4suggest_limit_default = 5
suggest_limit_maximum = 20[store][store.kv]path = "/var/lib/sonic/store/kv/"retain_word_objects = 1000[store.kv.pool]inactive_after = 1800[store.kv.database]flush_after = 900compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true[store.fst]path = "/var/lib/sonic/store/fst/"[store.fst.pool]inactive_after = 300[store.fst.graph]consolidate_after = 180

在这份配置文件中,你必须注意两个点: 

net,sonic的监听端口,这里默认为"0.0.0.0:1491"。
auth_password,sonic的密码,这里默认为"SecretPassword"。

 然后将文件放在一个合适的位置,记住这个位置,等下启动要用到

/Users/pedro/Desktop/sonic-test/config.cfg

 

  文件配置好后,开始启动服务器

 在docker环境下运行

docker run -p 1491:1491 -v ~/Desktop/sonic-test/config.cfg:/etc/sonic.cfg  valeriansaliou/sonic:v1.2.0

 显示这样则表明启动成功

                  

然后用另一个终端来telnet来连接这个端口1491的服务器

             

注意,这里有个坑,当你telnet上端口之后呢,要马上登录上 sonic服务器,也就是这一行命令

                

ingest是插入数据,search是搜索数据,视情况而定,我说的这个坑是,当你telnet上sonic服务器端口后,如果大约10秒之内不执行登录sonic服务器的话,那么这个连接就会自动断开(一开始不知道,这个有点坑) 如下图的结果

                                            

搞了半天,查了一堆资料,还以为是linux系统的 服务器安全策略,自动把我的连接断开了,原来不是的!!!!。

是连接上后大约10秒之内不登陆不执行操作就会自动断开!!!!这个必须注意,大坑

填完这个坑后,先进行插入数据看看

      

插入数据成功

再进行查询

                                    

查询成功, 刚刚添加的the出来了,其实这个sonic有点类似于solr搜索引擎

               

通过库名+桶名 然后通过value拿到key!

这篇关于sonic轻量级的搜索引擎,极致的性能,只用来单纯的查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410853

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL