jiobanma
V2EX  ›  Java

Java 系统内做全局搜索功能需要使用什么技术

  •  
  •   jiobanma ·
    banmajio · Jan 30, 2023 · 4657 views
    This topic created in 1378 days ago, the information mentioned may be changed or developed.

    如题,大概类似手机的全局搜索,一个输入框,输入关键词会关联出很多待匹配项。需求是在系统内( pc )头部增加一个输入框,可以搜索到系统内的很多数据。不知道有没有描述清楚。像这种功能只有 ES 可以实现吗?

    20 replies  •  2023-01-31 09:07:18 +08:00
    ql562482472
    ql562482472
    Jan 30, 2023
    1
    其实你还可以使用其他支持全文搜索的工具:升级你的 mysql 、用 pg 之类的
    同时这种搜索必然有搜索内容、时效上有权衡和优化,作为应用开发者 这不是你跟产品需要考虑的东西么
    JarlZhang
    JarlZhang
    Jan 30, 2023
    2
    需求简单的话 solr 就可以支持
    Wien
    Wien
    Jan 30, 2023
    3
    复杂搜索还是建议无脑上 es
    zhuangzhuang1988
    zhuangzhuang1988
    Jan 30, 2023
    4
    lucene 啊, 直接几个 Jar 就好了
    zhanggg
    zhanggg
    Jan 30, 2023
    5
    看体量和命中率
    量少把相关数据写 sqllite like 都能做
    kingofzihua
    kingofzihua
    Jan 30, 2023
    6
    如果你数据量不大,可以找个第三方对接,比如[algolia]( https://www.algolia.com/)
    xiangxiangxiang
    xiangxiangxiang
    Jan 30, 2023
    7
    应该也可以自研吧,没搞过

    google 一下 设计一个搜索自动补全系统 ?
    realrojeralone
    realrojeralone
    Jan 30, 2023
    8
    手机上的全局搜索是本地和服务端混合搜索,本地只搜索本机内容,远程是一套完整的搜索引擎,只做过远程的搜索,没做过本地的,应该也是一套索引之类的东西,只不过量比较小
    zhuangzhuang1988
    zhuangzhuang1988
    Jan 30, 2023
    9
    或者看下这个<JetBrainsTV>的 live code
    用 kotlin 做一个搜索。
    linvaux
    linvaux
    Jan 30, 2023
    11
    上 ES 吧,一劳永逸,lucene 有点太底层了,而且索引也不方便管理
    cco
    cco
    Jan 30, 2023
    12
    虽然 solr 也可以,但 ES 相对于 solr 更好用一点。
    jiobanma
    jiobanma
    OP
    Jan 30, 2023
    13
    @linvaux
    @cco 谢谢啦 我研究一下
    rockddd
    rockddd
    Jan 30, 2023
    14
    ES 方便
    honamx
    honamx
    Jan 30, 2023
    15
    数据量不大就数据库 like 一把梭,不过迟早要改,早上 ES 早幸福
    ediron
    ediron
    Jan 30, 2023
    16
    可以用 ES 的即时搜索
    ```
    POST index_name/_search
    {
    "query": {
    "match_phrase_prefix": {
    "name": "J"
    }
    }
    }
    ```
    matrix1010
    matrix1010
    Jan 30, 2023
    17
    不复杂的情况下 pg 的 pg_trgm, mysql 的 ngram parser 都能处理。在语言层面实现 ngram 分词然后存到数据库里也没问题。复杂情况, 比如有很复杂的排序规则可能就只能 ES 了
    limbo0
    limbo0
    Jan 30, 2023
    18
    看标题没看懂,是单机搜索还是 web 端服务?
    buliugu
    buliugu
    Jan 30, 2023
    19
    老实上 ES ,去年做了类似的全局搜索,最后需求各种变化,es 都能去实现。。。换一个别的,功能支持未必有它全
    jiobanma
    jiobanma
    OP
    Jan 31, 2023
    20
    @wxw752
    @honamx
    @ediron
    @matrix1010
    @limbo0 web 端的服务
    @buliugu
    感谢大家!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1794 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
    ♥ Do have faith in what you're doing.