弹性搜索匹配查询的映射
Mapping for elastic search Match query
用于匹配查询的映射是什么以实现以下提到的情况
- 不区分大小写的搜索
- 号码搜索
- 特殊字符搜索
- 单字符搜索
我尝试使用通配符,但 id 不支持区分大小写
尝试使用小写标准化器匹配查询它不支持特殊字符和单个字符搜索
尝试使用 ngram 进行匹配查询,但它不支持特殊字符和数字搜索。
PUT index_v14
{
"settings": {
"analysis": {
"analyzer": {
"skm_analyzer": {
"tokenizer": "skm_tokenizer"
}
},
"tokenizer": {
"skm_tokenizer": {
"type": "ngram",
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol",
"custom",
]
"custom_token_chars": "/@[]-"
}
}
}
},
"mappings": {
"title" : {
"type" : "text",
"analyzer" : "skm_analyzer",
"search_analyzer" : "autocomplete_search"
},
}
GET index_v14/_search
{
"query": {
"match": {
"title":{
"query":"[watch]: hello/stars",
"operator":"and"
}
}
}
}
任何人都可以帮助我进行映射以支持上述所有情况,无论是类型 text
还是类型 keyword
都可以
您需要 custom analyzer 以满足您所有需求的格式对输入 string
进行标记。
ngram tokenizer, lowercase token filter, and Mapping charfilter 是您在自定义分析器中需要的几个构建块。
用于匹配查询的映射是什么以实现以下提到的情况
- 不区分大小写的搜索
- 号码搜索
- 特殊字符搜索
- 单字符搜索
我尝试使用通配符,但 id 不支持区分大小写
尝试使用小写标准化器匹配查询它不支持特殊字符和单个字符搜索
尝试使用 ngram 进行匹配查询,但它不支持特殊字符和数字搜索。
PUT index_v14
{
"settings": {
"analysis": {
"analyzer": {
"skm_analyzer": {
"tokenizer": "skm_tokenizer"
}
},
"tokenizer": {
"skm_tokenizer": {
"type": "ngram",
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol",
"custom",
]
"custom_token_chars": "/@[]-"
}
}
}
},
"mappings": {
"title" : {
"type" : "text",
"analyzer" : "skm_analyzer",
"search_analyzer" : "autocomplete_search"
},
}
GET index_v14/_search
{
"query": {
"match": {
"title":{
"query":"[watch]: hello/stars",
"operator":"and"
}
}
}
}
任何人都可以帮助我进行映射以支持上述所有情况,无论是类型 text
还是类型 keyword
都可以
您需要 custom analyzer 以满足您所有需求的格式对输入 string
进行标记。
ngram tokenizer, lowercase token filter, and Mapping charfilter 是您在自定义分析器中需要的几个构建块。