|  |      1MoYi123      2024-08-20 15:49:56 +08:00 是 levenshtein distance 吧, 大概. | 
|      2Jinnrry      2024-08-20 15:53:57 +08:00 自定义一个分词器,然后按字分词就行了。比如这样,查询的时候不同分词器给不同的得分权重 { "mappings": { "_doc": { "properties": { "name": { "analyzer": "ik_max_word", "type": "text", "fields": { "pinyin": { "analyzer": "pinyin", "type": "text" }, "char": { "analyzer": "char_analyzer", "type": "text" }, "keyword": { "type": "keyword" } } } } } }, "settings": { "analysis": { "analyzer": { "char_analyzer": { "tokenizer": "char_tokenizer", "filter": [ "lowercase" ] } }, "tokenizer": { "char_tokenizer": { "type": "pattern", "pattern": "" } } } } } | 
|  |      3nice2cu      2024-08-20 15:56:29 +08:00 分词了吧 | 
|  |      4akinoowari      2024-08-20 15:57:01 +08:00 1.分词的时候用 ngram 2.前缀匹配 | 
|  |      5NoobNoob030      2024-08-20 15:57:26 +08:00 分词实现,输入 AviationTechnology ,分词成 Aviation 和 Technology 两个 token ,然后作为索引去查询 | 
|      6weofuh      2024-08-20 16:25:10 +08:00 看新版 8.x 文档有支持类似驼峰分词 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-graph-tokenfilter.html 默认是的标准分词器是按空格、点这些进行分词 另外,好像搜索和构建索引可以使用不同的分词器和过滤器 | 
|      10weofuh      2024-08-20 17:00:45 +08:00 如果全小写、中文都能匹配,我能想到的实现方案也就是只有 4 楼的了,用 edge_ngram 分词 和 match_phrase_prefix 前缀匹配查询,只是性能可能不太好,哈哈哈 | 
|  |      11Latin      2024-08-20 17:09:09 +08:00 短语匹配+slop |