• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Weixiao0725
V2EX  ›  程序员

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

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

    如果是整篇文章的部分内容(精确、少量词汇),ES 比较适合。长句子没有什么特别好的办法,即使语义查找,也有句子长度的限制。
    dusu
    dusu
    Oct 13, 2022 via iPhone
    21
    试试 manticoresearch 有惊喜
    @qingshuang
    leegradyllljjjj
    leegradyllljjjj
    Oct 13, 2022❤️1
    22
    select * from table1 where cloumn1 like '%v 我 50%'
    yjhatfdu2
    yjhatfdu2
    Oct 13, 2022
    23
    @qingshuang postgreSQL ,使用 pg_bigm 索引插件+like
    Jooooooooo
    Jooooooooo
    Oct 13, 2022
    24
    相比起来, es 会好一些.
    Weixiao0725
    Weixiao0725
    OP
    Oct 22, 2022
    26
    @dusu 这个好像真的很不错,试了下他的中文分词,挺好用的。
    dusu
    dusu
    Oct 22, 2022 via iPhone
    27
    开箱即用
    自定义词库的话
    自己编 icudt 文件就行了
    @Weixiao0725
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1841 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 11:02 · PVG 19:02 · LAX 03:02 · JFK 06:02
    ♥ Do have faith in what you're doing.