V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
annielong
V2EX  ›  Elasticsearch

es 分词后能控制分词的权重值吗?

  •  
  •   annielong · 2020-12-07 16:50:13 +08:00 · 2738 次点击
    这是一个创建于 1207 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如查询“办理会员卡”,会分成“办理”、“会员卡”两个分词进行查询,“办理”可能会查询到“办理退货”,有没有什么方法可以优先查询“会员卡”这个分词。目前想到的方案是程序加关键字,先根据查询内容在 es 里面分词,然后拿分词在程序中进行关键字匹配,然后拿关键字去查询。
    3 条回复    2020-12-08 07:42:28 +08:00
    TimePPT
        1
    TimePPT  
       2020-12-07 16:57:44 +08:00   ❤️ 1
    zsl199512101234
        2
    zsl199512101234  
       2020-12-07 17:11:52 +08:00   ❤️ 1
    用不着的感觉,排序的时候词间距和连续性设置下加权就可以把办理... 会员卡...这种排到前面去了
    wukangave
        3
    wukangave  
       2020-12-08 07:42:28 +08:00   ❤️ 1
    可以给文档加关键字和权重,查询的时候给文档打高分。比如建立索引的时候加如下 fields:
    "keywords": {"type": "nested", "properties":{"keywords": "keyword", "weight": "long"}}
    查询的时候用 function score query 给文档打分:
    "function_score": {"functions": [{"field": "keywords.weight"}], "query":{"match": {"keywords.keywords": "会员卡"}}}
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   970 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.