elasticsearch - 如何通过同义词进行搜索

标签 elasticsearch elasticsearch-7

我有带映射的products索引

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook => laptop"
    ]
}
我想通过查询“ lapt *”或“ netb *”来搜索我的产品

最佳答案

如果按lapt*进行搜索有效,但不能按netb*进行搜索,则您需要将同义词过滤器更改为此(即用逗号替换=>):

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook, laptop"
    ]
}
使用=>netbook替换为laptop,因此仅索引后者。使用逗号将同时索引netbooklaptop,并允许您同时搜索netb*lapt*的前缀

关于elasticsearch - 如何通过同义词进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62941524/

相关文章:

regex - 如何删除包括多个条件的索引?

elasticsearch - ElasticSearch具有多个查询参数的多重匹配

java - 如何获取使用 Java API 客户端 (7.16) 构建的 ElasticSearch 查询/请求的 json 表示形式?

elasticsearch - Elasticsearch升级拥有大量数据

elasticsearch - Elasticsearch部分查询

elasticsearch - LogStash::ConfigurationError:com.mysql.jdbc.Driver未加载

mysql - 将数据从 MySQL 传输到 Elasticsearch

elasticsearch - 尝试创建带有映射的索引时获取llegal_argument_exception

java - QueryString 用冒号搜索字符串

elasticsearch - 如何将simplequerystring与bool/must结合