ElasticSearch索引分析器使用

本文介绍了如何在ElasticSearch中配置分析器,包括分析器的组成:字符过滤器、分词器和标记过滤器。示例中详细展示了如何创建一个自定义分析器,用于去除HTML标签,替换特定字符,分词,并处理停用词。完成配置后,该自定义分析器可应用于索引,提高检索效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置分析器

分析器时三个顺序执行的组件的组合。包括字符过滤器,分词器,标记过滤器。
示例:

PUT /spanish_docs
{
	   "settings": {
			"analysis": {
			"analyzer": {
			  "es_std": {
			  "type": "standard",
			  "stopwords": "_spanish_"
			}
		}
		}
	}
}

自定义分析器

利用过滤器,分词器,过滤器配置一个自定义的分析器。
包括如下步骤:

  1. 用 html_strip 字符过滤器去除所有的 HTML 标签
  2. 将 & 替换成 and ,使用一个自定义的 mapping 字符过滤器
 "char_filter": {
	"&_to_and": {
	"type": "mapping",
	"mappings": [ "&=> and "]
	}
 }
  1. 使用 standard 分词器分割单词
  2. 使用 lowercase 标记过滤器将词转为小写
  3. 用 stop 标记过滤器去除一些自定义停用词。
"filter": {
	"my_stopwords": {
		"type": "stop",
		"stopwords": [ "the", "a" ]
	}
}

完整的例子:

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_analyzer": {
                    "char_filter": [
                        "html_strip",
                        "&_to_and"
                    ],
                    "filter": [
                        "lowercase",
                        "my_stopwords"
                    ],
                    "tokenizer": "standard",
                    "type": "custom"
                }
            },
            "char_filter": {
                "&_to_and": {
                    "mappings": [
                        "&=> and "
                    ],
                    "type": "mapping"
                }
            },
            "filter": {
                "my_stopwords": {
                    "stopwords": [
                        "the",
                        "a"
                    ],
                    "type": "stop"
                }
            }
        }
    }
}

创建之后给索引加上,然后在检索时就可使用。

PUT /my_index/_mapping/my_type
{
    "properties": {
        "title": {
            "analyzer": "my_analyzer",
            "type": "string"
        }
    }
}

检索:

GET /my_index/_analyze?analyzer=my_analyzer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值