查看 Elasticsearch 分析器

分析器决定了文本字段如何被拆分和索引,选择合适的分析器可以提高搜索的精度和效率。
那么,如何查看 Elasticsearch 中使用的什么分词器呢?

要查看 Elasticsearch 中使用的分析器,可以查看索引的映射信息。

GET //_mapping

常见索引及其特点:

  1. 标准分析器(standard analyzer):标准分析器是 Elasticsearch 默认使用的分析器。它将文本划分为小写形式的单词,并去掉停用词(the、is 等)。标准分析器还进行了一些 token 过滤,例如去除数字、符号等。标准分析器适用于大部分情况下的文本搜索。

  2. 简单分析器(simple analyzer):简单分析器不进行分词,只将输入字符串分成小写的单词,去掉停用词并进行过滤。它适用于非常规的文本分析,例如单词短、不需要分词的场景。

  3. 语言分析器(language analyzer):语言分析器专门针对不同语言的文本进行分析。例如,中文分析器使用中文分词技术将文本分成中文单词。语言分析器可以提高分析的准确性和效率。

  4. 较为高级的分析器:

  • 自定义分析器(custom analyzer):自定义分析器可以根据具体需求定制各种分析器组件,例如字符过滤器(char filter)、分词器(tokenizer)和标记过滤器(token filter)等。自定义分析器适用于需要更精细的文本处理场景。

  • edge n-gram 分析器:edge n-gram 分析器可以生成一组从词首开始的较短字符片段,用于实现搜索关键字前缀匹配。

  • n-gram 分析器:与 edge n-gram 分析器不同,n-gram 分析器会生成全部字符片段,可以用于实现搜索任意位置匹配。

例子

product_name 字段使用的是 standard_analyzer;

description 字段则使用的是 chinese_analyzer 分析器;

PUT /my_index
{
  "mappings": {
    "properties": {
      "product_name": {
        "type": "text",
        "analyzer": "standard_analyzer"
      },
      "description": {
        "type": "text",
        "analyzer": "chinese_analyzer"
      }
    }
  }
}

你可能感兴趣的:(elasticsearch,大数据,搜索引擎)