【分布式技术】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在处理中文文本时的搜索效率和准确性。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/918856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

执行flink sql连接clickhouse库

手把手教学,flink connector打通clickhouse大数据库,通过下发flink sql,来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器,工作中难免会用到。 2.方案 利用GitHub大佬提供…

力扣(leetcode)题目总结——辅助栈篇

leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏:点击进入 leetcode题目分类 关注走一波 前言:本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目&#xff0c…

基于Java Springboot宠物猫售卖管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据库:…

Windows docker下载minio出现“Using default tag: latestError response from daemon”

Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况,一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…

数据结构查找-哈希表(开发地址法+线性探测法)+(创建+查找+删除代码)+(C语言代码)

#include<stdlib.h> #include<stdio.h> #include<stdbool.h> #define NULLKEY -1//单元为空 #define DELKEY -2//单元内容被删除 #define M 20 typedef struct {int key;//关键字int count;//统计哈希冲突探测次数 }HashTable; //插入到哈希表 void InsertHT…

视频直播5G CPE解决方案:ZX7981PG/ZX7981PMWIFI6网络覆盖

方案背景 视频直播蓬勃发展的当下&#xff0c;传统直播网络联网方式的局限性越来越明显。目前传统直播的局限性主要集中在以下几个方面&#xff1a; 传统直播间网络架构条件有限&#xff0c;可连接WIFI数量少&#xff0c;多终端同时直播难以维持&#xff1b;目前4G网络带宽有限…

【电子设计】按键LED控制与FreeRTOS

1. 安装Keilv5 打开野火资料,寻找软件包 解压后得到的信息 百度网盘 请输入提取码 提取码:gfpp 安装526或者533版本都可以 下载需要的 F1、F4、F7、H7 名字的 DFP pack 芯片包 安装完 keil 后直接双击安装 注册操作,解压注册文件夹后根据里面的图示步骤操作 打开说明 STM…

vue3【实战】切换白天黑夜(暗黑模式)【组件封装】DarkMode.vue

效果预览 原理解析 切换为暗黑模式时&#xff0c;会在 html 标签上添加样式类 dark导入 ElementPlus 的暗黑模式样式后&#xff0c; ElementPlus 组件会自动响应暗黑模式自定义组件需用 UnoCSS 的 dark: 语法自定义暗黑模式的样式 代码实现 技术方案 vue3 vite ElementPlus …

基于单片机的多功能环保宠物窝设计

本设计基于单片机设计的多功能环保宠物窝&#xff0c;利用温湿度传感器、压力传感模块、气味传感模块、红外测温传感器、通信模块、显示模块、清扫部件等&#xff0c;使其能够实现自动检测并调节温湿度、补充宠物食物、检测宠物体温健康并出现异常时进行报警、自动清扫消毒宠物…

MySql结合element-plus pagination的分页查询

实现效果如下&#xff1a; 重点&#xff1a;使用mysql查询的limit和offset 原生SQL写法&#xff1a; select c.id as deptid,c.name as department,position,a.name staffname,2024-11 as shijian ,CASE WHEN b.shijian IS NULL THEN no ELSE yes END AS submit from fa_wecom…

vue使用List.reduce实现统计

需要对集合的某些元素的值进行计算时&#xff0c;可以在计算属性中使用forEach方法 1.语法&#xff1a;集合.reduce ( ( 定义阶段性累加后的结果 , 定义遍历的每一项 ) > 定义每一项求和逻辑执行后的返回结果 , 定义起始值 ) 2、简单使用场景&#xff1a;例如下面…

Spring Boot汽车资讯:科技与速度的交响

3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架&#xff0c;JAVA作为开发语言&#…

前端页面自适应等比例缩放 Flexible+rem方案

在移动互联网时代&#xff0c;随着智能手机和平板电脑的普及&#xff0c;前端开发者面临的一个重要挑战是如何让网页在不同尺寸和分辨率的设备上都能良好地显示。为了应对这一挑战&#xff0c;阿里巴巴的前端团队开发了 flexible.js&#xff0c;旨在提供一种简单有效的解决方案…

记录一下在原有的接口中增加文件上传☞@RequestPart

首先&#xff0c;咱声明一下&#xff1a; RequestBody和 MultipartFile 不可以 同时使用&#xff01;&#xff01;&#xff01; 因为这两者预期的请求内容类型不同。RequestBody 预期请求的 Content-Type 是 application/json 或 application/xml&#xff0c;而 MultipartFile …

HTML5实现剪刀石头布小游戏(附源码)

文章目录 1.设计来源1.1 主界面1.2 皮肤风格1.2 游戏中界面 2.效果和源码源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/143798520 HTM…

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

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

【qt】控件2

1.frameGeometry和Geometry区别 frameGeometry是开始从红圈开始算&#xff0c;Geometry从黑圈算 程序证明&#xff1a;使用一个按键&#xff0c;当按键按下,qdebug打印各自左上角的坐标&#xff08;相当于屏幕左上角&#xff09;&#xff0c;以及窗口大小 Widget::Widget(QWid…

Idea中创建和联系MySQL等数据库

备注&#xff1a;电脑中要已下好自己需要的MySQL数据库软件 MySQL社区版下载链接&#xff1a; https://dev.mysql.com/downloads/installer/ 优点&#xff1a; 1.相比与在命令行中管理数据库&#xff0c;idea提供了图形化管理&#xff0c;简单明了&#xff1b; 2.便于与后端…

【Unity】网格系统:物体使用网格坐标定位

需求分析 前面物体放置在地板上都是地板任意位置放置&#xff0c;本节开始对物体放置的位置做限制。 建立网格&#xff0c;网格可以设置起始世界坐标、单元格大小和规格&#xff1b;单元格中包括内部物体的信息&#xff1b;物体的位置通过网格的坐标确定&#xff1b;单元格中…

网络协议(4)拥塞控制

之前已经说过了tcp也是会考虑网络的情况的&#xff0c;也就是当网络出现问题的时候tcp不会再对报文进行重传。当所有的用户在网络不好的时候都不会对丢失的报文进行重传。这样就会防止网络瘫痪。 这样的机制也就是tcp会进行拥塞控制。 拥塞控制 所谓的慢启动看下面这张图就能…