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

2017-03-07 09:31:52 +08:00
 lijinma

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

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


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

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 可能很快让你玩起来。

7273 次点击
所在节点    分享发现
25 条回复
lijinma
2017-03-07 09:58:25 +08:00
看来没人有这个需求 0.0
wpby
2017-03-07 10:24:29 +08:00
千军万马来相见, laravel-china 大军来报道
PaulKing
2017-03-07 10:25:44 +08:00
千军万马来相见, laravel-china 大军来报道
trimleo
2017-03-07 10:30:51 +08:00
千军万马来相见, laravel-china 大军来报道
lijinma
2017-03-07 12:54:01 +08:00
@wpby
@PaulKing
@trimleo

多谢。
xiaowangge
2017-03-07 14:23:32 +08:00
/t/146942 blog 时代的博客,是否也可以搜索一下?
goldenlove
2017-03-07 15:51:30 +08:00
@李笑来 老师他本人知道吗?
lijinma
2017-03-07 18:11:34 +08:00
@xiaowangge 太赞了,我把那些数据抓一下吧,谢谢提供,哈哈哈哈
lijinma
2017-03-07 18:11:49 +08:00
@goldenlove 嗯哪,知道,他给予了鼓励。。
razrlele
2017-03-07 18:37:20 +08:00
lijinma
2017-03-07 20:52:04 +08:00
@razrlele 厉害,直接就给我干倒了。。我解决一下。
gaodeng
2017-03-08 08:16:09 +08:00
厉害。
lijinma
2017-03-08 09:33:44 +08:00
@xiaowangge 你有 /t/146942 里面的提到的数据吗?
xiaowangge
2017-03-08 09:50:33 +08:00
@lijinma #13 链接: http://pan.baidu.com/s/1kUAOHfh 密码: 9p2i
lijinma
2017-03-08 10:20:21 +08:00
@xiaowangge 感谢啊,要不然我需要再爬。
pengbo37877
2017-06-21 16:26:25 +08:00
楼主这个配好数据是自动同步的吗?
pengbo37877
2017-06-21 16:47:22 +08:00
楼主按你的教程搞起来,es 中的数据一直是空的怎么说?
pengbo37877
2017-06-21 17:10:36 +08:00
还有如何实现增量更新呢
ahkxhyl
2017-06-26 11:49:49 +08:00
@pengbo37877 你按 lijinma 的教程搞出来 能高亮吗?为什么我搜出来的数据没有高亮 而且感觉是从数据库取出来的~
lijinma
2017-06-26 12:17:35 +08:00
@ahkxhyl 可以的。。你再试试 flush 一下看看?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345474

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX