当前位置: 首页 > news >正文

【分布式技术】ES扩展知识-Elasticsearch分词器的知识与选择

ES知识扩展

    • 分词器有哪些?
      • 1. 标准分词器(Standard Analyzer):
        • 示例
          • 示例文本分析
          • 配置参数与自定义
          • 应用场景
      • 2. Simple Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与限制
          • 结论
      • 3. Whitespace Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与限制
          • 结论
      • 4. Keyword Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与优势
          • 结论
      • 5. Stop Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与优势
          • 结论
      • 6. Pattern Analyzer:
        • 示例
          • 示例文本分析
          • 配置Pattern Analyzer
          • 应用场景与优势
          • 结论
      • 7. Language Analyzers:
      • 8. IK Analyzer:
        • 示例
          • IK Analyzer的分词模式
          • IK Analyzer的安装与配置
          • 示例文本分析
          • IK Analyzer的优势
          • 结论
      • 9. Smart Chinese Analyzer(smartcn):
        • 示例
          • 一、分词原理与特点
          • 二、安装与配置
          • 三、分词示例
          • 四、应用场景
          • 五、注意事项

分词器有哪些?

Elasticsearch(简称ES)中的分词器是用于将文本拆分为单词(词项)的组件,以便于搜索和索引。ES提供了多种内置的分词器,每种分词器适用于不同的场景和需求。以下是一些主要的ES分词器:

1. 标准分词器(Standard Analyzer):

  • 是ES默认的分词器,适用于大多数情况。
  • 会根据空格和标点符号将文本拆分为词项,并进行小写转换和标点符号过滤。
  • 对于中文,它按单字进行分词。
示例

ES(Elasticsearch)的Standard Analyzer是Elasticsearch中默认的分词器,其作用主要是在数据写入时对需要分词的字段进行词条切分转换,同时匹配Query语句的时候也需要使用相同的分词器对查询语句进行分析。下面通过举例来详细说明Standard Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“Elasticsearch is fun”
  • 示例文本2(中英文混合):“ES真好玩”
  • 示例文本3(英文含特殊字符和数字):“The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.”

使用Standard Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“elasticsearch”, “is”, “fun”]
    • 说明:Standard Analyzer按照空格将文本切分成单词,并进行小写处理。
  2. 示例文本2(中英文混合)

    • 分词结果(假设在支持中文分词的上下文中):[“es”, “真”, “好”]
    • 说明:对于中文文本,Standard Analyzer默认按字切分(在Elasticsearch的某些版本中或特定配置下,可能需要额外的中文分词器来处理中文文本)。对于英文部分(即"ES"),则保持原样(在实际应用中,"ES"可能会被识别为缩写或特定词汇,但在此示例中,我们假设它按字切分)。不过,值得注意的是,在纯英文环境下,Standard Analyzer不会对中文文本进行特殊处理,而是会将其视为连续字符序列。因此,在实际应用中,针对中英文混合文本,可能需要使用更复杂的分词策略或自定义分词器。
  3. 示例文本3(英文含特殊字符和数字)

    • 分词结果:[“the”, “2”, “quick”, “brown”, “foxes”, “jumped”, “over”, “the”, “lazy”, “dog’s”, “bone”]
    • 说明:Standard Analyzer会忽略标点符号(如空格、连字符等),并将文本切分成单词。数字"2"也被当作一个独立的词条。此外,分词结果保留了原始文本的大小写(但在实际查询中,通常会进行小写化处理以提高匹配度)。
配置参数与自定义

Standard Analyzer还支持一些配置参数,如max_token_length(单个词的最大长度)和stopwords(停用词列表)。通过调整这些参数,可以进一步定制分词器的行为。例如:

  • 设置max_token_length为5,则"jumped"会被切分成"jumpe"和"d"。
  • 添加"the"到停用词列表,则"the"在分词结果中会被过滤掉。
应用场景

Standard Analyzer适用于大多数英文文本的分词需求。对于中文文本,由于Standard Analyzer默认按字切分,可能无法满足实际需求。因此,在处理中文文本时,通常需要选择或自定义更适合的分词器(如IK Analyzer、Pinyin Analyzer等)。

综上所述,Standard Analyzer是Elasticsearch中非常重要的分词工具,它能够帮助用户快速、准确地将文本切分成单词或字符序列,为后续的搜索、分析和可视化等操作提供基础。

2. Simple Analyzer:

  • 会根据非字母字符将文本拆分为词项,并将词项转换为小写。
  • 不会进行标点符号和停用词的过滤。
  • 对于中文,它按空格进行分词(如果有空格的话)。
示例

ES(Elasticsearch)的Simple Analyzer是一个基本的分词器,它按照非字母字符(包括数字、符号和空格)来分割文本信息,并对英文进行小写处理,而非英文内容则不进行分词。下面通过具体例子来说明Simple Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“The quick brown fox!”
  • 示例文本2(中英文混合):“ES is fun, 真好玩!”
  • 示例文本3(特殊字符和数字):“2024-hello-world!”

使用Simple Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“the”, “quick”, “brown”, “fox”]
    • 说明:Simple Analyzer按照非字母字符(如空格和感叹号)将文本切分成单词,并将英文单词转换为小写。
  2. 示例文本2(中英文混合)

    • 分词结果(假设在纯英文分词上下文中):[“es”, “is”, “fun”]
      • 注意:这里的"真好玩"作为非英文内容,在Simple Analyzer中不会被分词。在实际应用中,如果需要对中文文本进行分词,需要使用专门的中文分词器。
    • 说明:Simple Analyzer只处理英文部分,将其按非字母字符切分并小写化。中文部分则保持原样,不被分词。
  3. 示例文本3(特殊字符和数字)

    • 分词结果:[“2024”, “hello”, “world”]
    • 说明:Simple Analyzer将特殊字符(如短横线)视为分隔符,将文本切分成单词或数字序列。数字"2024"和英文单词"hello"与"world"被成功切分出来。
应用场景与限制

Simple Analyzer适用于简单的英文文本分词需求,特别是在需要忽略特殊字符和数字的情况下。然而,对于包含中文或其他非拉丁字符的文本,Simple Analyzer则无法进行有效的分词处理。此外,由于Simple Analyzer只按非字母字符切分文本,因此它无法识别并处理缩写、复合词或带有连字符的单词等复杂情况。

结论

Simple Analyzer是Elasticsearch中一个简单而有效的分词器,特别适用于处理纯英文文本。然而,在处理包含中文或其他非拉丁字符的文本时,需要选择更合适的分词器(如IK Analyzer、Pinyin Analyzer等)来满足实际需求。同时,在使用Simple Analyzer时,也需要注意其分词规则的局限性,以避免出现意外的分词结果。

3. Whitespace Analyzer:

  • 会根据空格字符将文本拆分为词项。
  • 不会进行小写转换、标点符号过滤和停用词过滤。
示例

ES(Elasticsearch)的Whitespace Analyzer是一个基于空格字符进行分词的分析器。它非常简单,只会在空格处分割文本,并且不会对文本进行任何其他处理(如小写化或去除停用词)。下面通过具体例子来说明Whitespace Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“The quick brown fox jumps over the lazy dog.”
  • 示例文本2(中英文混合):“Hello World ES 真好玩”
  • 示例文本3(特殊字符和数字):“2023-elastic-search is great!”

使用Whitespace Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“The”, “quick”, “brown”, “fox”, “jumps”, “over”, “the”, “lazy”, “dog.”]
    • 说明:Whitespace Analyzer在空格处将文本分割成单词,保留了文本中的标点符号和大小写。
  2. 示例文本2(中英文混合)

    • 分词结果:[“Hello”, “World”, “ES”, “真好玩”]
    • 说明:同样地,Whitespace Analyzer在空格处将文本分割成单词或词组。对于中英文混合文本,它不会进行任何特殊处理,只是简单地按空格分割。
  3. 示例文本3(特殊字符和数字)

    • 分词结果:[“2023-elastic-search”, “is”, “great!”]
    • 说明:Whitespace Analyzer将文本在空格处分割,特殊字符和数字组成的字符串(如"2023-elastic-search")被视为一个整体。
应用场景与限制

Whitespace Analyzer适用于以下场景:

  • 文本中单词之间以空格分隔,且不需要进行其他处理(如小写化或去除停用词)。
  • 需要保留文本中的大小写和标点符号。

然而,Whitespace Analyzer也有其局限性:

  • 它无法处理没有空格分隔的复合词或缩写。
  • 对于非英文文本(如中文),由于单词之间通常没有空格分隔,Whitespace Analyzer无法进行有效的分词。
结论

Whitespace Analyzer是Elasticsearch中一个简单且直接的分词器,它只在空格处分割文本,不进行其他任何处理。适用于需要保留文本原始格式和标点符号的场景。然而,在处理非英文文本或需要更复杂分词规则的情况下,可能需要选择其他更合适的分词器。

4. Keyword Analyzer:

  • 不会对文本进行拆分,将整个文本作为一个词项。
  • 通常用于不需要进行分词的字段,如关键字字段或精确匹配字段。
示例

ES(Elasticsearch)的Keyword Analyzer是一种特殊的分词器,它的作用是将输入的整个字符串视为一个单独的词(term)或关键词,而不进行任何分词处理。这意味着,无论输入字符串中包含多少个单词或字符,Keyword Analyzer都会将其作为一个整体来索引和搜索。下面通过具体例子来说明Keyword Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1:“The quick brown fox jumps over the lazy dog.”
  • 示例文本2:“Elasticsearch is fun!”
  • 示例文本3:“2023-annual-report”

使用Keyword Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1

    • 分词结果:[“The quick brown fox jumps over the lazy dog.”]
    • 说明:尽管文本中包含多个单词,但Keyword Analyzer将其视为一个整体进行索引和搜索。
  2. 示例文本2

    • 分词结果:[“Elasticsearch is fun!”]
    • 同样地,Keyword Analyzer将整个字符串视为一个单独的词进行索引和搜索。
  3. 示例文本3

    • 分词结果:[“2023-annual-report”]
    • 对于包含特殊字符(如短横线)的字符串,Keyword Analyzer也会将其视为一个整体进行索引和搜索。
应用场景与优势

Keyword Analyzer适用于以下场景:

  • 精确匹配:当需要确保整个字符串作为一个单独的词进行精确匹配时,可以使用Keyword Analyzer。例如,商品编号、订单号、用户名等字段通常需要进行精确匹配。
  • 保留原始格式:如果希望保留输入字符串的原始格式和标点符号,可以使用Keyword Analyzer。这样,在搜索时就可以按照原始格式进行匹配。
  • 避免分词错误:对于某些特殊字符或缩写,分词器可能会产生错误的分词结果。使用Keyword Analyzer可以避免这种情况,因为整个字符串会被视为一个整体。
结论

综上所述,ES的Keyword Analyzer在需要将整个字符串视为一个单独的词进行索引和搜索时非常有用。它适用于精确匹配的场景,可以保留输入字符串的原始格式,并避免分词错误。通过合理使用Keyword Analyzer,可以提高Elasticsearch的搜索效率和准确性。

5. Stop Analyzer:

  • 与Simple Analyzer类似,但增加了对停用词的过滤。
  • 默认使用英文停用词列表,如“the”、“a”、“an”等。
示例

ES(Elasticsearch)的Stop Analyzer是一种内置的分词器,它在Simple Analyzer的基础上进行了扩展,加入了停用词(stop words)的过滤功能。停用词通常是在自然语言处理中被视为没有实际意义的词汇,如“the”、“a”、“is”等英文中的冠词、介词和动词时态标志等。通过使用Stop Analyzer,可以在索引和搜索时忽略这些停用词,从而提高搜索的效率和准确性。

示例文本分析

假设我们有以下文本:

  • 示例文本:“The quick brown fox jumps over the lazy dog.”

使用Stop Analyzer对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“quick”, “brown”, “fox”, “jumps”, “lazy”, “dog”]

在这个例子中,Stop Analyzer去除了文本中的停用词“The”和“over”(注意:“over”虽然在这个句子中有实际意义,但某些停用词表可能包含它,这取决于具体的停用词配置),并保留了其他有实际意义的词汇。这样,在搜索时,用户可以输入不包含停用词的查询字符串,如“quick brown fox”,仍然能够匹配到这段文本,因为停用词在索引和搜索过程中被忽略了。

应用场景与优势

Stop Analyzer适用于以下场景:

  1. 提高搜索效率:通过去除停用词,可以减少索引的大小和搜索时的计算量,从而提高搜索效率。
  2. 提升搜索准确性:停用词通常不提供实际的搜索价值,去除它们可以减少噪音,使搜索结果更加准确。
  3. 自然语言处理:在自然语言处理任务中,如文本分类、情感分析等,去除停用词也是常见的预处理步骤之一。
结论

综上所述,ES的Stop Analyzer通过去除文本中的停用词,可以在索引和搜索时提高效率和准确性。它适用于各种需要自然语言处理的场景,特别是在搜索和文本分析任务中。通过合理使用Stop Analyzer,可以优化Elasticsearch的性能和用户体验。

6. Pattern Analyzer:

  • 根据正则表达式模式将文本拆分为词项。
  • 可以指定自定义的正则表达式模式来满足特定的分词需求。
示例

ES(Elasticsearch)的Pattern Analyzer是一种基于正则表达式(regular expression)进行分词的分析器。它允许用户通过定义特定的模式(pattern)来指定如何将文本分割成单词或标记(tokens)。Pattern Analyzer在处理文本时,会根据定义的正则表达式匹配文本中的字符,并将匹配到的部分作为单独的单词或标记输出。

示例文本分析

假设我们有以下文本:

  • 示例文本:“The-quick-brown-fox-jumps-over-the-lazy-dog”

我们希望使用Pattern Analyzer将文本中的连字符(-)作为分隔符,将文本分割成单独的单词。为此,我们可以定义一个正则表达式模式,如\W+(匹配任何非单词字符的序列,包括连字符)。

使用Pattern Analyzer并指定该正则表达式模式对示例文本进行分词处理,可以得到以下结果:

  • 分词结果:[“The”, “quick”, “brown”, “fox”, “jumps”, “over”, “the”, “lazy”, “dog”]

在这个例子中,Pattern Analyzer根据正则表达式模式\W+成功地将文本中的连字符(-)作为分隔符,将文本分割成了单独的单词。

配置Pattern Analyzer

在Elasticsearch中,可以通过定义自定义分析器(custom analyzer)来配置Pattern Analyzer。以下是一个配置Pattern Analyzer的示例:

PUT /my_index
{"settings": {"analysis": {"analyzer": {"my_pattern_analyzer": {"type": "pattern","pattern": "\\W+",  // 正则表达式模式,用于指定分词分隔符"lowercase": true   // 将分词结果转换为小写(可选)}}}}
}

在上面的示例中,我们创建了一个名为my_pattern_analyzer的自定义分析器,它使用Pattern Analyzer并指定了正则表达式模式\W+作为分词分隔符。同时,我们还设置了lowercase参数为true,以便将分词结果转换为小写。

应用场景与优势

Pattern Analyzer适用于以下场景:

  1. 自定义分词规则:当用户需要定义自定义的分词规则时,可以使用Pattern Analyzer并指定相应的正则表达式模式。
  2. 处理特殊字符:当文本中包含特殊字符或分隔符时,可以使用Pattern Analyzer来根据这些特殊字符或分隔符进行分词。
  3. 灵活性:由于Pattern Analyzer基于正则表达式进行分词,因此具有很高的灵活性,可以处理各种复杂的文本分割需求。
结论

综上所述,ES的Pattern Analyzer是一种强大的分词工具,它允许用户通过定义正则表达式模式来指定如何将文本分割成单词或标记。通过合理配置Pattern Analyzer,可以灵活地处理各种文本分割需求,提高搜索效率和准确性。

7. Language Analyzers:

  • ES还提供了多个针对特定语言的分词器,如English、French等。
  • 这些分词器会根据特定的语言规则和特征进行分词处理,以提供更准确的分词效果。

8. IK Analyzer:

  • 一个流行的第三方中文分词器,基于开源项目IK Analysis开发。
  • 提供了细粒度的中文分词能力,支持词库扩展和自定义词典。
  • 可以根据具体需求进行配置和定制,支持停用词过滤、同义词扩展等功能。
  • 在创建索引时,可以将字段的分词器指定为“ik_max_word”或“ik_smart”。“ik_max_word”会尽可能多地进行分词,而“ik_smart”则会更加智能地进行分词。
示例

ES(Elasticsearch)的IK Analyzer是一个基于Java语言开发的轻量级中文分词工具包。它最初是作为开源项目Lucene的中文分词组件而开发的,后来逐渐发展成为面向Java的公用分词组件,并提供了对Lucene的默认优化实现。IK Analyzer实现了简单的分词歧义排除算法,标志着其从单纯的词典分词向模拟语义分词衍化。

IK Analyzer的分词模式

IK Analyzer提供了两种分词模式:

  1. ik_smart模式:该模式会做最粗粒度的拆分,即会把文本做尽可能少的切分,适合搜索引擎建立索引时使用。例如,对于文本“我是中国人”,ik_smart模式会将其分词为“我”、“是”、“中国人”。
  2. ik_max_word模式:该模式会做最细粒度的拆分,即会把文本做尽可能多的切分,适合用于分词后统计词频等分析工作。对于同样的文本“我是中国人”,ik_max_word模式可能会将其分词为“我”、“是”、“中国”、“中国人”、“人”。
IK Analyzer的安装与配置

在Elasticsearch中安装IK Analyzer插件通常涉及以下步骤:

  1. 下载插件:从IK Analyzer的官方GitHub仓库或其他可信来源下载适用于当前Elasticsearch版本的插件包。
  2. 安装插件:将下载的插件包解压,并将解压后的文件复制到Elasticsearch的插件目录中(通常是plugins/ik)。
  3. 重启Elasticsearch:安装完插件后,需要重启Elasticsearch服务以使插件生效。
示例文本分析

假设我们有以下中文文本:

  • 示例文本:“我爱自然语言处理”

使用IK Analyzer的ik_smart模式对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“我”,“爱”,“自然语言处理”]

而使用ik_max_word模式进行分词处理,则可能得到更细粒度的分词结果:

  • 分词结果:[“我”,“爱”,“自然”,“语言”,“处理”,“自然语言”,“自然语言处理”]
IK Analyzer的优势
  1. 中文分词效果好:IK Analyzer针对中文文本进行了优化,提供了准确的中文分词功能。
  2. 配置灵活:用户可以通过修改配置文件来自定义分词词典、停用词等,以满足特定的分词需求。
  3. 性能优越:IK Analyzer在分词速度和内存占用方面表现优秀,适合大规模文本处理场景。
结论

综上所述,ES的IK Analyzer是一个功能强大、配置灵活的中文分词工具包。它提供了两种分词模式以满足不同的应用场景需求,并在中文分词效果、性能和配置灵活性方面表现出色。通过合理使用IK Analyzer,可以显著提高Elasticsearch在处理中文文本时的搜索效率和准确性。

9. Smart Chinese Analyzer(smartcn):

  • ES内置的中文分词器,使用机器学习算法进行分词。
  • 适用于简体中文和繁体中文,具有较高的分词准确性和召回率。
  • 易于使用,无需额外配置即可使用。
示例

ES(Elasticsearch)的Smart Chinese Analyzer是基于Lucene自带的一款中文分词器,它使用基于规则的分词方法,能够进行精确的中文分词,并支持中文数字、中文量词、时间、日期等特殊词汇的识别和转换。以下是对Smart Chinese Analyzer的详细举例说明:

一、分词原理与特点
  1. 基于规则的分词:Smart Chinese Analyzer通过预设的规则库对中文文本进行分词,这些规则包括词汇边界、词汇组合规则等。
  2. 支持特殊词汇:它能够识别并正确分词中文数字(如一、二、三等)、中文量词(如个、只、条等)、时间(如年、月、日等)和日期等特殊词汇。
  3. 基于隐马尔可夫模型:Smart Chinese Analyzer在大型训练语料库上使用基于隐马尔可夫(Markov)模型的概率知识来查找简体中文文本的最佳分词。
二、安装与配置

Smart Chinese Analyzer通常作为Elasticsearch的一个插件进行安装。安装步骤包括下载插件包、将插件包解压到Elasticsearch的插件目录中,并重启Elasticsearch服务以使插件生效。

三、分词示例

假设我们有以下中文文本:

  • 示例文本:“股市,投资,稳赚不赔,必修课,如何做好仓位管理和情绪管理”

使用Smart Chinese Analyzer对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“股市”,“投资”,“稳”,“赚”,“不”,“赔”,“必修课”,“如何”,“做”,“好”,“仓位”,“管理”,“和”,“情绪”,“管理”]

从分词结果可以看出,Smart Chinese Analyzer能够准确地将中文文本切分成有意义的词汇,并保留了原文中的关键信息。

四、应用场景

Smart Chinese Analyzer适用于以下场景:

  1. 搜索引擎:在搜索引擎中,Smart Chinese Analyzer可以帮助提高中文文本的索引和搜索效率,使用户能够更快速地找到相关信息。
  2. 文本分析:在文本分析任务中,如情感分析、主题检测等,Smart Chinese Analyzer可以提供准确的分词结果,从而提高分析的准确性和效率。
  3. 自然语言处理:在自然语言处理领域,Smart Chinese Analyzer可以作为分词组件,为后续的文本处理任务(如词性标注、句法分析等)提供基础支持。
五、注意事项
  1. 扩展性差:Smart Chinese Analyzer的扩展性相对较差,扩展词库、禁用词库和同义词库等处理起来可能不太方便。
  2. 性能考虑:在处理大规模文本数据时,需要注意Smart Chinese Analyzer的性能表现,并根据实际需求进行调优。

综上所述,ES的Smart Chinese Analyzer是一款功能强大、基于规则的中文分词器,它能够准确地对中文文本进行分词处理,并支持特殊词汇的识别和转换。通过合理配置和使用Smart Chinese Analyzer,可以显著提高Elasticsearch在处理中文文本时的搜索效率和准确性。

以上分词器各有特点,适用于不同的文本处理需求。在选择分词器时,需要根据具体的业务场景和文本特点进行选择。同时,也可以通过自定义分词器来满足特定的需求。

相关文章:

【分布式技术】ES扩展知识-Elasticsearch分词器的知识与选择

ES知识扩展 分词器有哪些?1. 标准分词器(Standard Analyzer):示例示例文本分析配置参数与自定义应用场景 2. Simple Analyzer:示例示例文本分析应用场景与限制结论 3. Whitespace Analyzer:示例示例文本分析…...

【网络安全 | 漏洞挖掘】通过密码重置污染实现账户接管

未经许可,不得转载。 文章目录 密码重置污染攻击漏洞挖掘的过程目标选择与初步测试绕过 Cloudflare 的尝试发现两个域名利用 Origin 头部污染实现账户接管攻击流程总结在今天的文章中,我们将深入探讨一种 账户接管 漏洞,并详细分析如何绕过 Cloudflare 的保护机制,利用密码…...

【Nginx从入门到精通】01 、教程简介

讲师:张一鸣老师 课程简介 重量级课程 由浅入深,内容非常广泛 几十个线上的实战案例(图谱),几乎涵盖当前所有互联网主流应用场景 性能:由压测得出结果 调优:从操作系统开始,使你对高并发系统架构的技…...

MySQL面试之底层架构与库表设计

华子目录 mysql的底层架构客户端连接服务端连接的本质,连接用完会立马丢弃吗解析器和优化器的作用sql执行前会发生什么客户端的连接池和服务端的连接池数据库的三范式 mysql的底层架构 客户端连接服务端 连接的本质,连接用完会立马丢弃吗 解析器和优化器…...

C2 追踪器:监控指挥与控制的重要性

12 款暗网监控工具 20 款免费网络安全工具 移动取证软件:为什么 Belkasoft X 应该是您的首选工具 网络安全已成为不断演变的威胁形势中的关键领域。 网络攻击者经常使用命令和控制 (C2) 基础设施来执行和管理攻击。 这些基础设施使恶意软件和攻击者能够与受害设…...

二、神经网络基础与搭建

神经网络基础 前言一、神经网络1.1 基本概念1.2 工作原理 二、激活函数2.1 sigmoid激活函数2.1.1 公式2.1.2 注意事项 2.2 tanh激活函数2.2.1 公式2.2.2 注意事项 2.3 ReLU激活函数2.3.1 公式2.3.2 注意事项 2.4 SoftMax激活函数2.4.1 公式2.4.2 Softmax的性质2.4.3 Softmax的应…...

java导出pdf

引入包 <properties><itext.version>8.0.5</itext.version></properties><dependencies><dependency><groupId>com.itextpdf</groupId><artifactId>itext-core</artifactId><version>${itext.version}</…...

muduo之线程同步CountDownLatch

简介 CountDownLatch称为门阀&#xff0c;用于等待另外线程执行完成 结构 #mermaid-svg-6Azuu15vhIS2hCP1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6Azuu15vhIS2hCP1 .error-icon{fill:#552222;}#mermaid-s…...

【Python系列】Python中打印详细堆栈信息的技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

SpringBoot中监听器、过滤器、拦截器和AOP详解

SpringBoot中监听器、过滤器、拦截器和AOP详解 在构建 Spring Boot 应用程序时&#xff0c;监听器&#xff08;Listener&#xff09;、过滤器&#xff08;Filter&#xff09;、拦截器&#xff08;Interceptor&#xff09;和面向切面编程&#xff08;AOP&#xff09;是四种常用…...

如何让手机ip变成动态

在数字化浪潮中&#xff0c;手机已成为我们日常生活中不可或缺的一部分。无论是浏览网页、使用社交媒体还是进行在线购物&#xff0c;手机都扮演着举足轻重的角色。然而&#xff0c;在享受网络带来的便利时&#xff0c;我们也需要关注网络安全和隐私保护。静态IP地址可能让手机…...

[Qt platform plugin问题] Could not load the Qt platform plugin “xcb“

Qt platform plugin 是 Qt 应用程序启动时加载的插件。不同的平台有不同的插件。 常见的插件有:linuxfb Wayland xcb 简单来说就是启动一个GUI程序, 离不开这些插件.选择其中一个就好 出现这个问题要么就是没有插件&#xff0c;要么就是插件依赖的库没有。 要么就是插件选则的…...

嵌入式开发人员如何选择合适的开源前端框架进行Web开发

在嵌入式系统的Web开发中&#xff0c;前端框架的选择对于项目的成败有着决定性的影响。一个合适的框架不仅能提高开发效率&#xff0c;还能保证系统的稳定性和可扩展性。本文将介绍几款适用于嵌入式Web开发的开源前端框架&#xff0c;并探讨它们的优缺点。 1. Element Plus V…...

MySQL数据库(七)----查询相关操作(子查询)

子查询是指在一个查询语句&#xff08;主查询&#xff09;内部嵌套的另一个查询语句。子查询可以出现在 SELECT、FROM、WHERE、HAVING 等子句中。它可以将一个复杂的查询问题分解为多个简单的查询步骤&#xff0c;从而更方便地获取所需的数据。 引入子查询&#xff1a; -- 查…...

01_Spring开胃菜

一、 为什么是Spring? 在正式进入Spring内容前我们先看看我们以往经典的程序设计。 当我们去登录时,会调用后端的Controller,Controller接收到用户的请求后会调用业务层的Service进行登录的业务处理,Service业务处理过程中会调用Dao层向DB获取数进行判断。 接下来我们用代…...

SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志

Spring 面向切面编程(AOP),系列文章: 《Spring面向切面编程(AOP)的简单实例》 《Spring使用AspectJ的注解式实现AOP面向切面编程》 《SpringBoot使用AspectJ实现AOP记录接口:请求日志、响应日志、异常日志》 《SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:…...

WPF下播放Rtmp的解决方案

介绍 在实际的开发过程中&#xff0c;需要在应用内部内嵌播放器进行视频的播放。官方默认的MediaElement控件只能播放有限的视频格式&#xff0c;也不能播放网络流。比较流行的解决方式是vlc的库&#xff0c;但是在实际使用过程中发现有很多问题。这里给大家推荐另一个比较好的…...

7.高可用集群架构Keepalived双主热备原理

一. 高可用集群架构Keepalived双主热备原理 (1)主机+备机keepalived配置(192.168.1.171) ! Configuration File for keepalivedglobal_defs {# 路由id:当前安装keepalived节点主机的标识符,全局唯一router_id keep_101 } #计算机节点(主机配置) vrrp_instance VI_1 {</...

为以人工智能为中心的工作负载重新设计的全局控制台

MinIO 控制台多年来一直是一个不断发展的产品。每次学习时&#xff0c;我们都会思考如何改进交互框架中这个非常重要的部分。首先是控制台&#xff0c;它在推出后的一年内就被广泛采用。更具体地说&#xff0c;超过 10K 个组织。接下来是企业控制台。这从对象存储与其 GUI 之间…...

go channel中的 close注意事项 range取数据

在使用 Go 语言中的 close 函数时&#xff0c;有一些注意事项需要牢记&#xff0c;以确保程序的健壮性和正确性&#xff1a; 1. **仅用于通道&#xff08;channel&#xff09;**&#xff1a; - close 函数只能用于关闭通道&#xff0c;不能用于关闭文件、网络连接或其他资源…...

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint&#xff1a;【吐血分享&#xff0c;博主踩过的坑你跳过去&#xff01;&#xff01;跳不过去&#xff1f;太过分了给博主打钱】 浏览器自动打开项目&#xff1a; 你想释放双手吗&#xff1f;你想每天早上打开电脑运行完项目自动在浏览器打开吗&a…...

鸿蒙开发应用权限管理

简介 一种允许应用访问系统资源&#xff08;如&#xff1a;通讯录等&#xff09;和系统能力&#xff08;如&#xff1a;访问摄像头、麦克风等&#xff09;的通用权限访问方式&#xff0c;来保护系统数据&#xff08;包括用户个人数据&#xff09;或功能&#xff0c;避免它们被…...

【数据库】如何保证数据库迁移过程中数据的一致性?

在数据库迁移过程中&#xff0c;保证数据的一致性是非常重要的&#xff0c;尤其是在涉及到多个表、多个数据库或分布式系统的情况下。以下是一些确保数据一致性的最佳实践和方法&#xff1a; 1. 备份数据 在开始迁移之前&#xff0c;进行全面的数据备份是确保数据一致性的第…...

C++之内存管理

​ &#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C入门 目录 前言 一、C/C内存分配 二、 malloc、calloc、realloc、free 三、C内存管理方式 3.1 new/delete 操作内置类型 3.2 new和detele操作自定义类型…...

ISP是什么?

isp全称为Internet Service Provider&#xff0c;即互联网服务提供商&#xff0c;是一种向用户提供互联网接入服务的公司或组织&#xff0c;它们提供的服务包括互联网接入、域名注册、网站托管等等。 ISP的应用场景非常广泛&#xff0c;几乎所有的互联网用户都需要通过ISP来接…...

机房动环境监控用各种列表已经淘汰了,现在都是可视化图表展示了

在信息技术飞速发展的今天&#xff0c;机房作为数据存储、处理和传输的核心场所&#xff0c;其稳定运行至关重要。过去&#xff0c;机房动环境监控主要依赖各种列表形式来呈现数据&#xff0c;但如今&#xff0c;这种方式已经逐渐被淘汰&#xff0c;取而代之的是更加直观、高效…...

RHCE的练习(12)

写一个脚本&#xff0c;完成以下要求&#xff1a; 给定一个用户&#xff1a; 如果其UID为0&#xff0c;就显示此为管理员&#xff1b;否则&#xff0c;就显示其为普通用户&#xff1b; #!/bin/bash ​ # 使用read命令获取用户名 read -p "请输入用户名: " username ​…...

uniapp自动注册机制:easycom

传统 Vue 项目中&#xff0c;我们需要注册、导入组件之后才能使用组件。 uniapp 框架提供了一种组件自动注册机制&#xff0c;只要你在 components 文件夹下新建的组件满足 /components/组件名/组件名.vue 的命名规范&#xff0c;就能直接使用。 注意&#xff1a;组件的文件夹…...

【论文阅读】(Security) Assertions by Large Language Models

论文笔记:(Security) Assertions by Large Language Models 来源:IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY I. 引言 计算机系统的安全性通常依赖于硬件的根信任。硬件漏洞可能对系统造成严重影响,因此需要支持安全验证的技术。断言验证是一种流行的验证…...

C++ 编程基础(5)类与对象 | 5.8、面向对象五大原则

文章目录 一、面向对象五大原则1、单一功能&#xff08;Single Responsibility Principle, SRP&#xff09;2、开放封闭原则&#xff08;Open/Closed Principle, OCP&#xff09;3、里氏替换原则&#xff08;Liskov Substitution Principle, LSP&#xff09;4、接口隔离原则&am…...