V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acrisliu
V2EX  ›  问与答

准备做一个商城的站内搜索,不知道选什么好,求推荐。

  •  
  •   acrisliu · 2015-12-08 14:45:07 +08:00 via Android · 1920 次点击
    这是一个创建于 3273 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目是一个商城,现在的搜索太过简单,就是去数据库匹配商品名称来查询结果。

    现在的需求是,可以根据商品详情页自动建立词条索引,然后可以通过商品名称、商家名称、商品描述中的字词等等来搜索商品。

    Google 了一圈,发现用 Sphinx 、 Solr 和 Elastic Seaech 做搜索引擎的较多,但是因为三种都未接触过,无法确定哪一种更适合我的需求,以及哪一种能快速上手。

    各位 V 友经历丰富,希望能指点一二,不甚感激。
    第 1 条附言  ·  2015-12-08 16:41:02 +08:00
    感谢大家的推荐,目前准备选择 solr ,看了下官网的 quick start 感觉还不错。
    21 条回复    2015-12-08 18:51:58 +08:00
    kslr
        1
    kslr  
       2015-12-08 14:57:07 +08:00 via Android
    开发背景?数据量?
    acrisliu
        2
    acrisliu  
    OP
       2015-12-08 15:13:38 +08:00 via Android
    @kslr 开发背景的话,项目组的人目前都没有接触搜索引擎方面的技术,老大也是要我先研究研究,然而我也不会呀,只能边学边做。
    数据量目前是很小的,就算几年后也不会太大,上万个商品就已经很不错了。做这个搜索引擎的目的是为了通过除了商品名以外的其他信息来搜索商品信息,不是为了解决性能问题😄
    CharlesL
        3
    CharlesL  
       2015-12-08 15:17:55 +08:00   ❤️ 1
    这几个中只用过 solr ,你这种需求,用 solr 做起来应该挺简单。
    acrisliu
        4
    acrisliu  
    OP
       2015-12-08 15:20:29 +08:00 via Android
    @CharlesL 感谢,简单就好,太复杂的我也啃不动。我先去找找 solr 方面的资料。
    jarlyyn
        5
    jarlyyn  
       2015-12-08 15:21:39 +08:00
    发工单……
    jarlyyn
        6
    jarlyyn  
       2015-12-08 15:21:55 +08:00
    发错……
    xi_lin
        7
    xi_lin  
       2015-12-08 15:22:04 +08:00   ❤️ 1
    ES 也挺好用
    heian0224
        8
    heian0224  
       2015-12-08 15:22:33 +08:00 via Android   ❤️ 1
    slor 完全够了。
    Altman
        9
    Altman  
       2015-12-08 15:40:38 +08:00   ❤️ 1
    ES 吧
    kslr
        10
    kslr  
       2015-12-08 15:47:22 +08:00   ❤️ 1
    @acrisliu 这个开发背景是因为比如 Solr 和 Java 会结合的更好的这样的意思
    acrisliu
        11
    acrisliu  
    OP
       2015-12-08 15:48:33 +08:00 via Android
    @xi_lin @heian0224 @Altman 感谢推荐,大家都推荐 slor 和 es ,不知道哪种做起来简单些,然后建立索引是需要手动导入数据还是能像爬虫一样自动导入呢,谢谢。
    haython
        12
    haython  
       2015-12-08 15:49:15 +08:00
    PostgreSQL 是最好的选择
    acrisliu
        13
    acrisliu  
    OP
       2015-12-08 15:50:01 +08:00 via Android
    @kslr 目前项目就是用 Java 开发的,看来 solr 更合适一些咯
    acrisliu
        14
    acrisliu  
    OP
       2015-12-08 15:50:34 +08:00 via Android
    @haython 我记得这个是关系型数据库来着...😅
    haython
        15
    haython  
       2015-12-08 15:53:43 +08:00   ❤️ 1
    @acrisliu 它的搜索功能非常强,而且因为是关系型数据,还可以做许多搜索引擎做不到的
    kslr
        16
    kslr  
       2015-12-08 15:56:31 +08:00   ❤️ 1
    @acrisliu 配置好连接,以及语句,就是自动的;
    这三种都挺简单的, Sphinx 我现在在用, 2 亿多数据延迟 200 毫秒内,就是感觉搜索语句上不太灵活, Solr 没有用过,因为 Java 的都是内存大户, ES 挺现代的,感觉不错,不过目前已经够用了。


    @haython 为了解决了搜索问题还要换掉数据库,还要培训。
    acrisliu
        17
    acrisliu  
    OP
       2015-12-08 15:59:54 +08:00 via Android
    @haython 但是建立关键词 索引这些怎么实现呢
    evefree2
        18
    evefree2  
       2015-12-08 16:04:29 +08:00
    sphinx 吧,这玩意就挺简单了
    haython
        19
    haython  
       2015-12-08 16:20:00 +08:00   ❤️ 1
    @acrisliu 推荐看一下《七周七数据库》,里边有用 PostgreSQL 实现了一个搜索加推荐的例子
    xi_lin
        20
    xi_lin  
       2015-12-08 18:51:07 +08:00
    @haython PostgreSQL 自带中英文分词能力?能调整 rank score?
    xi_lin
        21
    xi_lin  
       2015-12-08 18:51:58 +08:00
    @acrisliu ES 的话就是设好 mapping 建立 index 插入数据就好,不过要配好分词器
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1312 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 17:47 · PVG 01:47 · LAX 09:47 · JFK 12:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.