Open vvip2u opened 1 year ago
/### 临时方案1
需要写一个搜索针对名字的搜索功能 名字假如是:刘德华 可以根据以下其中之一进行搜索:刘德华,liu,de,hua,刘,德,华 P.S. 只支持搜索,暂时不支持高亮
PUT /test_index
{
"settings": {
"analysis": {
"analyzer": {
"chinese_analyzer": {
"tokenizer": "chinese_chars_tokenizer"
},
"pinyin_analyzer": {
"tokenizer": "pinyin_tokenizer"
}
},
"tokenizer": {
"chinese_chars_tokenizer": {
"type": "pinyin",
"keep_first_letter": false,
"keep_separate_first_letter": false,
"keep_full_pinyin": false,
"keep_original": false,
"limit_first_letter_length": 50,
"keep_separate_chinese": true,
"lowercase": true
},
"pinyin_tokenizer": {
"type": "pinyin",
"keep_first_letter": false,
"keep_separate_first_letter": false,
"keep_full_pinyin": true,
"keep_original": false,
"limit_first_letter_length": 50,
"keep_separate_chinese": true,
"lowercase": true
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"search_analyzer": "chinese_analyzer",
"analyzer": "pinyin_analyzer"
}
}
}
}
PUT test_index/_doc/1 { "name": "刘德华" }
GET /test_index/_doc/_search
{
"query": {
"match_phrase": {
"name": "刘"
}
}
}
GET /test_index/_doc/_search
{
"query": {
"match_phrase": {
"name": "liu"
}
}
}
GET /test_index/_doc/_search
{
"query": {
"match_phrase": {
"name": "刘德华"
}
}
}
大佬, 这个文章是不是你写的? es 修改拼音分词器源码实现汉字/拼音/简拼混合搜索时同音字不匹配
问题描述
记录中有刘德华,不想搜【柳】的时候,出现刘德华被命中的情况
Action