分享“笑来搜”,以及如何快速实现一个中文搜索功能( 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 可能很快让你玩起来。

7281 次点击
所在节点    分享发现
25 条回复
ahkxhyl
2017-06-26 13:38:15 +08:00
@lijinma 我先执行了 php artisan scout:flush App\Post 再执行了 php artisan scout:import App\Post。。终止没有高亮~
ahkxhyl
2017-06-26 13:59:55 +08:00
@lijinma 情况我发到您的 Issue 了。麻烦看下哦~
lijinma
2017-06-28 05:52:23 +08:00
@ahkxhyl 使用的我的 demo 还是自己走的教程?
ahkxhyl
2017-06-28 09:06:44 +08:00
@lijinma 直接下的 demo
lovedeeply
2017-10-30 00:48:00 +08:00
mark

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

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

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

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

© 2021 V2EX