输入 AviationTechnology  怎么匹配到 Aviation Technology 这个的,无法理解,但是看有的系统能做到,有大佬答疑解惑吗
举报· 162 次点击
登录 注册 站外分享
6 条回复  
MoYi123 小成 2024-8-20 15:49:56
是 levenshtein distance 吧, 大概.
Jinnrry 小成 2024-8-20 15:53:57
自定义一个分词器,然后按字分词就行了。比如这样,查询的时候不同分词器给不同的得分权重

{
    "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": ""
                }
            }
        }
    }
}
nice2cu 初学 2024-8-20 15:56:29
分词了吧
akinoowari 小成 2024-8-20 15:57:01
1.分词的时候用 ngram
2.前缀匹配
NoobNoob030 小成 2024-8-20 15:57:26
分词实现,输入 AviationTechnology ,分词成 Aviation 和 Technology 两个 token ,然后作为索引去查询
weofuh 小成 2024-8-20 16:25:10
看新版 8.x 文档有支持类似驼峰分词
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-graph-tokenfilter.html

默认是的标准分词器是按空格、点这些进行分词

另外,好像搜索和构建索引可以使用不同的分词器和过滤器
返回顶部