Link Search Menu Expand Document Documentation Menu

搜索分析器

The search_analyzer 映射参数指定在搜索时用于 text 字段的分析器。这允许用于索引的分析器与用于搜索的分析器不同,从而可以更好地控制如何解释和匹配搜索词。

默认情况下,索引和搜索都使用相同的分析器。但是,当您希望在搜索期间应用更宽松或更严格的匹配规则时,例如仅在搜索时使用词干提取或删除停用词,使用自定义的 search_analyzer 可能会有所帮助。有关更多信息和用例,请参阅搜索分析器

示例

以下示例创建一个字段,该字段使用配置了edge_ngram_tokenizeredge_ngram_analyzer 进行索引,并使用标准分析器进行搜索

PUT /articles
{
  "settings": {
    "analysis": {
      "analyzer": {
        "edge_ngram_analyzer": {
          "tokenizer": "edge_ngram_tokenizer",
          "filter": ["lowercase"]
        }
      },
      "tokenizer": {
        "edge_ngram_tokenizer": {
          "type": "edge_ngram",
          "min_gram": 2,
          "max_gram": 10,
          "token_chars": ["letter", "digit"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "edge_ngram_analyzer",
        "search_analyzer": "standard"
      }
    }
  }
}

有关搜索分析器如何工作的完整说明以及更多示例,请参阅搜索分析器

剩余 350 字符

有问题?

想要贡献?