乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

一个强大的轻量级全文即时搜索工具meilisearch

发表于 2021-09-10

前言

MeiliSearch 是近两年开源的一个全文搜索引擎,采用Rust语言开发, 主要目标是在小数据规模下实现比 ElasticSearch 更加快速和易用的搜索体验。设计目标针对数据在 500GB 左右的搜索需求,极快,单文件,超轻量

目前已支持中文分词

MeiliSearch 支持的功能如下:

  1. 开源
  2. 用户量(开源搜索引擎第二名)
  3. 中文分词
  4. 同义词
  5. 纠错
  6. 高亮
  7. 全文返回
  8. 高级搜索
  9. 停用词、停用字段
  10. 加权、降权
  11. 逻辑搜索
  12. 唯一字段聚合
  13. 分页
  14. 重新索引

中文文档

快速上手

  1. 下载安装并运行

    1
    2
    curl -L https://install.meilisearch.com | sh
    ./meilisearch

    image-20210910103712092

    此时访问浏览器http://localhost:7700/长这样:

    image-20210910103853046

    里面还没有数据, 接下来下载测试数据

  2. 下载测试数据

    movie.json

  3. 将测试数据导入至meilisearch数据库

    1
    2
    3
    curl \
    -X POST 'http://127.0.0.1:7700/indexes/movies/documents' \
    --data @movies.json
  4. 访问主页

    1
    http://127.0.0.1:7700

    image-20210910104053837

搜索速度相当的快

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Git使用之如何修改commit注释

发表于 2021-09-08

前言

我们在开发的时候, 有时候可能会需要对历史commit进行注释的修改, 那么可以采用以下几种方法

详解

分为以下三种情况:

1. 修改最近一次commit

如果你只想修改最近一次commit的注释, 那么可以执行以下命令:

1
git commit --amend

执行后会出现vim编辑窗口, 在里面修改注释然后保存退出即可

2. 合并修改最近几次commit

如果我们想对最近几次commit进行合并然后重新注释, 我们可以使用reset --soft 进行提交撤销操作, 比如撤销最近三次提交:

1
git reset --soft HEAD^3

命令执行后, 前三次提交的内容将全部恢复到未提交状态, 此时我们可以添加注释重新提交

3. 修改历史commit

如果需要修改的不是最近几次commit, 那么需要用到rebase指令,

假设我们需要将以下第二个记录的注释进行修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
commit def5adef853da4cc05752bdb36577c127be71ba5
Author: xxx
Date: Thu Dec 28 16:01:36 2017 +0800

优化代码

commit f36801544670e00b2f59a28e19017d2786c4085e
Author: xxx
Date: Thu Dec 28 15:59:46 2017 +0800

修复

commit 00b2f59a28e19017d2786c4085e9a28e19017d278
Author: xxx
Date: Thu Dec 28 16:59:46 2017 +0800

修复bug
(END)

那么我们执行以下命令:

1
2
3
4
git rebase -i 00b2f59

或者
git rebase -i HEAD~3

这里的commit id是需要进行修改commit的前一个, 命令执行后, 会自动打开vim文本编辑器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pick 00b2f59 修复bug
pick f368015 修复
pick def5ade 优化代码

# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out~

接下来, 我们需要对该内容进行修改, 首先我们需要来了解几个指令含义:

  • pick: 表示保留该commit
  • reword: 表示修改该commit的注释
  • edit: 表示保留该commit 同时对代码内容进行修改
  • squash: 表示将该commit合并到上一个commit
  • fixup: 表示将该commit合并到上一个commit 同时丢弃该commit注释
  • exec: 执行shell
  • drop: 删除该commit

这里我们使用reword指令进行合并, 内容修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pick 00b2f59 修复bug
reword f368015 修复
pick def5ade 优化代码

# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out~

表示对f368015这个commit进行注释修改

wq内容保存后, 将进入到注释修改编辑页:

1
2
3
4
5
6
# This is a combination of 2 commits. 

修复
# Please enter the commit message for your changes. Lines starting 

# with '#' will be ignored, and an empty message aborts the commit.

我们可以对注释进行修改,然后保存退出即可

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Git使用之如何合并多个commit

发表于 2021-09-08

前言

我们在开发的时候, 有时候可能会提交多个业务零散的commit, 这些个commit内容合在一块才算是一个完整的任务

为了使得提交记录美观简洁, 同时缓解强迫症症状, 那么我们需要将这些个commit合并成一个commit

如果你要合并的是最近几次commit, 那么可以使用git reset --soft进行commit撤销处理, 如下:

1
git reset --soft HEAD^3

如果你要合并的是历史中间几次commit, 那么得用到git rebase -i指令了

具体操作

假设我们需要将以下最近两个记录进行合并:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
commit def5adef853da4cc05752bdb36577c127be71ba5
Author: xxx
Date: Thu Dec 28 16:01:36 2017 +0800

优化代码

commit f36801544670e00b2f59a28e19017d2786c4085e
Author: xxx
Date: Thu Dec 28 15:59:46 2017 +0800

修复

commit 00b2f59a28e19017d2786c4085e9a28e19017d278
Author: xxx
Date: Thu Dec 28 16:59:46 2017 +0800

修复bug
(END)

那么我们执行以下命令:

1
2
3
4
git rebase -i 00b2f59

或者
git rebase -i HEAD~3

这里的commit id是需要进行合并commit的前一个, 命令执行后, 会自动打开vim文本编辑器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pick f368015 修复
pick def5ade 优化代码

# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out~

接下来, 我们需要对该内容进行修改, 首先我们需要来了解几个指令含义:

  • pick: 表示保留该commit
  • reword: 表示修改该commit的注释
  • edit: 表示保留该commit 同时对代码内容进行修改
  • squash: 表示将该commit合并到上一个commit
  • fixup: 表示将该commit合并到上一个commit 同时丢弃该commit注释
  • exec: 执行shell
  • drop: 删除该commit

这里我们使用squash指令进行合并, 内容修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pick f368015 修复
squash def5ade 优化代码

# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out~

表示将def5ade合并到f368015

wq内容保存后, 将进入到注释修改编辑页:

1
2
3
4
5
6
7
8
9
# This is a combination of 2 commits. 
# first commit
优化代码

# second commit
修复
# Please enter the commit message for your changes. Lines starting 

# with '#' will be ignored, and an empty message aborts the commit.

我们可以对注释进行选择, 不需要的就用#号注释掉, 或者修改成别内容, 保存后, 直接开始自动合并

合并完毕后, 如果你想撤销合并 返回到合并前的状态, 可以使用以下指令:

1
git rebase --abort

通过rebase方式的合并, 会合并生成一个新的commit id, 被合并的commit可以在reflog中找回

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Ubuntu无法运行程序提示No X server at $DISPLAY 或unable to open X display

发表于 2021-09-02

前言

这种情况一般出现在采用vnc远程桌面服务时

桌面中双击应用没有任何反应, 而通过命令窗口启动程序则提示:

unable to open display或者Unable to open X display还有可能是No X server at $DISPLAY

这个时候我们尝试启动xserver 却发现提示no screens found(EE) 如图:

image-20210902173238923

至此 我们推断是没有指定vncserver

解决办法

我们需要通过export DISPLAY来指定连接哪个vncserver

我们在启动vnc服务时可以看到该服务的名称为hitleap:3, 如图:

image-20210902174243526

因此 我们执行以下命令:

1
export DISPLAY=hitleap:3

此时, 我们再重新执行程序, 程序正常启动

关于DISPLAY

在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处, 上面export DISPLAY=hitleap:3表示将图形显示到vncserver

一般默认情况下vncserver名称为:0,比如:

1
export DISPLAY=:0

也有可能是1 、2 、3甚至137

连接成功后可以通过以下指令查看当前显示的详细信息:

1
xdpyinfo

查看当前设置的DISPLAY值:

1
echo $DISPLA

查看当前设备所有的变量 里面可以查看vnc密码以及当前设置的DISPLAY值:

1
printenv

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Mac平台安装Docker

发表于 2021-09-02

前言

Mac平台安装Docker非常的简单, 直接使用Homebrew工具安装即可, 如果你Mac上没有装Homebrew, 可以在命令窗口执行以下命令安装:

1
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

有了homebrew工具后, 只需一行指令搞定docker下载安装

具体操作

  1. 安装docker

    1
    brew install docker

    这里安装的不带图形的命令行版本, 如果想安装图形版docker, 那么加上cask参数:

    1
    brew install --cask --appdir=/Applications docker

    图形版长这样:

    image-20210903122347320

  2. 启动docker服务

    1
    launchctl start docker
  3. 如果你想卸载docker

    1
    brew uninstall docker

接下来可以开始使用docker了, 具体docker操作技巧可参考:

《Linux环境下docker常用指令集合》

如果你的mac系统版本是10以上, 建议还是安装图形版docker, 纯命令版在启动服务的时候会出现启动失败的问题

安装包下载

如果你不通过brew, 想通过下载dmg文件手动安装, 这里提供下载链接:

点击下载

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Ubuntu系统命令行安装Chrome浏览器

发表于 2021-09-02

前言

Ubuntu桌面搭建好后, 发现啥软件也没有, 此时我们最需要的就是一款浏览器

接下来给大家介绍命令行方式安装谷歌浏览器

安装步骤

  1. 查看系统是32位还是64位

    1
    uname -a

    执行后打印结构如果带有x86_64字样表示64位系统 , 如果带有类似 i686 i386字样则为32位系统

  2. 下载安装包

    32位:

    1
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb

    64位:

    1
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. 安装程序

    1
    sudo dpkg -i google-chrome*; sudo apt-get -f install
  4. 运行程序

    1
    /usr/bin/google-chrome-stable

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Mac系统如何运行exe程序

发表于 2021-09-02

前言

之前给大家介绍了如何在Ubuntu系统运行exe程序, 具体可查看:

《buntu系统如何运行exe程序》

这次, 给大家介绍如何在Mac平台运行exe程序, 本次测试是在Mac 10.15.4环境下进行

实现步骤

  1. 首先下载并安装XQuartz支持库:

    1
    brew install --cask xquartz
  2. 下载并安装wine

    1
    brew install --cask --no-quarantine wine-stable

    wine给我们提供了很多可用工具:

    image-20210902142316211

  3. 运行exe程序

    1
    wine xxx.exe

    如果报错bad CPU type in executable: wine, 则有可能是因为exe文件是64位的, 此时使用wine64执行即可:

    1
    wine64 xxx.exe

    如果是.net开发的程序, 会提示需要安装支持包, 点击安装即可:

    image-20210902141949081

    image-20210902142203820

  4. 如果要卸载wine

    1
    brew uninstall --cask

更多使用以及其他版本下载可参考wine官网

内容补充

目前mac高版本使用wine会出现报错现象, 如果要运行exe程序的话, 这里给大家推荐另一款产品 CrossOver, 免费版试用期14天,和谐版在文章尾部

除了内置一些常用软件之外, 可以运行单独的exe程序, 步骤如下:

  1. 双击运行命令选项

    image-20211105162353517

  2. 点击浏览按钮选择相应的程序文件直接运行即可

    image-20211105162832862

    image-20211105162927610

点击下载CrossOver (访问密码: 312306)

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Ubuntu系统如何运行exe程序

发表于 2021-09-02

前言

exe文件是windows平台下的应用程序, 需要在Windows环境下才能运行

如果你想在Linux系统运行Windows程序, 那么就要给大家介绍一个工具了

其名为wine

关于Wine

Wine(“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant操作系统(诸如 Linux,Mac OSX及 BSD 等)上运行 Windows 应用的兼容层

那么 话不多说, 我们直接来实现一下:

实现步骤

  1. 下载并安装Wine:

    1
    2
    sudo dpkg --add-architecture i386 && sudo apt-get update &&
    sudo apt-get install wine32 && sudo apt-get install wine
  2. 运行exe程序, 如果装有桌面环境 那么直接双击, 或者在命名窗口执行以下命令:

    1
    wine xxx.exe

    如果是64位程序则使用wine64:

    1
    wine64 xxx.exe

问题集锦

如果在桌面环境中双击exe没有反应, 同时命令行执行wine报错Application tried to create a window, but no driver could be loaded.

那么可以进入wine配置窗口, 添加相应的依赖库, 具体操作如下:

运行winecfg指令:

image-20210902122022293

image-20210902122045500

回车后弹出wine配置窗口, 在Libraries选项中添加一下三个依赖库:

image-20210902122005234

添加完成后点击OK, 此时再双击exe文件即可正常运行

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

如何使用Web浏览器访问Ubuntu环境下的vnc桌面

发表于 2021-09-02

前言

一般我们在服务端安装后vncserver后, 主机端通过vnc客户端程序输入ip端口和密码后即可远程登录桌面

为了方便使用, 我希望可以使用浏览器直接访问, 那么接下来给大家介绍其实现方法:

实现概述

想要实现浏览器访问桌面, 首先我们需要安装桌面程序, 至于如何安装ubuntu桌面程序 可以参考以下文章:

《给Multipass容器安装桌面环境》

《Ubuntu系统安装LXDE+VNC桌面环境》

在桌面程序安装完毕的前提下, 我们只需要在服务器中安装novnc程序即可

novnc相当于是一个中间代理, 充当了vnc viewer的一个角色, 使得我们无需安装本地vnc客户端即可访问桌面

具体操作如下:

安装步骤

  1. 下载并安装novnc程序:

    1
    sudo snap install novnc
  2. 启动novnc连接vncserver 同时设置web访问端口为6081

    1
    sudo novnc --listen 6081 --vnc localhost:5901

    image-20210902110019439

  3. 浏览器输入以下地址访问

    1
    http://ip:6081/vnc.html

    如下:

    image-20210902105804968

    输入密码:

    image-20210902111100228

    进入后长这样:

    image-20210902111148950

  4. 为了保持novnc常驻在后台, 我们可以启动novnc后台服务:

    1
    sudo snap set novnc services.n6082.listen=6082 services.n6082.vnc=localhost:5902

    参数说明:

    • services.n6082.listen=6082 :表示名为n6082的服务web监听端口设为6082, 服务名称可以随便起, 但是前后要保持一致
    • services.n6082.vnc=localhost:5902: 表示名为n6082的服务连接的vncserver端口设为6082

    那么 也就是说, novnc可以同时连接多个vncserver, 比如这样:

    1
    sudo snap set novnc services.n1.listen=6081 services.n1.vnc=localhost:5901 services.n2.listen=6082 services.n2.vnc=localhost:5902

    同时连接了两个vncserver, 对应的端口分别为6081和6082` , 也就是不同的端口访问不同的桌面

novnc指令补充

  1. 查看当前开启的服务数量:

    1
    sudo snap get novnc services

    打印结果长这样:

    1
    2
    3
    Key             Value
    services.n1 {...}
    services.n2 {...}
  2. 关闭服务

    1
    sudo snap set novnc services.n1.listen='' services.n1.vnc=''
  3. 查看具体某个服务的信息

    1
    sudo snap get novnc services.n1

补充

  1. 如果你需要设置vncserver开机自启动:

    1
    systemctl start vncserver@:1.service && systemctl enable vncserver@:1.service
  2. 你想查看vnserver服务是否开启:

    1
    2
    3
    4
    systemctl status vncserver@:.service

    或者
    systemctl is-enabled vncserver@.service
  3. 你想重启vncserver:

    1
    systemctl restart vncserver@:1.service
  4. 你想设置vnc分辨率:

    1
    vncserver -geometry 1280x1024
  5. 你想修改vncserver登录密码:

    1
    vncpasswd

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Ubuntu系统安装LXDE+VNC桌面环境

发表于 2021-09-02

前言

在众多linux桌面环境中, LXDE属于非常轻量的一款, 占用系统资源小, 适合小型服务器使用

接下来介绍该桌面环境的安装步骤

快速安装

  1. 更新源

    1
    sudo apt-get update
  2. 安装图形驱动 否则内置和下载的应用无法启动

    1
    sudo apt-get install xorg
  3. 安装lxde桌面程序

    1
    sudo apt-get install lxde-core

    安装过程中会让你选择显示管理器, 选择gdm3即可

    image-20210831172358907

  4. 安装VNCServer 用于远程桌面连接

    1
    sudo apt-get install tightvncserver

    更多关于tightvncserver可参考中文文档

  5. 启动vnc服务

    1
    vncserver

    提示我们输入访问密码:

    image-20210901175901616

    这里的密码用于接下来的远程登录用

开始远程访问

第一种 vnc客户端访问模式

Mac平台可直接执行以下指令安装:

1
brew install Caskroom/cask/vnc-viewer

或者下载安装包:

点击下载(访问密码:312306)

安装vnc客户端后在地址栏输入目标ip和端口, 端口默认为5901

image-20210901180352068

输入密码登录后发现只有灰屏幕:

image-20210901180441212

接下来我们需要配置一下vncserver的环境:

  1. 首先关闭vncserver

    1
    vncserver -kill :1
  2. 修改前对配置文件进行备份

    1
    cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
  3. 修改配置文件

    1
    vim ~/.vnc/xstartup

    将以下内容添加至文本末尾:

    1
    2
    lxterminal &
    /usr/bin/lxsession -s LXDE &
  4. 修改配置文件权限

    1
    chmod +x ~/.vnc/xstartup
  5. 重新启动vnc服务

    1
    vncserver

最后重新连接远程桌面, 如下:

image-20210902104141960

第二种 浏览器访问模式

具体参考:

《如何使用Web浏览器访问Ubuntu环境下的vnc桌面》

补充

  1. 如果重复执行vncserver指令会开启多个vnc服务它们并行运行 互不干扰

  2. 除了使用tightvncserver搭建vnc服务器之外 还可以使用x11vnc, 详情查看文档:

    点击进入

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…232425…51

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

505 日志
145 标签
RSS
© 2026 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%