官网地址
Specify an analyzer | Elasticsearch Guide [7.10] | Elastic
Elasticsearch 如何确定索引分析器
Elasticsearch 通过按顺序检查以下参数来确定要使用的索引分析器:
- 字段的分析器映射参数。请参阅为字段指定分析器。
- 索引设置。请参阅指定索引的默认分析器。analysis.analyzer.default
如果未指定这些参数,则使用标准分析器。
来自 https://www.elastic.co/guide/en/elasticsearch/reference/7.10/specify-analyzer.html
Elasticsearch 如何确定搜索分析器
在搜索时,Elasticsearch 通过按顺序检查以下参数来确定要使用的分析器:
- 搜索查询中的分析器参数。请参阅为查询指定搜索分析器。
- 字段的search_analyzer映射参数。请参阅为字段指定搜索分析器。
- 索引设置。请参阅为索引指定默认搜索分析器。analysis.analyzer.default_search
- 字段的分析器映射参数。请参阅为字段指定分析器。
如果未指定这些参数,则使用标准分析器。
来自 https://www.elastic.co/guide/en/elasticsearch/reference/7.10/specify-analyzer.html
指定分析器的几种方式示例
查询时,查询某字段,指定搜索分析器 @3
(不推荐单独指定,除非充分的测试,否则建议搜索和索引统一分析器)
创建mappings时,为某个字段指定搜索分析器. @4
创建mappings时,为搜索指定默认分析器 @5
2两种,是倒排索引时,使用的分析器.
后3种,是搜索时,分词查询时候的分析器.
如果不设置搜索分析器,则默认使用索引分析器.
# @1
# 为索引某个字段指定分析器
PUT my-index-000001
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "whitespace"
}
}
}
}
# @2
# 为索引指定默认的分析器
PUT my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"default": {
"type": "simple"
}
}
}
}
}
# @3
# 为搜索某个字段查询指定分析器
GET my-index-000001/_search
{
"query": {
"match": {
"message": {
"query": "Quick foxes",
"analyzer": "stop"
}
}
}
}
# @4
# 创建mappings时候,为某个字段指定搜索分析器
PUT my-index-000001
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "whitespace",
"search_analyzer": "simple"
}
}
}
}
# @5
# 创建mapping时,指定默认分析器
PUT my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"default": {
"type": "simple"
},
"default_search": {
"type": "whitespace"
}
}
}
}
}