上线了一个 V2EX 的站内搜索工具

2017-09-24 15:21:14 +08:00
 mornlight
V 站上各种不同想法不同类型的人因为非利益因素汇聚到一个地方是蛮有意思的一件事,这里有价值的信息还是挺多的。想要寻找沉淀下来的信息就需要搜索,Google 的搜索其实能满足基本要求,但无法进行个性化的打分,也不是所有人都可以随时流畅访问,所以萌生了自己做站内搜索的想法。

其实这个话题之前被讨论过很多次了,而且在三年前曾出现过一个自制的搜索: /t/131547,只是这个站没有维护下去。这次我重新把这个想法捡起来,也作为个人学习 Elasticsearch 的练手作品,尽力提高完成度。

主要的精力花在了摸索 Elasticsearch 的使用上,试图做到精确度、易用性和性能消耗上的平衡。
我不太会做 Web 前端,所以页面是直接拿 @dbbbit 那个老项目的模板改过来的,临时拼凑了一下,还需要改进(看我期待的小眼神 )。

作为搜索入口的 Flask 项目就一点点代码非常简单,放在 GitHub: https://github.com/Bynil/sov2ex

大致的评分逻辑是:
1. 对搜索词的匹配权重 标题 > 内容=附言 > 回复;
2. 能将搜索词短语匹配(精确匹配)到的主题会大幅加分,以保证排序靠前;
3. 主题的收藏数和感谢数会小幅加分;
4. 沙盒结点( /go/sandbox ) 和 请不要再发这样的文章结点( /go/ohno )下的主题会略微减分。

欢迎各位使用并反馈意见: https://www.sov2ex.com

只要没有遇到阻力或出现更好的替代品,这个项目会长期维护下去。

repo 里有索引的 mapping 结构和搜索请求体,作为新手对 Elasticsearch 的调教还有欠缺,欢迎有经验的朋友提出改进意见。
同时,repo 里也包含了搜索 API 的文档,目前没有关键字以外的参数,如果大家对于搜索入口有定制需求,可以回复这个主题或者提 issue 或者直接 PR,只要不破坏社区的规则就可以(比如按主题作者搜索的功能)。
14279 次点击
所在节点    分享创造
42 条回复
miao
2017-09-24 15:24:51 +08:00
利用 V2EX 的 api ?
BearD01001
2017-09-24 15:27:54 +08:00
难道不应该直接 site:v2ex.com xxxxx 来搜索吗?
mornlight
2017-09-24 15:28:19 +08:00
@miao #1 爬虫会从 API 拿数据,爬虫的代码还没有整理好。
mornlight
2017-09-24 15:47:20 +08:00
@BearD01001 #2 搜索引擎给的过滤条件和排序方式是通用的,不能定制。
flaneurse
2017-09-24 15:54:13 +08:00
其实希望能有按时间排序的搜索结果
mornlight
2017-09-24 16:02:55 +08:00
@flaneurse #5 可以有,site:v2ex.com/t 其实也能做时间排序。如果把时间作为唯一的排序依据,那么你希望关键词按什么样的模式来命中主题呢?
jamfer
2017-09-24 16:08:41 +08:00
@mornlight 同样需要时间排序
tszyh
2017-09-24 16:13:08 +08:00
我确实需要 1 个站内搜索
google 的搜索需要设置 55 不方便
site 的方式确实可以当作临时方案,但是没有被索引到的搜索不到
Marfal
2017-09-24 16:40:45 +08:00
其实 V2EX 可以上 algolia @Livid
lhx2008
2017-09-24 17:00:35 +08:00
挺好挺好
scriptB0y
2017-09-24 19:33:19 +08:00
搜“女朋友”,发现这些话题很有趣
mornlight
2017-09-25 00:09:58 +08:00
@scriptB0y 我没有搜过这种我没有的东西🌝
q33q33
2017-09-25 06:47:09 +08:00
很好
abmin521
2017-09-25 10:05:30 +08:00
搜索某$$有结果 但跳转首页 莫非数据库比较早?
misaka20
2017-09-25 11:39:22 +08:00
https://www.v2ex.com/t/377144#reply13 不如用我的 APP,自带 V2EX 站内搜索。赶紧逃走。。。。。。。
mornlight
2017-09-25 12:29:24 +08:00
@abmin521 因为某些节点的主题你的帐号访问不了,这和搜索没关系。
mornlight
2017-09-25 13:09:22 +08:00
@misaka20 #15 要不,咱们 PY 交易一波,把你这个换成我的搜索?
mpich
2017-09-25 13:38:45 +08:00
不错,先 star,不过缺的东西还不少,周末我给你写点别的。。
mornlight
2017-09-25 13:56:43 +08:00
@mpich #18 这是坠吼的
misaka20
2017-09-25 14:49:10 +08:00
@mornlight 我的搜索是默认跟 V2EX 差不多的,看了这帖子的回复,有需求添加时间排序的,感觉这是不错的需求,回去给我的 APP 加上 笑。。。。。

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

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

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

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

© 2021 V2EX