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

现在的模糊查询大家都使用什么解决方案?

  •  
  •   Weixiao0725 · 240 天前 · 4572 次点击
    这是一个创建于 240 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设我有很多文本,给定一段模糊的关键字,查询文本所在的文章和上下文,请问目前有什么合适的查询和存储方案吗?目前已知比较成熟的是基于 elastic search ?
    27 条回复    2022-10-22 10:12:11 +08:00
    zzzzzzzzzy
        1
    zzzzzzzzzy  
       240 天前
    看你数据量,你用 redis 也能做
    XCFOX
        2
    XCFOX  
       240 天前
    Weixiao0725
        3
    Weixiao0725  
    OP
       240 天前 via iPhone
    @XCFOX 请问这个支持中文查询吗?
    Weixiao0725
        4
    Weixiao0725  
    OP
       240 天前 via iPhone
    @zzzzzzzzzy 数据量大概不到 100G 的文本
    demoshengxw
        5
    demoshengxw  
       240 天前 via iPhone
    方便还是还是 es ,做好分词直接查就好了
    hyqCrystal
        6
    hyqCrystal  
       240 天前
    数据量不多的话 mysql 好像也支持了。多的话 上 es 吧
    jiangbo212
        7
    jiangbo212  
       240 天前
    最近在研究 meilisearch, 你这个数据量感觉在它的查询临界点,可能查询速度相比于官网的会慢点。官网显示是支持中文查询的,相比于 es ,易用性强一点
    limbo0
        8
    limbo0  
       240 天前
    生产可以用 es, 玩玩可以用 meilisearch
    dddd1919
        9
    dddd1919  
       240 天前
    elastcisearch
    apache solr ,文本搜索不错
    lmshl
        10
    lmshl  
       240 天前
    需要相关性和 rank 就走 ES ,不需要的话 PostgreSQL 等数据库内置的全文检索也能做
    lmshl
        11
    lmshl  
       240 天前
    全文检索引擎几乎是不区分语言的,你需要一款分词器,写入的时候提前分好词向量(一般会带有 for index 选项),查询的时候也是(一般会带有 for search 选项)。然后俩词向量去 match
    xuelu520
        12
    xuelu520  
       240 天前
    分词+es ,基本满足你的需求
    killva4624
        13
    killva4624  
       240 天前
    不考虑成本的情况下 ES 最快
    samin
        14
    samin  
       240 天前
    @hyqCrystal 请问这个量的定义是 ? 边界值是多少 ? 以及对机器性能综合考虑,如何取舍,有经验之谈否 ?
    dayeye2006199
        15
    dayeye2006199  
       240 天前
    qingshuang
        16
    qingshuang  
       240 天前
    模糊查询真的很烦,用 MYSQL 不走索引,用 ES 的时候因为分词的原因老是查不到被客户投诉。
    例如客户某个商品编码是 CZ101 就老在那问 我搜 Z1 为什么搜不到啊
    这种大家是怎么解决的呢??
    看了下 ES 里的几种解决方案,性能都特别差
    dzdh
        17
    dzdh  
       240 天前
    轻量级搜索建议 zincsearch ,兼容 es 部分语法
    algalia 小规模用费用还是能承受的
    sadfQED2
        19
    sadfQED2  
       240 天前 via Android
    @qingshuang es 直接单字符分词
    winglight2016
        20
    winglight2016  
       240 天前
    要看你的需求是模糊查询,比如“like %xxx%”,还是语义查询,比如“天气怎么样”,还有语言、分词策略,相似度、全文检索的区别。

    如果是整篇文章的部分内容(精确、少量词汇),ES 比较适合。长句子没有什么特别好的办法,即使语义查找,也有句子长度的限制。
    dusu
        21
    dusu  
       240 天前 via iPhone
    试试 manticoresearch 有惊喜
    @qingshuang
    leegradyllljjjj
        22
    leegradyllljjjj  
       240 天前   ❤️ 1
    select * from table1 where cloumn1 like '%v 我 50%'
    yjhatfdu2
        23
    yjhatfdu2  
       240 天前
    @qingshuang postgreSQL ,使用 pg_bigm 索引插件+like
    Jooooooooo
        24
    Jooooooooo  
       240 天前
    相比起来, es 会好一些.
    Weixiao0725
        26
    Weixiao0725  
    OP
       232 天前
    @dusu 这个好像真的很不错,试了下他的中文分词,挺好用的。
    dusu
        27
    dusu  
       231 天前 via iPhone
    开箱即用
    自定义词库的话
    自己编 icudt 文件就行了
    @Weixiao0725
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   948 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 19:02 · PVG 03:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.