SpringChang

ES 如何让中文词条排序靠前?

  •  
  •   SpringChang · Sep 16, 2022 · 9590 views
    This topic created in 1510 days ago, the information mentioned may be changed or developed.
    需求描述:
    我的 ES 某个索引中,有个 text 字段,支持 keyword 检索,包且仅包含中、英文,现在我的需求是让纯中文的内容检索出来的时候排序靠前,请问如何实现?

    栗子:
    name age sex
    张三 20 男
    李四 21 男
    alice 20 女
    bob 22 男
    张翠山 18 女
    julia 19 女

    要求:
    让张三,李四,张翠山靠前,alice, bob, julia 靠后。
    7 replies  •  2022-09-16 16:14:39 +08:00
    cweijan
    cweijan
    Sep 16, 2022❤️1
    1
    我想到的一种方式是使用 rank-feature, 这是记录一个数字, 数字越高排名越前

    https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-rank-feature-query.html
    deltadawn
    deltadawn
    Sep 16, 2022❤️1
    2
    "sort": {
    "name.keyword": "desc"
    }
    SpringChang
    SpringChang
    OP
    Sep 16, 2022
    3
    @cweijan 我瞧瞧!
    SpringChang
    SpringChang
    OP
    Sep 16, 2022
    4
    @deltadawn 直接根据这个字段排序貌似也可以,但是有个问题,有些垃圾数据,比如符号字符或者乱码之类的也排序进来了。
    gy123
    gy123
    Sep 16, 2022
    5
    第一步肯定是先分词查出按照优先级排序的结果集;
    然后取到本地后,将结果集判断中文和英文分别插入到两个集合,然后最后集合合并一起;

    不知道行不行~
    cnoder
    cnoder
    Sep 16, 2022
    6
    中文评分高一点
    SpringChang
    SpringChang
    OP
    Sep 16, 2022
    7
    @cnoder 怎么让中文评分高一些?老铁!可以详细说说么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3078 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:59 · PVG 12:59 · LAX 20:59 · JFK 23:59
    ♥ Do have faith in what you're doing.