V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nyfok  ›  全部回复第 2 页 / 共 7 页
回复总数  128
1  2  3  4  5  6  7  
2019-07-30 10:32:50 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@dirkl 感谢支持!之前因为随着索引结果集越来越大,所以导致查询速度有所变慢,最近优化了一下查询这一块,提高了速度,所以效果更好了。
2019-07-18 00:59:10 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@orangeChu 不客气啊,祝一次调通
2019-07-17 22:26:52 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@orangeChu 我理解的通讯录数据就是姓名加电话号码,搜索方式就是:电话号码搜索(数字包含关系)、姓名搜索(全拼搜索、汉字或英文字母搜索、拼音首字母搜索)。数据如果只有几千条的话,我觉得不应该慢。
用 lucene 对这个搜索帮助不大,应为姓名和电话号码没有什么好分词的,既然用不到分词,这样 lucene 的搜索效果就体现不出来。当然,你可以使用单字分词,即一个字符作为一个分词,这样也可以,只需要自己按照 lucene 规范写一个分词器即可。
我个人建议,你可以试试看把这些记录全部加载到内存进行检索,速度应该很快,几千条数据应该没问题,这个方案还更简单。如果速度还慢,可以在内存里面写多个 set 集,参照 lucene 的原理。
譬如,张三,张四,张五,张张
=》如下 set 集:
zhang:张三(0),张四(0),张五(0),张张(0|1)
san:张三(1)
si: 张四(1)
wu: 张五(1)
搜索时根据输入首先获得对应的 set 集,对多个 set 集进行交集操作即可获得符合的记录。以上是最简单 demo,具体你可以设计算法,以更加符合自己的需求。
2019-07-17 21:49:10 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
感谢支持!要做到快,主要有以下几点要注意:
1、lucene 索引写完成后,一定要 optimize 一下。
2、lucene 索引不要边写,边查,碎片率高,检索性能会下降。定期将更新的索引 optimize 后,复制到网站用来搜索的 lucene 索引目录下,定期更新索引。
3、最好将 lucene 索引放在 ssd 上,提高查询速度。
4、查询速度慢的时候,关注服务器 cpu,如果 cpu 高,得提高 cpu 核数或者主频。
5、lucene 查询的原理是,先分词,再对各个分词的结果进行交集运算,所以当查询里面有多个常用词(譬如:的 | 你 | 我 | 我们)时,通常会涉及大的 set 集合并,比较影响性能。所以可以根据情况,在 lucene 查询前,自己先分词一下,滤掉一些不必要查询的关键词。具体可以参照停用词逻辑,只不过这儿的停用词不是用来在索引的时候,而是在搜索关键词过滤的时候。
6、lucene 查询适当缩小 maxdoc,目前我写的是 10010,以前设定 100000,有点慢。
7、关注服务器内存,lucene 索引可以用内存做缓存,越大的内存能够确保检索速度。
8、实时对网站和 lucene 预热,可以自己写一个循环 http get url 的程序,枚举各个搜索关键字搜索自己的网站来预热。

如果你的数据量不大,建议用 sql server 的全文索引,比较简单。如果数据量超过 100 万,那就 lucene 或者 elasticsearch 吧。
2019-07-17 15:46:13 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@myforgame 马上就弄
2019-07-17 09:21:55 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@ziyue002 阿里云,限制形实例( cpu 最高 15%),4 个 vcpu,4g 内存,200g ssd。cpu 太弱,要是 cpu 没有限制的那种,性能会好很多,可惜价格又多出不少,暂时还没舍得。
2019-07-17 09:19:56 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@yinqi025 感谢朋友支持,我继续努力!
2019-07-15 23:32:22 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
感谢 brucewuio, wmhx 支持!晚上下班回家看到你们的表扬,那个高兴啊,哈哈,谢谢!
ps,最近用户涨了不少,全是大伙的功劳,谢谢大家~
2019-07-15 00:31:19 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@Hopetree 感谢朋友支持!博客园现在收录的已经差不多了,这几天在切割服务器,切割完成后就可以看到了。另外,接下来准备也收录些简书、知乎,貌似那些站点也有一些。
祝好~!
2019-07-12 13:03:13 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@mqqjqr5566 感谢支持,祝好!
2019-07-12 13:02:51 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@linxiaojialin 感谢支持,祝好!
2019-07-10 11:21:02 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@qw30716 多谢朋友提醒,可否告知具体搜索关键字?
2019-07-10 11:20:28 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
你好,实现原理如下:
1、自己使用微软的 webbrowser 封装一个浏览器,并自定义鼠标右键事件。
2、当点击鼠标右键的时候,可以将右键事件对应的网页节点元素取出,包括节点的完整 html,以及节点的前一节点、后一节点、及父节点信息。
3、基于第 2 步骤获得的节点信息,再 htmlagility 的 document 寻找到对应节点,并获得 xpath。为什么要这么做,因为以后抓取的时候都是用 htmlagility 来解析 html document 和 xpath,这样性能才有保障。如果都 webbrowser 来加载页面,再解析,性能会很低。另外,webbrowser 的 html 都是经过处理过的 html,所以 xpath 和源网页可能会有差异,所以要将 webbrowser 的 node 信息转换为 htmlagility 的 node 信息。
4、日后抓取中,使用第 3 步的 xpath 信息即可取出对应的节点。
备注:
1、xpath 解析和寻找节点,不一定适用 htmlagility,因为这个对 document 的 xml 结构化要求比较高,可以自己尝试动手写一个。
2、建议对 xpath 进行一些扩展,包含上如 node id,node classname 等一些信息,这样会提高节点定位准确性。诸如:/html/body/div[id="MainContent" class="Main"]/span[id="PostTime"]
3、建议对 xpath 进行一些扩展,包含节点序号。譬如某个 span 节点,是父节点下第 2 个节点,可以书写如下:/html/body/div[id="MainContent" class="Main"]/span[2].
4、xpath 如果只用 full path,即从根节点 html 到节点的完整路径,有时候不能够很好的对抗对方网页的改版。所以可以将代码优化,支持相对路径的 xpath,而不是完整 xpath。譬如://div[id="MainContent" class="Main"]/span[id="PostTime"]

这个工具现在还不能开源,因为该工具也被应用到了别的商业项目中,要拆分出来还得需要花比较多的时间,暂时还没时间来弄这件事情。以上的信息,你可以借鉴来开发。
2019-07-08 17:06:29 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@jackFenng 老兄,幸会幸会!(握手)老兄是只搞.net ,还是说也搞其他语言,主力是什么编程啊?现在.net 工作好找吗?行情怎样?
2019-07-08 12:17:06 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@ccc825 收到,我理解你的意思了。的确,服务器端搜索 Stack Overflow,花费的时间是毫秒级的。如果速度慢,一个可能是服务器到用户电脑之间的速度慢,还有一个可能是页面图片的加载逻辑和网页 html 一起同时加载了。我后期会把图片加载顺序学习 google,在页面 html 加载后再加载图片,懒加载。多谢你的建议,非常好,感谢!
2019-07-08 10:29:16 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@ccc825 多谢朋友建议和支持!可否告知你搜索的关键字,我查查看搜索慢的原因,看是服务器端搜索速度问题,还是页面加载速度问题。目前页面上加载的图片除了 logo 图是 goobe 自己本站的,其他的网页 logo 图都是指向源网站的,如果源网站慢,可能图片加载就有点慢。另外,UI 不是我的擅长,以后期待能找一个厉害的 UI 朋友帮忙 refine 一版网站。
2019-07-07 19:13:25 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
一个月小伍佰,放那儿不需要 bei_an,就是个人练手项目,不想太折腾。
2019-07-07 17:14:49 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@zy5a59 谢谢支持,周末愉快!
2019-07-07 12:28:40 +08:00
回复了 nyfok 创建的主题 分享创造 业余开发了一个技术搜索引擎,请小伙伴们提提意见。
@scriptB0y 另外,还需要计算一个网站详情页的正文内容的原创度和首发度。以确定这个网站的内容的原创性和优质性,以此来决定是否收录,以及查询时排序的先后顺序。因为,一般二道搜索引擎,或者文章转载系统的内容,普遍缺乏原创性,发布的速度肯定滞后于首发平台。
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   949 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 21:24 · PVG 05:24 · LAX 14:24 · JFK 17:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.