1
MoYi123 86 天前
是 levenshtein distance 吧, 大概.
|
2
Jinnrry 86 天前
自定义一个分词器,然后按字分词就行了。比如这样,查询的时候不同分词器给不同的得分权重
{ "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": "" } } } } } |
3
nice2cu 86 天前
分词了吧
|
4
akinoowari 86 天前
1.分词的时候用 ngram
2.前缀匹配 |
5
NoobNoob030 86 天前
分词实现,输入 AviationTechnology ,分词成 Aviation 和 Technology 两个 token ,然后作为索引去查询
|
6
weofuh 86 天前
看新版 8.x 文档有支持类似驼峰分词
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-graph-tokenfilter.html 默认是的标准分词器是按空格、点这些进行分词 另外,好像搜索和构建索引可以使用不同的分词器和过滤器 |
10
weofuh 86 天前
如果全小写、中文都能匹配,我能想到的实现方案也就是只有 4 楼的了,用 edge_ngram 分词 和 match_phrase_prefix 前缀匹配查询,只是性能可能不太好,哈哈哈
|
11
Latin 86 天前
短语匹配+slop
|