Elasticsearch Analyze API

請求

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>"
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章