有没有精通 es 搜索的,可付费咨询 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
findlisa
V2EX    Elasticsearch

有没有精通 es 搜索的,可付费咨询

< href="Javascript:" Onclick="upVoteTopic(1033603);" class="vote">
  •  1  
  •   findlisa 2024-04-18 14:44:41 +08:00 via iPhone 4948 次点击
    这是一个创建于 539 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大概需求就是根据输入关键字,查询到数据后 返回相似度 区间在 0-1 区间。1 表示完全匹配,不太匹配的就降相似度
    25 条回复    2024-06-06 20:48:53 +08:00
    skyemin
        1
    skyemin  
       2024-04-18 14:54:21 +08:00
    es 本身不是就有相关度 score 吗
    soundlife
        2
    soundlife  
       2024-04-18 14:56:41 +08:00
    100 块,谢谢
    findlisa
        3
    findlisa  
    OP
       2024-04-18 15:04:57 +08:00 via iPhone
    @soundlife 张小龙 d2VpamcyNzIy
    findlisa
        4
    findlisa  
    OP
       2024-04-18 15:05:46 +08:00 via iPhone
    @skyemin 返回那个_score 是 0 到正无穷 而且也无法判断是不是完全匹配
    fkdog
        5
    fkdog  
       2024-04-18 15:06:05 +08:00
    给你个思路,用向量搜索。
    然后你需要一套算法把文本向量化。
    tarasha
        6
    tarasha  
       2024-04-18 15:11:49 +08:00   1
    可以试试 bge-m3 ,可以将文本转换为密集向量和稀疏向量()。
    然后密集向量在 es 中存储为 Dense_Vector ,稀疏向量用 Rank_Features 。
    最后 KnnQuery + RankFeatureQuery 混合检索,效果很好。
    findlisa/td>
        7
    findlisa  
    OP
       2024-04-18 15:27:40 +08:00 via iPhone
    @fkdog 向量了解过,需要将文本转向量,挺麻烦的
    ming159
        8
    ming159  
       2024-04-18 15:31:09 +08:00
    ES 支持的搜索功能非常丰富. 但总的分为 2 类 query 与 filter
    query 是类似模糊匹配,也就是会有一个 _score .分值越高,说明匹配度越高.
    filter:是严格匹配. 匹配到数据时,得到的 结果只有 yes/no. 所以只要匹配到 一定是符合过滤条件的.
    你的需求应该是这样处理:
    1. 构造一个查询条件,同时使用 filter 和 query. 对同一个关键词进行查询. 在拿到结果后,再做处理.
    2. 分两次查询,先用 filter 查询,如果没有结果再用 query 查询一次.
    codegenerator
        10
    codegenerator  
       2024-04-18 15:39:35 +08:00
    出价多少?
    视价格资深架构师可以应战
    akinoowari
        11
    akinoowari  
       2024-04-18 19:35:22 +08:00
    @findlisa 第一次查询 filter 用 term 匹配一下字段.keyword ,然后加上 macth 查询,得到完全匹配的最高得分,第二次查询的时候计算一下就好,如果第一次没有拿到结果,说明没有完全匹配的,用 cosinesimilarity+1/2.x 得到最终相似度,x 的值看着给,反正不会得到 1 的结果就行
    strawberryBug
        12
    strawberryBug  
       2024-04-18 19:49:51 +08:00 via Android
    给你个关键词 gauss decay function ,可以自定义 score
    findlisa
        13
    findlisa  
    OP
       2024-04-19 07:42:59 +08:00 via iPhone
    @akinoowari 妙,感谢大佬这是个思路
    findlisa
    &nbs;   14
    findlisa  
    OP
       2024-04-19 07:43:10 +08:00 via iPhone
    @strawberryBug ok 谢谢我去看看
    lemon1997
        15
    lemon1997  
       2024-04-19 11:54:41 +08:00
    我做过一个简陋的,需要对文本分词,然后匹配命中数量,不过需要去掉一些无意义的词
    findlisa
        16
    findlisa  
    OP
       2024-04-19 13:32:55 +08:00 via iPhone
    @lemon1997 能简单说下思路吗? 用关键字查询然后取分数最大的那一条做 文本相似度对比,然后拿来做分母吗
    findlisa
        17
    findlisa  
    OP
       2024-04-19 13:46:38 +08:00 via iPhone
    @akinoowari 大佬,有点疑惑,第一次查询加上 match 的话应该都是会有数据的,如果第一次没数据,第二次应该也查不到数据
    akinoowari
        18
    akinoowari  
       2024-04-21 20:53:34 +08:00
    @findlisa 是拿不到呀,所以是 2.x ,x>0 ,等于 0 的话就会有 1 的结果
    findlisa
        19
    findlisa  
    OP
       2024-04-22 08:20:42 +08:00 via iPhone
    @akinoowari 那这样我第一次直接用 match 匹配,然后 返回的第一条拿到 highlight 字段后,拿来用 cosinsimilarity 和查询关键字比较,等于 1 就是完全匹配,第二次直接拿 score 做分母,小于 1 就用这个值算出相应的 maxscore= 0.x/_socre
    findlisa
        20
    findlisa  
    OP
       2024-04-22 08:38:02 +08:00 via iPhone
    @codegenerator 可以加我聊详谈 d2VpamcyNzIy
    codegenerator
        21
    codegenerator  
       2024-04-22 13:56:29 +08:00
    @findlisa 微信查不到,你这个什么帐号?
    findlisa
        22
    findlisa  
    OP
       2024-04-22 17:08:53 +08:00 via iPhone
    @codegenerator 转下 base64
    teiboku1
        23
    teiboku1  
       2024-06-01 15:54:29 +08:00
    你可以用语义搜索然后把分数自己归一化一下
    findlisa
        24
    findlisa  
    OP
       2024-06-05 10:39:10 +08:00 via iPhone
    @teiboku1 先查一下 max 分数和 min 分数吗
    teiboku1
        25
    teiboku1  
       2024-06-06 20:48:53 +08:00
    @findlisa 是的啊 你百度一下归一化 然后 max 和 0 区间归一化就行 但是语义搜索的话, 可能 1 代表完全匹配这个也可以你自己设定一个阈值 多少分算是 1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     868 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 20:28 PVG 04:28 LAX 13:28 JFK 16:28
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86