elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

2023-11-11

一、基本了解

1.1 插件分类

  1. 插件是用户以自定义方式增强es功能的一种方法,分两类,核心插件和社区贡献插件。
  2. 插件太多,只需要熟悉插件的安装流程即可,根据项目需要再自行安装。

核心插件:

  • 核心插件属于es项目,插件的版本号始终与es安装包的版本号相同,这些插件由es团队维护。
  • 项目地址
    在这里插入图片描述

社区贡献插件:

  • 社区贡献插件属于es项目外部的插件。这些插件由单个开发人员或私人公司提供,并拥有各自的许可证及各自的版本控制系统。

1.2 插件管理命令

1.列出当前已安装的插件。这里显示的就是我们已经安装了一个ik分词器插件。

[es-qingjun@localhost bin]$ elasticsearch-plugin list

在这里插入图片描述
2.安装插件。

[es-qingjun@localhost bin]$ elasticsearch-plugin install analysis-icu

在这里插入图片描述
3.删除插件。

[es-qingjun@localhost bin]$ elasticsearch-plugin remove analysis-icu

在这里插入图片描述

  1. 我们可以使用相关命今获取插件命令的使用说明:$es_home/bin/elasticsearch-plugin - h
    1.插件位置指定
    当在根目录中运行 Elasticsearch 时,如果使用 DEB 或RPM 安装了 Elasticsearch,则以根目录运行 /usr /share / Elasticsearch/ bin /Elasticsearch-plugin,以便 Elasticsearch 可以写入磁盘的相应文件,否则需要以拥有所有 Elasticsearch 文件的用户身份运行 bin/ Elasticsearch 插件当用户自定义URL 或文件系统时,用户可以通过指定 URL 直接从自定义位置下载插件:
    sudo bin / elasticsearch - plugin install [url]

二、分析插件

基本了解:

  • 分析器会接受一个字符串作为输入参数,将这个字符串拆分成独立的词或语汇单元(也称之为 token)。
  • 在处理过程中会丢弃一些标点符号等字符,处理后会输出一个语汇单元流(也称之为 token stream)。
  • es为很多语言提供了专用的分析器,特殊语言所需的分析器可以由用户根据需要以插件的形式提供。

分析器组成的三个部分:

  1. character filter: 分词之前的预处理,过滤HTML标签、特殊符号转换等。
  2. tokenizer:用于分词。
  3. token filter:用于标准化输出。

es内置的主要分析器:

  • Standard分析器:默认的分词器,会将词汇单元转换成小写形式,并且去除停用词和标点符号,支持中文(采用的方法为单字切分)。停用词指语气助词等修饰性词语,如 the、an、的、这等。
  • Simple分析器:首先通过非字母字符分割文本信息,并去除数字类型的字符,然后将词汇单元统一为小写形式。
  • Whitespace分析器:仅去除空格,不会将字符转换成小写形式,不支持中文:不对生成的词汇单元进行其他标准化处理。
  • Stop分析器:与Simple 分析器相比,增加了去除停用词的处理。
  • Keyword分析器:该分析器不进行分词,而是直接将输入作为一个单词输出。
  • Pattern分析器:该分析器通过正则表达式自定义分隔符,默认是“]W+”,即把非字词的符号作为分隔符。
  • Language分析器:这是特定语言的分析器,不支持中文,支持如 English、French 和Spanish 等蛮豆颓逼磺糯敢奇害弋亭缆忸侠子补。

注意事项:

  • 任何全文检索的字符串域都会默认使用 Standard 分析器。

Standard分析器简介:

  • 工作模式:一般来说,分析器会接受一个字符串作为输入。在工作时,分析器会将这个字符串拆分成独立的词或语汇单元(称之为 token),当然也会丢弃一些标点符号等字符,最终分析器输出一个语汇单元流。
  • 常规分析器使用算法:Whitespace 分词算法。
    • 该算法按空白字符,如空格、Tab、换行符等,对语句进行简单的拆分,将连续的非空格字符组成一个语汇单元。
    • 例如,对下面的语句使用 Whitespace 分词算法分词时,会得到如下结果:
      原文:You're the lst runner home!
      结果: You're、the、st、runner、home!
      
  • Standard 分析器使用算法: Unicode 文本分制算法。
    • 可以寻找单词之间的界限,并输出所有界限之间的内容。
    • Unicode 内包含的知识使其可以成功地对包含混合语言的文本进行分词。

2.1 es中的分析插件

分析插件是一类插件,可通过向es中添加新的分析器、标记化器、标记过滤器或字符过滤器等扩展es的分析功能。

2.1.1 官方核心分析插件

插件名称 作用
ICU库 可以扩展对 Unicode 的支持,
包括更好地分析亚洲语言、Unicode 规范化、
支持 Unicode 的大小写折叠、支持排序和音译。
Kuromoji 插件 对日语进行分析
Lucene Nori 插件 对韩语进行分析
Phonetic 插件 可以使用 Soundex、Metaphone、Caverphone 和其他编码器/解码器将标记分析为其语音等价物。
SmartCN插件 可用于对中文或中英文混合文本进行分析。
该插件利用概率知识对简化中文文本进行最优分词。
首先文本被分割成句子,然后每个句子再被分割成单词。
Stempel插件 对波兰语进行分析
Ukrainian 插件 为乌克兰语提供词干分析

2.1.2 社区提供分析插件

插件名称 作用
IK Analysis Plugin 将 Lucene IK Analyzer 集成到 Elasticsearch 中,支持读者自定义字典
Pinyin Analysis Plugin 一款拼音分析插件,该插件可对汉字和拼音进行相互转换。
Vietnamese Analysis Plugin 对越南语进行分析
Network Addresses Analysis Plugin 可以用于分析网络地址。
Dandelion Analysis Plugin 可译为蒲公英分析插件,该插件提供了一个分析器(称为“蒲公英-A”),该分析器会从输入文本中提取的实体进行语义搜索。
STConvert Analysis Plugin 可对中文简体和繁体进行相互转换

2.2 API扩展插件

  • API扩展插件通过添加新的、与搜索有关的 API 或功能,实现对es新功能的添加。
  • es社区人员陆陆续续贡献了不少API扩展插件编辑器,汇总如下:
插件名称 作用
Carrot2 Plugin 用于结果聚类。
可访问 GitHub 官网搜索 elasticsearch-carrot2,查看配套代码。
Elasticsearch Trigram Accelerated Regular Expression Filter 该插件包括查询、过滤器、原生脚本、评分函数,以及用户最终创建的任意其他内容,通过该插件可以让搜索变得更好。
可访问 GitHub 官网搜索 search-extra 获取插件。
Elasticsearch Experimental Highlighter Java 编写,用于文本高亮显示。
可访问 GitHub 官网,搜索 search-highlighter 获取插件。
Entity Resolution Plugin 该插件使用 Duke (Duke 是一个用 Java 编写的、快速灵活的、删除重复数据的引擎)进行重复检测。读者可访问 GitHub 官网,搜索 elasticsearch-entity-resolution 获取插件
Entity Resolution Plugin(zentity) 用于实时解析es中存储的实体信息。
可访问 GitHub 官网,搜索zentity 获取插件。
POL language Plugin 该插件允许用户使用简单的管道查询语法对es进行查询。
可访问 GitHub官网,搜索 elasticsearch-pql 获取插件。
Elasticsearch Taste Plugin 该插件基于 Mahout Taste 的协同过滤算法实现。
可访问 GitHub 官网,搜索elasticsearch-taste 获取插件。
WebSocket Change Feed Plugin 该插件允许客户端创建到es节点的 WebSocket 连接,并从数据库接收更改的提要。
可访问 GitHub 官网,搜索 es-change-feed-plugin 获取插件

三、Head 插件

  • es-head插件在0.x-2.x版本时,是集成在elasticsearch内的。由elasticsearch的bin/elasticsearch-plugin来管理插件,从2.x版本跳到了5.x版本后,head就作用了一个独立的服务来运行了。
  • Elasticsearch 5之后则需要将elasticsearch-head服务单独运行,并且支持Chrome的插件方式或者Docker容器运行方式。
  • 这个插件我们前面已经安装过,这里就介绍下具体怎么玩它。

插件简介:

  • Head 插件,全称为 elasticsearch-head,是一个界面化的集群操作和管理工具,可以对集群进行“傻瓜式”操作。
  • 既可以把 Head 插件集成到 Elasticsearch 中,也可以把 Head 插件当成-个独立服务。

主要功能:

  1. 显示es集群的拓扑结构,能够执行索引和节点级别的操作。
  2. 在搜索接口能够查询es集群中原始JSON 或表格格式的数据。
  3. 能够快速访问并显示es集群的状态。

3.1 安装

1.安装node.js环境,注意版本不要太高,不然会跟linux本身的依赖库包版本冲突报错。

[root@localhost bck]# tar zxf node-v16.9.0-linux-x64.tar.gz 
[root@localhost bck]# mv node-v16.9.0-linux-x64 /usr/local/node

[root@localhost bck]# tail -2 /etc/profile
export node_home=/usr/local/node
export PATH=$node_home/bin:$PATH

[root@localhost bck]# source /etc/profile
[root@localhost bck]# node -v
v16.9.0

在这里插入图片描述
2.解压es-head安装包,安装依赖。注意这里需要进入解压出来的目录里执行命令。下载地址

#安装cnpm
[root@localhost elasticsearch-head-5.0.0]# npm install -g cnpm --registry=https://registry.npm.taobao.org

#安装依赖
[root@localhost elasticsearch-head-5.0.0]# cnpm install

在这里插入图片描述
在这里插入图片描述
3.启动es-head

[root@localhost elasticsearch-head-5.0.0]# npm run start

在这里插入图片描述
4.访问页面。
在这里插入图片描述
5.修改es配置文件,添加如下两行,解决跨域问题。

[root@localhost elasticsearch-8.5.2]# vi config/elasticsearch.yml 
http.cors.enabled: true
http.cors.allow-origin: "*"

6.重启es,es-head就可以连接es了。
在这里插入图片描述

3.2 web页面使用

Head 插件首页由 4 部分组成:节点地址输入区域、信息刷新区域、导航条、概览中的集群信息汇总。

3.2.1 概览页

  • 第一部分:节点地址输入区域。这里输入es集群任意一个节点IP就可以查看集群所有状态和数据。
    在这里插入图片描述
  • 第二部分:信息刷新区域。
    1. 刷新区域可以查看es相关的信息和刷新插件的信息。
      在这里插入图片描述2. 信息区域可以看到es相关的信息,包括集群节点信息、节点状态、集群状态集群信息、集群健康值等内容。单击对应的按钮,即可查看对应的信息。
      在这里插入图片描述
      在这里插入图片描述
  • 第三部分:导航条。看到概览、索引、数据浏览、基本查询和复合查询五个 Tab 导航,默认为概览。
    在这里插入图片描述
  • 第四部分:概览中的集群信息汇总。可以看到es已经创建的索引,这些索引信息包含了索引的名称、索引的大小和索引的数据量,并且通过“信息”和“动作”两个按钮可以查看索引信息,或者给索引创建别名。
    在这里插入图片描述
  • 第五部分:集群健康值。es中有专门的衡量索引健康状况的标志,分为三个等级:
    • green,绿色。代表所有的主分片和副本分片都已分配,集群是 100% 可用的。
    • yellow,黄色。所有的主分片已经分片了,但至少还有一个副本是缺失的,不会有数据丢失,所以搜索结果依然是完整的。不过高可用性在某种程度上会被弱化。如果更多的分片消失,就会丢数据了。可以把 yellow 想象成一个需要及时调查的警告。
    • red,红色。至少一个主分片以及它的全部副本都在缺失中。意味缺少数据,搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
    • 当只有一台主机时,索引的健康状况是 yellow。因为一台主机,集群没有其他的主机可以做副本,所以说,这就是一个不健康的状态,因此集群也是十分有必要的。
      在这里插入图片描述
  • 第六部分:索引分片。Elasticsearch数据就存储在这些分片中。每一个方框就是elasticsearch的分片,粗线方框是es的主分片,主分片旁边细线方框是es的备份分片,对应关系,粗线方框0的备份分片是细线方框0,以此类推。
    在这里插入图片描述

3.2.1.1 unassigned问题解决

副本分片作用:

  • 主要目的是为了故障转移,为备份数据。如果持有主分片的节点挂掉了,一个副本分片就会晋升为主分片的角色。

产生unassigned问题原因:

  • 副本分片和主分片不能放在同一个节点上,在这里集群里只有一个节点,副本分片没有办法分配到其他的节点上,所以出现所有副本分片都是未分配的情况。因为只有一个节点,如果存在主分片节点挂掉了,那么整个集群理应就挂掉了,不存在副本分片升为主分片的情况。
    在这里插入图片描述

处理手段:

  • 将每个索引的副本数重置为0即可解决这个未知节点问题。“number_of_replicas”:0
    在这里插入图片描述
    在这里插入图片描述

3.2.2 索引页

  • 可以查看当前es集群中的索引情况。

在这里插入图片描述
1.新建索引。
在这里插入图片描述
2.查看。
在这里插入图片描述
在这里插入图片描述

3.2.3 数据浏览页

  • 可以查看特定索引下的数据。

在这里插入图片描述

3.2.4 基本查询页

在这里插入图片描述

匹配方式:

  1. must子句:文档必须匹配 must 查询条件,相当于“=”。
  2. should子句:文档应该匹配 should 子查询的一个或多个条件。
  3. must_not子句:文档不能匹配该查询条件,相当于“!=”。
  4. term:表示的是精确匹配。
  5. wildcard:表示的是通配符匹配。
  6. prefix:表示的是前缀匹配。
  7. range:表示的是区间查询。
    在这里插入图片描述

注意事项:

  1. 当用多个查询条件进行搜索或查询时,需要注意多个查询条件间的匹配方式。
  2. 匹配方式主要有3种,即must、should 和mus_not。
  3. “+”“_”按用于增加查询条件或减少查询条件。
    在这里插入图片描述
  4. 在查询结果展示区域中,用户可以设置数据的呈现形式,如 table、JSON、CVS 表格等还可以勾选“显示查询语句”选项,呈现通过表单内容拼接的搜索语句。
    在这里插入图片描述

3.2.4.1 term指定查询

在这里插入图片描述

3.2.4.2 range范围查询

在这里插入图片描述

3.2.4.3 多条件查询

在这里插入图片描述

3.2.5 复合查询页

基本了解:

  1. “复合查询”标签页可以自由拼接条件,进行复杂的数据查询。
  2. “复合查询”标签页为用户提供了编写 RESTful接口风格的请求,用户可以使用JSON 进行复杂的查询,比如发送 PUT 请求新增及更新索引,使用 delete 请求删除索引等。
    在这里插入图片描述

RESTful API的基本格式

  • http://ip:port/索引/类型/文档ID
    在这里插入图片描述

配置接口的四个选项:

  1. 在es中,以POST 方法自动生成ID,而 PUT 方法需要指明ID。
    • 请求方法与HTTP 的请求方法相同,如 GET、PUT、POST、DELETE 等。
    • 还可以配置查询JSON 请求数据、请求对应的es节点和请求路径。
  2. 支持配置JSON验证器对用户输入的JSON 请求数据进行JSON 格式校验。
  3. 支持重复请求计时器配置重复请求的频率和时间。
  4. 在结果转换器中支持使用 JavaScript 表达式变换结果。
    在这里插入图片描述

3.2.5.1 查询数据

  • 查询。查询索引111中编号为1的文档。

在这里插入图片描述

3.2.5.2 插入数据

新增数据有两种方式,POST和PUT,两者的区别就是POST自动生成文档编号,也可以指定,而PUT需要指定文档编号生成。

1.post方式指定id生成。
在这里插入图片描述
在这里插入图片描述
2.post方式不指定id生成会是随机生成一个id。
在这里插入图片描述
3.put方式指定id生成。
在这里插入图片描述

3.2.5.3 查询所有文档

在这里插入图片描述

3.2.5.4 布尔查询

  1. must:文档必须匹配这些条件才能被搜索出来。
  2. must_not:文档必须不匹配这些条件才能被搜索出来。
  3. should:如果满足这些语句中的任意语句,则将增加搜索排名结果 score; 否则,对查询结果无任何影响。其主要作用是修正每个文档的相关性得分。
  4. filter:表示必须匹配,但它是以不评分的过滤模式进行的。这些语句对评分没有贡献只是根据过滤标准排除或包含文档。

注意事项:

  • 如果没有 must 语句,那么需要至少匹配其中的一条 should 语句。但如果存在至少一条 must 语句,则对 should 语句的匹配没有要求。
  • 查看匹配”qingjun“,且不匹配”baimu“的文档。
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "qingjun"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "name": "baimu"
          }
        }
      ]
    }
  }
}

在这里插入图片描述

3.2.5.5 创建索引库

在这里插入图片描述
在这里插入图片描述

四、ik分词器

什么是IK分词器 ?

  • 分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱狂神"会被分为"我"“爱”“狂"神”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

注意事项:

  • 如果要使用中文,建议使用ik分词器 !
  • ik提供了两个分词算法:ik_smat 和ik_max_word,其中 ik_mart 为最少切分,ik_max_word为最细粒度划分!一会我们测试!

常用配置文件:

  • IKAnalyzer.cfg.xml:用来配置自定义词库。
  • main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起,最常用的文件
  • quantifier.dic:存放了一些单位相关的词。
  • suffix.dic:存放了一些后缀。
  • surname.dic:中国的姓氏。
  • stopword.dic:包含了英文的停用词,停用词 stop word ,比如 a 、the 、and、 at 、but 等会在分词的时候直接被干掉,不会建立在倒排索引中。
    在这里插入图片描述

4.1 Windows安装

1.下载ik分词器安装包,注意下载版本需要与安装的es版本一致。github下载地址
在这里插入图片描述
2.将下载的压缩包解压到我们本地安装es根目录下的plugins目录。我这里新增加了一个ik目录是为了好区分,该目录下的所有文件就是解压出来的。
在这里插入图片描述
3.重启es,包括与之相关的所有服务kibana。重启再启动后能读到分词器,日志就会显示。
在这里插入图片描述
4.可以通过elasticsearch-plugin命令查看加载进来的插件,这里就显示了一个ik插件。
在这里插入图片描述
5.启动kibana测试。

get _analyze       ##get请求,_analyze为请求对象(分词器)。下面括号内容为请求要求。
{
  "analyzer": "ik_smart",        ##选中ik分词器。
  "text": "跟我一起学运维"                ##分哪个词。
}

ik_smart为最少切分,是将一句话按段切分出来的,分出来的内容没有重复的字。

在这里插入图片描述

ik_max_word最小粒度划分,穷尽所有组合,会出现重复的字。

在这里插入图片描述

这里就出现了一个问题,把“学运维”三个字拆分了,我不需要将这三个字拆分,应该是一个组合词,该怎么办?自己去添加词库。

6.进入ik分词器安装目录下的config目录,手动创建一个文档,以dic结尾,里面添加我们想要的词。
在这里插入图片描述
7.将新建的文档名称添加到IKAnalyzer.cfg.xml文件中。
在这里插入图片描述

8.重启es和kibana。
在这里插入图片描述
9.再次查看kibana上的分词效果。此时“学运维”就是我们添加再词库里的词,而不是切分开来;用最小粒度查看就多了一个“学运维”词,之前是没有这个词的。
在这里插入图片描述
在这里插入图片描述

4.2 Linux安装

1.同样需要准备ik分词器的安装包,版本最好与es、kibana版本一致。我们还是解压到es的插件目录里,方便管理。
在这里插入图片描述
2.进入config目录,自定义分词。

  • 第一种,在默认词库里添加后在重启es、kibana服务,测试效果。

在这里插入图片描述
在这里插入图片描述

  • 第二种,新建自定义分词库,再重启es和kibana,测试效果。

在这里插入图片描述
在这里插入图片描述

4.3 自定义停用词词典

  • 上面我们已经自定义了“学运维”一词,在分词时可以把这三个字排一起当成一个词分出来。
  • 当然也可以自定义停用词词典,比如了、的、啥、么,我不像搜索这样的词出来。

1.比如我想在能把“吧”这个词搜索出来,对我没有实际意义,就可以把它单独停用。
在这里插入图片描述
2.在ik/config目录下自定义个文件,里面添加不像分的词,再添加到IKAnalyzer.cfg.xml文件里,最后重启es和kibana。

在这里插入图片描述
3.重启后在测试,就不会有“吧”这个词了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器 的相关文章

  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有
  • Linux中使用管道进行进程间通信

    我已经编写了在 linux 中写入数字以进行管道传输的代码 如下所示 但显示错误 任何人都可以帮助我解决这个问题 基本上该程序的问题陈述如下 一个程序将打开一个管道 向管道写入一个数字 其他程序将打开同一管道 读取数字并打印它们 关闭两个管
  • 如何在elasticsearch索引中一起使用ngram和edge ngram tokenizer?

    我有一个包含 3 个文档的索引 firstname Anne lastname Borg firstname Leanne lastname Ray firstname Anne middlename M
  • 如何将监听休眠事件的模块与实体本身解耦?

    我有一个由 spring jpa hibernate 驱动的分层 Web 应用程序 现在我正在尝试集成 elasticsearch 搜索引擎 我想要做的是捕获所有 postInsert postUpdate 事件并将这些实体发送到 elas
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际

随机推荐

  • 前端常用的几种加密方法

    目前在前端开发中基本都会用到加密 最常见的就是登录密码的加密 接下来会为大家介绍几种加密方法 md5 加密 MD5 加密后的位数有两种 16 位与 32 位 默认使用32位 16 位实际上是从 32 位字符串中取中间的第 9 位到第 24
  • 《C和C++安全编码》读书笔记(一)

    第一章 夹缝求生 1 1 衡量危险 生产不安全软件系统的风险可以从历史风险和潜在的未来风险两方面进行评估 威胁的来源 黑客 内部人员 罪犯 竞争情报从业者 恐怖分子 信息战士 CERT CC 美国计算机紧急事件响应小组协调中心 监控漏洞信息
  • 图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址

    目录 前言 第1章 MIMO多天线技术概述 1 1 三大目的 1 2 六大分类 第2章 单天线SISO 单输入单输出 2 1 概述 2 2 实现原理 多路 异频 发送 接收 对 第3章 接收分集MISO 多输入单输出 冗余接收 3 1 概述
  • 受够了初级排序算法,今天来个效率高的——归并排序。

    受够了初级排序算法 今天来个效率高的 归并排序 前情回顾 在前几篇文章中我们学习了选择排序 插入排序 以及插入排序的优化版希尔排序 但是他们的时间复杂度都是O N 2 现在我们终于迎来了我们算法效率大幅度提升的 时间复杂度为O NlogN
  • 【vue】vue组件之间相互调用问题处理

    背景 最近再使用抽屉组件的时候 遇到一个棘手的问题 就是抽屉是座位详情功能使用的 这就会带来一个问题 可能在 用户详情抽屉 中需要调用 订单详情抽屉 而 订单详情抽屉 也可能调用 用户详情抽屉 简单来说过就是A组件调用B组件 B组件又调用A
  • 私有化部署即时通讯平台,完美替代飞书和钉钉的SaaS系统

    在当今快速发展的数字化时代 企业对于安全 灵活 可定制的即时通讯平台需求不断增长 作为一家领先的品牌 WorkPlus专注于提供私有化部署的即时通讯平台 完美替代飞书和钉钉的SaaS系统 本文将重点介绍WorkPlus如何通过创新的解决方案
  • iOS开发中的敏捷方法

    敏捷开发是现在比较流行的软件开发方法 因为方法决定效率 好的方法可以大大地提高开发效率 什么是敏捷 Agile 敏捷源于2001年美国犹他州雪鸟滑雪圣地的一次聚会 聚会是敏捷方法发起者和实践者的聚会 他们经过两天的讨论 通一份简明扼要的 敏
  • ExtJS Sencha CMD 打包异常报错分析处理 - 2

    今天使用 sencha app build testing 进行编译 然后运行的时候 出现错误 app js dc 1666874035180 81578 Uncaught TypeError t 1 is not a function a
  • yar框架的并行原理分析(libcurl+epoll)

    yar是一个轻量级的php rpc框架 有意思的是它的并行 其实就是libcurl作为网络库提供http请求 然后用epoll做为事件监听来实现整个异步并行调用的 在此基础上 就是如何利用zend api来对整个逻辑的封装了 我们先抛开ze
  • 平衡小车调试总结及心得

    目录 一 知识点 1 PID控制算法 2 平衡原理 二 硬件 1 编码器 2 电机 3 PWM 4 陀螺仪MPU6050 三 PID调节过程 1 理论部分 1 1直立环 1 2速度环 串级PID 1 3 纯比例控制 2 调参步骤 2 1大致
  • sql注入之万能密码总结

    sql注入之万能密码总结 万能密码 万能密码原理 万能密码 asp aspx万能密码 PHP万能密码 jsp 万能密码 万能密码 啊这 一般用来ctf登录的时候试试 这是sqli labs用的时候 我来记录一下 万能密码原理 原验证登陆语句
  • Python基础——函数的基本使用

    文章目录 一 定义 二 属性 三 操作 1 函数的参数 2 函数返回值 3 函数多个返回值 4 多个return语句 5 函数调用函数 6 函数的联系及注释 7 局部变量和全局变量 8 数据的传递 9 lambda表达式 一 定义 1 语法
  • 【TensorFlow】TensorFlow函数精讲之 tf.nn.relu()

    tf nn relu 函数是将大于0的数保持不变 小于0的数置为0 函数如图1所示 ReLU函数是常用的神经网络激活函数之一 图1 ReLU函数图像 下边为ReLU例子 import tensorflow as tf v tf consta
  • 自动控制原理与动态系统的建模与分析

    1 开环系统和闭环系统 反馈控制 1 1开环控制 开环控制系统是指无被控量反馈的系统 即在系统中控制信息的流动未形成闭合回路 1 2 闭环控制 有被控量反馈的控制 即系统的输出信号沿反馈通道又回到系统的输入端 构成闭合通道 也叫做反馈控制
  • go get国内解决办法汇总

    go作为Google大佬的亲儿子 go开发过程中除了SDK自带的包外还经常会需要用到大佬提供的其他包 这些包都在golang org下 而下载这些包需要访问大佬的服务器 国内开发者就会遇到各种的问题 今天就给大家总结一下有哪些途径安装这些包
  • Android Studio Flutter 开发配置

    近来比较闲 就研究下Flutter 开发 在此记录下studio 配置过程 时间是2023 7 19 在 Windows 操作系统上安装和配置 Flutter 开发环境 1 首先下载 Flutter SDKhttps storage flu
  • 基于51单片机水塔水箱液水位WIFI监控报警设计proteus仿真原理图PCB

    功能 0 本项目采用STC89C52作为单片机系统的控制MCU 1 WIFI实时上传当前水位状态 2 通过液位传感器检测液位 检测到最低液位和最高液位时 超过设定阈值将声光报警 3 通过状态指示灯显示当前液位情况 三种颜色 红色代表低于下限
  • python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况 最常用的方法就是通过Http利用urllib或者urllib2模块 当然你也可以利用ftplib从ftp站点下载文件 此外Python还提供了另外一种方法requests 下面来看看三种方法是如何
  • unity利用高阶贝塞尔曲线进行的轨道移动

    之前想做一个按照固定的路线进行移动的demo 就想到了路径的曲线 然后就想到了贝塞尔曲线 先上贝塞尔通用公式 借鉴网上的代码和相应的函数公式 组成了一个demo 通用的贝塞尔曲线工具类 using System Collections us
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一 基本了解 1 1 插件分类 1 2 插件管理命令 二 分析插件 2 1 es中的分析插件 2 1 1 官方核心分析插件 2 1 2 社区提供分析插件 2 2 API扩展插件 三 Head 插件 3 1 安装 3 2 web页面