Elasticsearch Analyze API

韦知
2023-12-01

请求

GET /_analyze

POST /_analyze

GET /<index>/_analyze

POST /<index>/_analyze

参数

路径里的参数:index,指定索引。如果指定,则analyzer或者 <field>参数将覆盖此值。如果未指定分析器或字段,则分析API使用默认分析器作为索引。如果未指定索引,或者该索引没有默认分析器,则分析API使用标准分析器。

参数含义
analyzer(可选,字符串)应应用于提供的分析器的名称text。这可能是内置分析器,也可能是 在索引中配置的分析器。如果未指定此参数,则分析API使用字段映射中定义的分析器。如果未指定任何字段,则分析API使用默认分析器作为索引。如果未指定索引,或者该索引没有默认分析器,则分析API使用标准分析器。
attributes(可选,字符串数组)用于过滤explain参数输出的令牌属性数组。
char_filter(可选,字符串数组)用于在标记程序之前对字符进行预处理的字符过滤器数组。有关字符过滤器的列表,请参见字符过滤器参考。
explain(可选,布尔值)如果为true,则响应包括令牌属性和其他详细信息。默认为false。 [ 实验 ]其他详细信息的格式在Lucene中被标记为实验性的,将来可能会更改。
field(可选,字符串)用于派生分析器的字段。要使用此参数,必须指定一个索引。如果指定,则analyzer参数将覆盖此值。如果未指定任何字段,则分析API使用默认分析器作为索引。如果未指定索引,或者该索引没有默认分析器,则分析API使用标准分析器。
filter(可选,字符串数组)用于在分词器之后应用的令牌过滤器数组。有关令牌过滤器的列表,请参见令牌过滤器参考。
normalizer(可选,字符串)用于将文本转换为单个标记的规范化器。有关规范化器的列表,请参见规范化器。
text(必需,字符串或字符串数​​组)要分析的文本。如果提供字符串数组,则将其作为多值字段进行分析。
tokenizer(可选,字符串)令牌生成器,用于将文本转换为令牌。有关令牌生成器的列表,请参见令牌生成器参考。

示例

简单用法

GET /_analyze
{
  "analyzer" : "standard",
  "text" : "Quick Brown Foxes!"
}
GET /_analyze
{
  "analyzer" : "standard",
  "text" : ["this is a test", "the second text"]
}

添加过滤器

GET /_analyze
{
  "tokenizer" : "keyword",
  "filter" : ["lowercase"],
  "char_filter" : ["html_strip"],
  "text" : "this is a <b>test</b>"
}

使用索引默认分析器

GET /analyze_sample/_analyze
{
  "text" : "this is a test"
}

使用索引字段指定分析器

GET /analyze_sample/_analyze
{
  "field" : "obj1.field1",
  "text" : "this is a test"
}

使用索引自定义分析器

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "keyword",
          "char_filter": [
            "my_custom_html_strip_char_filter"
          ]
        }
      },
      "char_filter": {
        "my_custom_html_strip_char_filter": {
          "type": "html_strip",
          "escaped_tags": [
            "b"
          ]
        }
      }
    }
  }
}

GET my_index/_analyze/
{
  "analyzer": "my_analyzer",
  "text": "<p>I&apos;m so <b>happy</b>!</p>"
}

 类似资料:

相关阅读

相关文章

相关问答