测试 一个自制的 V2EX 搜索

2014-09-03 18:29:12 +08:00
 dbbbit
先贴地址:

http://shixiz.com

用 elasticSearch 作为搜索引擎,数据来自 v2ex 的 api 接口

索引了全部主题和大部分回复(主题目前半小时更新一次,回复还未开始更新)

这几天刚刚加上了中文分词,可用性总算达到了及格线。

自己 YY 了一种简单的`综合排序`方法

log2(回复数)* 搜索引擎的匹配得分 * log2(发帖时间 - 建站时间)

同时还可以根据 `发布时间` `回复数` `匹配分` 对结果排序。

部署在 ec2 上,索引全部数据居然用了两天啊,妈蛋。是分词用的词库太大?

p.s. 回贴最好贴下`搜索关键词`和`结果评价`
感恩 :)
8911 次点击
所在节点    分享创造
48 条回复
momou
2014-09-04 01:27:45 +08:00
Failed to load resource: net::ERR_CONNECTION_RESET http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js
Failed to load resource: net::ERR_CONNECTION_RESET http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap-theme.min.css
Livid
2014-09-04 07:36:52 +08:00
做得非常好。

我比较好奇,目前这个数据量,是跑在一台什么配置的机器上呢?
dbbbit
2014-09-04 07:42:08 +08:00
@Livid
就是 ec2 的免费实例
单核 1Gb ssd
dbbbit
2014-09-04 08:03:40 +08:00
@kokdemo
虽然也有同感,但是能否给几个关键词?
方便我作为判断和调整的依据
不能否认做排序的时候我并不介意经典大长贴出现在前面
但是有时候时间太过久远,比较难取舍,这是个难题诶
也欢迎提供更好的排序方法。
vinsa
2014-09-04 08:05:08 +08:00
相当赞
nsxuan
2014-09-04 08:36:14 +08:00
@dbbbit 如果能开源一下 就再好不过了
dbbbit
2014-09-04 08:40:35 +08:00
@nsxuan 我也是这么想的,会尽快开源。
talentsnail
2014-09-04 09:03:30 +08:00
感谢已发送:)
dudong0726
2014-09-04 09:18:23 +08:00
dota2
谷歌抽风之后,v2的搜索一直是个痛
windedge
2014-09-04 09:28:35 +08:00
v2ex的api限制一个小时只能访问120次, 你爬取数据用了多长时间?
kokdemo
2014-09-04 10:48:59 +08:00
@dbbbit

你现在用的公式是: log2(回复数)* 搜索引擎的匹配得分 * log2(发帖时间 - 建站时间)

分为三个部分,回帖数,匹配得分,存在时间三个部分。

但是考虑到v2上会有一些吵架贴的存在,所以第一部分其实很不稳定。

相对来说,你可以取帖子的收藏数,感谢数为一个依据。

其次是发帖人的资质,比如注册时间,发帖数,回帖数。

当然我不知道你能不能抓到这些数据,仅仅是给一些建议。
dbbbit
2014-09-04 12:38:35 +08:00
@kokdemo

非常好的建议。

现在的方法是基于手上的数据,里面确实没有你的建议里提到的数据类型。
主要我比较懒,我会试试爬取更多的数据。

关于发帖人的资质
曾想过用 pagerank 对用户做 rank。
一个 @ 动作就是一次投票。
得到发帖人的 rank 用来作为排序因素之一,但计算能力不足 作罢。
dbbbit
2014-09-04 12:40:54 +08:00
@windedge

一个小时只能访问120次? 貌似没有发现这个限制
yuankui
2014-09-04 12:55:37 +08:00
问下楼主为什么要用elasticSearch作为搜索引擎
而不是solr/lucene之类的呢?
ven
2014-09-04 14:03:15 +08:00
威武!
xiaowangge
2014-09-04 14:18:47 +08:00
楼主能把搜索栏居中吗?看着难受 = =.

:-)
jaylong
2014-09-04 14:33:48 +08:00
早就不爽自带的google自定义搜索了。楼主加油!
dbbbit
2014-09-04 15:27:08 +08:00
@xiaowangge
具体是哪个搜索栏?
web? 手机?
dbbbit
2014-09-04 15:42:10 +08:00
@yuankui

楼主通常选择东西都是凭感觉 囧
es 和 solr 都是基于lucene,好坏楼主也说不上来
es 是在 logstash + kibana + es 的场景中了解到的
感觉对 restful 接口很容易使用,对用户较友好
还有分布式搜索 听起来很炫(虽然还用不上)
大概就是这样
hzlzh
2014-09-04 17:05:24 +08:00
做得很好,pagerank?这个可以有。

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

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

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

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

© 2021 V2EX