分析器

analyzer 映射参数用于定义在索引和搜索操作期间应用于文本字段的文本分析过程。

analyzer 映射参数的主要功能是:

  1. 分词(Tokenization): 分析器决定文本如何被分解成可以索引和搜索的单个词元(单词、数字)。每个生成的词元不得超过 32,766 字节,以避免索引失败。

  2. 规范化(Normalization): 分析器可以应用各种规范化技术,例如将文本转换为小写、移除停用词以及对单词进行词干提取/词形还原。

  3. 一致性(Consistency): 通过为索引和搜索操作定义相同的分析器,您可以确保文本分析过程的一致性,这有助于提高搜索结果的相关性。

  4. 自定义(Customization): UDB-SX 允许您通过指定要使用的分词器、字符过滤器和词元过滤器来定义自定义分析器。这让您可以精细控制文本分析过程。

示例

以下示例配置定义了一个名为 my_custom_analyzer 的自定义分析器:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_stop_filter",
            "my_stemmer"
          ]
        }
      },
      "filter": {
        "my_stop_filter": {
          "type": "stop",
          "stopwords": ["the", "a", "and", "or"]
        },
        "my_stemmer": {
          "type": "stemmer",
          "language": "english"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "my_text_field": {
        "type": "text",
        "analyzer": "my_custom_analyzer",
        "search_analyzer": "standard",
        "search_quote_analyzer": "my_custom_analyzer"
      }
    }
  }
}

在此示例中,my_custom_analyzer 使用标准分词器,将所有词元转换为小写,应用自定义停用词过滤器,并应用英语词干提取器。

然后,您可以映射一个文本字段,使其在索引和搜索操作中都使用此自定义分析器:

"mappings": {
  "properties": {
    "my_text_field": {
      "type": "text",
      "analyzer": "my_custom_analyzer"
    }
  }
}