https://github.com/valeriansaliou/sonic

$ rustc --version
rustc 1.50.0-dev

ubantu环境

rocksdb 安装依赖

apt install build-essential

apt install clang

apt install libclang-dev

apt install libc6-dev

apt install g++

apt install llvm-dev

rust换源

$ cd .cargo/
tanpengfei3@bage:~/.cargo$ ls
bin config env registry
tanpengfei3@bage:~/.cargo$ cat config
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
#registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 如果所处的环境中不允许使用 git 协议,可以把上面的地址改为
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

git clone https://github.com/dbtool/sonic.git

配置文件

$ cat /etc/sonic/config.cfg
# 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 = "127.0.0.1:1491"
tcp_timeout = 300 auth_password = "SecretPassword" [channel.search] query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4 suggest_limit_default = 5
suggest_limit_maximum = 20 [store] [store.kv] path = "/opt/data/sonic/data/store/kv/" retain_word_objects = 1000 [store.kv.pool] inactive_after = 1800 [store.kv.database] flush_after = 900 compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true [store.fst] path = "/opt/data/sonic/data/store/fst/" [store.fst.pool] inactive_after = 300 [store.fst.graph] consolidate_after = 180 max_size = 2048
max_words = 250000

编辑

:/opt/wks/sonic$ cargo build
Downloaded ahash v0.4.6 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded cc v1.0.61 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded getrandom v0.1.15 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded hashbrown v0.9.1 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded proc-macro2 v1.0.24 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded regex v1.4.1 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded regex-syntax v0.6.20 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded rocksdb v0.15.0 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded serde v1.0.116 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded serde_derive v1.0.116 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded syn v1.0.44 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded toml v0.5.7 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded aho-corasick v0.7.14 (registry `https://mirrors.ustc.edu.cn/crates.io-index`)
Downloaded 13 crates (1.4 MB) in 4.19s
Compiling libc v0.2.79
Compiling cfg-if v0.1.10
Compiling memchr v2.3.3
Compiling proc-macro2 v1.0.24
Compiling version_check v0.9.2
Compiling bitflags v1.2.1
Compiling glob v0.3.0
Compiling unicode-xid v0.2.1
Compiling lazy_static v1.4.0
Compiling log v0.4.11
Compiling unicode-width v0.1.8
Compiling quick-error v1.2.3
Compiling regex-syntax v0.6.20
Compiling ansi_term v0.11.0
Compiling bindgen v0.54.0
Compiling vec_map v0.8.2
Compiling strsim v0.8.0
Compiling getrandom v0.1.15
Compiling termcolor v1.1.0
Compiling peeking_take_while v0.1.2
Compiling byteorder v1.3.4
Compiling lazycell v1.3.0
Compiling shlex v0.1.1
Compiling rustc-hash v1.1.0
Compiling fs_extra v1.2.0
Compiling autocfg v1.0.1
Compiling serde v1.0.116
Compiling ppv-lite86 v0.2.9
Compiling syn v1.0.44
Compiling utf8-ranges v1.0.4
Compiling ahash v0.3.8
Compiling nix v0.18.0
Compiling serde_derive v1.0.116
Compiling linked-hash-map v0.5.3
Compiling regex-syntax v0.3.9
Compiling ahash v0.4.6
Compiling radix v0.6.0
Compiling unicode-segmentation v1.6.0
Compiling thread_local v1.0.1
Compiling textwrap v0.11.0
Compiling humantime v1.3.0
Compiling nom v5.1.2
Compiling clang-sys v0.29.3
Compiling hashbrown v0.7.2
Compiling linked_hash_set v0.1.4
Compiling hashbrown v0.9.1
Compiling aho-corasick v0.7.14
Compiling quote v1.0.7
Compiling whatlang v0.10.0
Compiling regex v1.4.1
Compiling jobserver v0.1.21
Compiling atty v0.2.14
Compiling which v3.1.1
Compiling memmap v0.6.2
Compiling cc v1.0.61
Compiling clap v2.33.3
Compiling env_logger v0.7.1
Compiling cexpr v0.4.0
Compiling rand_core v0.5.1
Compiling fst v0.3.5
Compiling rand_chacha v0.2.2
Compiling fst-regex v0.2.2
Compiling fst-levenshtein v0.2.1
Compiling rand v0.7.3
Compiling libloading v0.5.2
Compiling jemalloc-sys v0.3.2
Compiling toml v0.5.7
Compiling twox-hash v1.5.0
Compiling librocksdb-sys v6.11.4
Compiling jemallocator v0.3.2
Compiling rocksdb v0.15.0
Compiling sonic-server v1.3.0 (/opt/wks/sonic)
Finished dev [unoptimized + debuginfo] target(s) in 5m 37s

以root用户运行

root@bage:/opt/wks/sonic/target/debug# ./sonic -c /etc/sonic/config.cfg

go客户端

https://github.com/expectedsh/go-sonic

package main

import (
"fmt"
"github.com/expectedsh/go-sonic/sonic"
) func main() { ingester, err := sonic.NewIngester("127.0.0.1", 1491, "SecretPassword")
if err != nil {
panic(err)
} // I will ignore all errors for demonstration purposes _ = ingester.BulkPush("movies", "general", 3, []sonic.IngestBulkRecord{
{"id:6ab56b4kk3", "Star wars"},
{"id:5hg67f8dg5", "Spider man"},
{"id:5hg67f8dg6", "super man"},
{"id:1m2n3b4vf6", "Batman"},
{"id:68d96h5h9d0", "This is another movie"},
}) search, err := sonic.NewSearch("127.0.0.1", 1491, "SecretPassword")
if err != nil {
panic(err)
} results, _ := search.Query("movies", "general", "man", 10, 0) fmt.Println(results)
}
$ go run sc.go
[id:5hg67f8dg6 id:5hg67f8dg5]

sonic 安装记录的更多相关文章

  1. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  2. 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用

    关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用   工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...

  3. sourceinsight安装记录

    sourceinsight安装记录 此文章为本人使用sourceinsight一个星期之后的相关设置步骤记录和经验记录,以备以后查验,网上的相关资料都也较为完善,但是对于新手还是有一定困难的,所以在这 ...

  4. openerp安装记录及postgresql数据库问题解决

    ubuntu-14.04下openerp安装记录1.安装PostgreSQL 数据库    a.安装         sudo apt-get install postgresql    安装后ubu ...

  5. Matlab安装记录 - LED Control Activex控件安装

    Matlab安装记录-LED Control Activex控件安装 2013-12-01  22:06:36 最近在研究Matlab GUI技术,准备用于制作上位机程序:在Matlab GUI的技术 ...

  6. Arch Linux 安装记录

    Arch Linux 安装记录 基本上参考wiki上的新手指南,使用arch 2014.6.1 iso安装 设置网络 有线网络 Arch Linux 默认开启DHCP. 静态ip 首先关闭DHCP:s ...

  7. redis5.0.3单实例简单安装记录

    redis5.0.3单实例简单安装记录 日常需要测试使用,索性记录下来,免得临时又麻烦的找资料. yum -y install make gcc-c++ cmake bison-devel ncurs ...

  8. mysql5.7安装记录

    mysql安装记录 版本5.7 windows系统 一.缺少my.ini文件 [mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设 ...

  9. Liunx/RHEL6.5 Oracle11 安装记录

    1.创建用户组 groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -g dba -m oracle ...

随机推荐

  1. C++ 指针的引用和指向引用的指针

    指向引用的指针 简单使用指针的一个例子就是: int a = 1; int *p = &a; 预先强调: 没有指向引用的指针 原因: 因为引用 不是对象,没有地址. 但是指向引用的指针是什么形 ...

  2. 理解ASP.NET Core - 日志(Logging)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 快速上手 添加日志提供程序 在文章主机(Host)中,讲到Host.CreateDefault ...

  3. Firefox火狐浏览器提示您的链接并不安全(解决办法)

    火狐浏览器不管访问什么,一直提示连接不安全 解决办法: 1.在Firefox地址栏输入"about:config",回车,进入如下图页面 点击"我了解此风险" ...

  4. 概述C# virtual修饰符

    摘要:C#是继C++和Java语言后的又一面向对象的语言,在语法结构,C#有很多地方和C++及Java相似,但是又不同于它们,其中一些关键特别需要引起我们的注意. C# virtual修饰符用于修改方 ...

  5. JDK的第三个LTS版本JDK17来了

    目录 简介 JDK17中的新特性 语言上的新特性 核心库的优化 支持新的平台 预览特性 其他改动 总结 简介 2021年9月JDK17发布了,JDK17是最新的一个LTS版本.所谓LTS版本就是可以得 ...

  6. Linux基础一:基础命令

    Linux是什么,是干什么用的? 1.Linux是一个操作系统,电脑=软件+硬件,而操作系统就是特殊的软件 2.Linux系统内一切皆文件 3.bash shell 是红帽默认的shell(shell ...

  7. Scrapy入门到放弃05:让Item在Pipeline中飞一会儿

    前言 "又回到最初的起点,呆呆地站在镜子前". 本来这篇是打算写Spider中间件的,但是因为这一块涉及到Item,所以这篇文章先将Item讲完,顺便再讲讲Pipeline,然后再 ...

  8. rsyslog配置解析

    本地Rsyslog版本: 8.25.0-1.el6.x86_64 配置 基本语法 Rsyslog 现在支持三种配置语法格式: sysklogd legacy rsyslog RainerScript ...

  9. 8.1 k8s使用PV/PVC做数据持久化运行redis服务,数据保存至NFS

    1.制作redis docker镜像 1.1 准备alpine基础镜像 # 下载 docker pull alpine:3.13 # 更改tag docker tag alpine:3.13 192. ...

  10. 洛谷 P5518 - [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题(莫比乌斯反演+整除分块)

    洛谷题面传送门 一道究极恶心的毒瘤六合一题,式子推了我满满两面 A4 纸-- 首先我们可以将式子拆成: \[ans=\prod\limits_{i=1}^A\prod\limits_{j=1}^B\p ...