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

分享“笑来搜”,以及如何快速实现一个中文搜索功能( Laravel Scout + ElasticSearch + ik 分词 )

  •  3
     
  •   lijinma · 2017-03-07 09:31:52 +08:00 · 7274 次点击
    这是一个创建于 2817 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我做了一个网站,名字叫“笑来搜”,主要的功能使可以搜索李笑来老师的作品,包括:

    • 学习学习再学习公众号所有文章
    • 知笔墨所有书籍,比如《把时间当做朋友》等
    • lixiaolai.com 博客中的所有文章

    喜欢李笑来老师的可以看看,不喜欢的请忽略看下面的内容。


    “笑来搜” 的原型我开源了:

    https://github.com/lijinma/laravel-scout-elastic-demo

    欢迎 Star ,如果你跑这个 demo 中有任何问题,请提 Issue , 24 小时内回复。

    这个开源项目我会做到两点:

    1. 尽可能写清楚安装中的每一个步骤,我假设你是一名新手。
    2. 这个 Demo 直接跑在了我的服务器上,你可以直观的玩起来。 http://scout.lijinma.com/search

    技术栈解释:

    1. Laravel Scout: Laravel 框架里面一个组件,可以轻松把 model 和 ElasticSearch 中的 type 绑定在一起, model 的变化会自动同步到 ElasticSearch 中,方便执行搜索。
    2. ElasticSearch: 开源搜索框架。
    3. ik 分词: 比较简单好用的中文分词。

    如果想看看代码原理,请请查看三篇文章:

    一:写一个搜索:使用 Laravel Scout , Elasticsearch , ik 分词

    二:写一个搜索:解决搜索结果高亮问题,使用 Laravel Scout , Elasticsearch , ik 分词

    三:写一个搜索:自定义词库;使用 Laravel Scout , Elasticsearch , ik 分词

    如果你恰巧使用 php ,又想实现一个搜索玩玩,这个 Demo 可能很快让你玩起来。

    25 条回复    2017-10-30 00:48:00 +08:00
    lijinma
        1
    lijinma  
    OP
       2017-03-07 09:58:25 +08:00
    看来没人有这个需求 0.0
    wpby
        2
    wpby  
       2017-03-07 10:24:29 +08:00
    千军万马来相见, laravel-china 大军来报道
    PaulKing
        3
    PaulKing  
       2017-03-07 10:25:44 +08:00
    千军万马来相见, laravel-china 大军来报道
    trimleo
        4
    trimleo  
       2017-03-07 10:30:51 +08:00
    千军万马来相见, laravel-china 大军来报道
    lijinma
        5
    lijinma  
    OP
       2017-03-07 12:54:01 +08:00
    @wpby
    @PaulKing
    @trimleo

    多谢。
    xiaowangge
        6
    xiaowangge  
       2017-03-07 14:23:32 +08:00
    /t/146942 blog 时代的博客,是否也可以搜索一下?
    goldenlove
        7
    goldenlove  
       2017-03-07 15:51:30 +08:00
    @李笑来 老师他本人知道吗?
    lijinma
        8
    lijinma  
    OP
       2017-03-07 18:11:34 +08:00
    @xiaowangge 太赞了,我把那些数据抓一下吧,谢谢提供,哈哈哈哈
    lijinma
        9
    lijinma  
    OP
       2017-03-07 18:11:49 +08:00
    @goldenlove 嗯哪,知道,他给予了鼓励。。
    razrlele
        10
    razrlele  
       2017-03-07 18:37:20 +08:00
    lijinma
        11
    lijinma  
    OP
       2017-03-07 20:52:04 +08:00
    @razrlele 厉害,直接就给我干倒了。。我解决一下。
    gaodeng
        12
    gaodeng  
       2017-03-08 08:16:09 +08:00 via iPhone
    厉害。
    lijinma
        13
    lijinma  
    OP
       2017-03-08 09:33:44 +08:00
    @xiaowangge 你有 /t/146942 里面的提到的数据吗?
    xiaowangge
        14
    xiaowangge  
       2017-03-08 09:50:33 +08:00
    @lijinma #13 链接: http://pan.baidu.com/s/1kUAOHfh 密码: 9p2i
    lijinma
        15
    lijinma  
    OP
       2017-03-08 10:20:21 +08:00
    @xiaowangge 感谢啊,要不然我需要再爬。
    pengbo37877
        16
    pengbo37877  
       2017-06-21 16:26:25 +08:00
    楼主这个配好数据是自动同步的吗?
    pengbo37877
        17
    pengbo37877  
       2017-06-21 16:47:22 +08:00
    楼主按你的教程搞起来,es 中的数据一直是空的怎么说?
    pengbo37877
        18
    pengbo37877  
       2017-06-21 17:10:36 +08:00
    还有如何实现增量更新呢
    ahkxhyl
        19
    ahkxhyl  
       2017-06-26 11:49:49 +08:00
    @pengbo37877 你按 lijinma 的教程搞出来 能高亮吗?为什么我搜出来的数据没有高亮 而且感觉是从数据库取出来的~
    lijinma
        20
    lijinma  
    OP
       2017-06-26 12:17:35 +08:00
    @ahkxhyl 可以的。。你再试试 flush 一下看看?
    ahkxhyl
        21
    ahkxhyl  
       2017-06-26 13:38:15 +08:00
    @lijinma 我先执行了 php artisan scout:flush App\Post 再执行了 php artisan scout:import App\Post。。终止没有高亮~
    ahkxhyl
        22
    ahkxhyl  
       2017-06-26 13:59:55 +08:00
    @lijinma 情况我发到您的 Issue 了。麻烦看下哦~
    lijinma
        23
    lijinma  
    OP
       2017-06-28 05:52:23 +08:00
    @ahkxhyl 使用的我的 demo 还是自己走的教程?
    ahkxhyl
        24
    ahkxhyl  
       2017-06-28 09:06:44 +08:00
    @lijinma 直接下的 demo
    lovedeeply
        25
    lovedeeply  
       2017-10-30 00:48:00 +08:00
    mark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:39 · PVG 08:39 · LAX 16:39 · JFK 19:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.