mapping parameters 参数
1.analyzer 文本分析器
analyzer来实现文本分析,从而实现将非结构化文本(例如文章正文、邮件内容等)转换为结构化数据,便于检索。默认 “standard” 分词器分析输入文本。
Analyzer包含3个部分:
(1).Character filters,字符过滤器,接收原始文本,添加、删除或者改变原始文本的字符。例如HTML标签过滤等。1个Analyzer中可以有0个或者多个字符过滤器。
(2).Tokenizer, 分词器,接收经过字符过滤器后的字符流,对其进行分词。1个Analyzer中只能有1个Tokenizer。
(3).Token filters, 分词过滤器,接收经过分词器后的分词列表,添加、删除或者更改分词。例如大小写转换、同义词添加等。1个Analyzer中可以有0个或者多个分词过滤器。
官方地址:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analyzer.html
ES内置了很多Analyzer,具体看官网:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-analyzers.html
Character filters reference:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-charfilters.html
Tokenizer reference:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-tokenizers.html
Token filters reference:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-tokenfilters.html#analysis-tokenfilters
例子:
DELETE my-index-000001
#自定义Analyzer
PUT my-index-000001
{
"settings":{
"analysis":{
"analyzer":{
"my_analyzer":{
"type":"custom",
"tokenizer":"standard",
"filter":[
"lowercase"
]
},
"my_stop_analyzer":{
"type":"custom",
"tokenizer":"standard",
"filter":[
"lowercase",
"english_stop"
]
}
},
"filter":{
"english_stop":{
"type":"stop",
"stopwords":"_english_"
}
}
}
},
"mappings":{
"properties":{
"title": {
"type":"text",
"analyzer":"my_analyzer",
"search_analyzer":"my_stop_analyzer",
"search_quote_analyzer":"my_analyzer"
}
}
}
}
#查看mapping的properties生效情况
GET my-index-000001/_mapping
#增加两条doc验证
PUT my-index-000001/_doc/1
{
"title":"The Quick Brown Fox"
}
PUT my-index-000001/_doc/2
{
"title":"A Quick Brown Fox"
}
#查询短语"the quick brown fox"
#查询出现一条数据,The Quick Brown Fox
GET my-index-000001/_search
{
"query":{
"query_string":{
"query":"\"the quick brown fox\""
}
}
}
2.boost比分权重设置
字段级别的分数加权
官网地址
https://www.elastic.co/guide/en/elasticsearch/reference/7.13/mapping-boost.html
例子
DELETE my-index-000001
##title字段级别的分数加权
PUT my-index-000001
{
"mappings": {
"properties": {
"title":{
"type": "text"
, "boost": 2
},
"content":{
"type