【问题标题】:How to search by part of a synonym如何按同义词的一部分进行搜索
【发布时间】:2020-11-06 12:36:20
【问题描述】:

我有 products 映射索引

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook => laptop"
    ]
}

我想通过查询“lapt*”或“netb*”来搜索我的产品

【问题讨论】:

  • 您可以查看prefix查询
  • @Val,谢谢,但问题不是如何按前缀搜索以及如何按同义词的一部分进行搜索
  • 在您的示例中,您举例说明了前缀搜索,而不是中缀搜索,这就是我建议前缀查询的原因
  • @VadimSelyakov 很长时间以来您都没有对我的答案投赞成票,如果您的问题得到解决,如果您能接受并投赞成票,那就太好了

标签: elasticsearch elasticsearch-7


【解决方案1】:

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

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook, laptop"
    ]
}

使用=>netbook 替换为laptop,因此只有后者被索引。使用逗号,将同时索引netbooklaptop,并允许您搜索带有netb*lapt* 的前缀

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多