基于lucene的搜索服务器(二)搜索端

上文: 基于lucene的搜索服务器 写的是创建索引端。

今天写一下搜索端的实现思路。

 

Restful Service的搜索服务:

搜索服务接受URL请求,通过Config解析一下url中的参数,得到有用的参数。如(关键字,搜索目标项目名,项目dll名,索引文件夹路径,xml配置文件路径,搜索关系,等等。)

再通过PraseDLL类和PraseModel类,结合具体的DLL文件和XML配置文件,解析出更具体的搜索条件(如哪个字段是哪个关键字,各个字段搜索时是或还是且等逻辑信息)。用QueryPrase得到Lucene的搜索条件Query,传给Lucene,搜出符合条件的具体结果集。

因为搜索时,需求可能并不是对一个类的索引文件进行搜索,可能是搜索多个类的索引文件,然后让结果混在一起,按照Lucene的评分排序,所以最后输出的结果是一个List<object>。实体类属性中如果有评分属性,则保存了Lucene的打分情况(哪个属性是评分属性,哪个是搜索字段属性,这些都是XML配置的或者是C#特性),然后用HighLight对其中搜出的内容加入关键字高亮,都根据配置来决定是怎么个高亮法,显示摘要多少字。

最后再把List<object>装换成一个Json格式的String输出。

 

消费服务的项目客户端:(用RestSharp消费RestFul服务)

这个貌似也没啥可写的。。。

我是用RestSharp写的,构造需要的url,然后get请求,得到结果(json格式的string类型)后,再在前台把结果转换成Json数据,这样就能用了。

各个项目可以有自己的实现。

 

结束:

呵呵,只是记录当时开发这个的思路,以后可以温故而知新,看看现在的自己写的代码,思路有啥不足,也高兴下自己的成长。

转载于:https://www.cnblogs.com/Norman-ZL/archive/2012/09/07/2674826.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值