类似百度,如搜索“fastreport报表”关键字,会在搜索结果中标示关键字
结果输出的时候你已经拿到这个元素的所有数据了.然后也知道了所有分词结果.这时候你自己可以拿分词结果在数据库匹配.找到关键字所在位置.
建议使用lunce
这是使用搜索引擎实现的,可以理解为:
首先,百度会抓取外部的数据-->分解这些数据成为一个一个的关键词-->存储关键词与外部数据的关系-->等待用户搜索
然后,你在百度的搜索框中搜索关键词-->分解你的搜索成为一个一个的关键词(因为有可能你搜的是一句话)-->查询相关的文档-->按照某种算法进行排序(一般是TF-IDF,可以百度下)返回给你
最后吐槽下无良的商家:因为正常返回的结果是与你的搜索相关度相关的,但是百度会修改算法,谁给他钱,就把谁排在前面,这就是竞价排名!所以才会出现那么多的广告!
实现这种技术的框架有很多,底层可以使用Lucene实现,.net和java都有版本!基于他们有很多开源的产品,比如solr、elasticsearch,都可以实现额外的一些功能或者封装一些高级的玩法、
谢谢,请问怎么分解这些数据成为一个一个的关键词?是不是应该要有个关键词库啊
@SmileZhen:
恩,没错,分词也是一种专门的技术。有很多开源的分词器,比如IK,庖丁。
@xingoo: 你好,在请教一下:这样的话是否要经常更新索引。比如新增一篇文章就需要新增同时更新所有已生成的索引,还是只要新增就可以?同理,修改一篇文章呢?用的是Lucene。博客园的找找看用的是什么