搜索引擎开发的技术心得

                                                                                      搜索引擎开发的技术心得


注:以下技术说明仅个人理解,不一定完全正确

 

对于solr的一些基础知识我这边就不做于百度重复的事儿,该文档更倾向如何去处理实际工作的问题思路,大致分为两块,1如何合理的创建索引2如何查询索引

先说说第一个问题:

           Solr创建索引的方式有两种:

1使用solr页面管理,设置好schema.xml(主要是对一个索引类型的申明和定义)data-config.Xml(主要是设置一个索引的数据来源和匹配索引的类型)

 2使用solrJ,使用solrj的方式可以用代码去控制创建索引和索引类型的逻辑,但是不是很直观,不过如果业务上需要经常变化建索引的方式,或者需要实时同步索引,用solrJ会好些,如果不是经常变化使用solr的配置文件的形式会好些。

对于索引的创建中,我们还需要注意分词,同义词,纠错词等等词库,他们的逻辑是分词为最低权限,也就是说当一个词支持同义词的时候它就不做分词处理或者纠错处理了,比如:“感冒灵颗粒“能同义词为“感康”,本来“感冒灵颗粒”这个词能分成“感冒”“灵”“颗粒”,但是“感冒灵颗粒”能被“感康”同义化,就直接同义成“感康”了。

另外对于索引的管理需要有一个大致的认知,从大到小是:core   >document>entity>field.    他们的关系结果类似于数据库的结构:
数据库>         >一条数据>一个字段。

最后在设计索引的时候一定要注意创建的性能问题,在实际的开发过程中当遇到权重,分词,计算等等情况的时候是需要考虑到底是放在建索引阶段,还是放在查询索引阶段,这是一个权衡的问题!

 

再说说第二个问题:

     对于搜索的查询是一个很复杂的知识点,总的来说:查询策略的调整就是在控制相关度的高低,这点很重要,以本人之前的经验来看,经常会遇到一些搜索策略的决策问题,如果把相关度调整的太低,那么就会出现一些用户认为莫名其妙的东西出现,当把相关度调整的太高,会出现用户想搜索的结果永远也搜不到(因为可能只是比那个相关度的分界线低一点),所以对于这个相关度的调整的好坏直接决定了整个搜索引擎的好坏。

然后在具体说说对于查询索引的一些细节的规则,对于查询的条件大致可以分以下几类:1q 2filds 3sort 4权重。当然还有很多高级的属性设置,不过这4个是最基本的主要的,

我把全部的查询条件的参数和解释都贴在一个文档中,另外对于solr的相关度的评分机制一定要了解,这里贴出公式:

 

对于具体代表的意思和算法请看我的博客:http://blog.csdn.net/breaknull/article/details/51919281

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值