学习笔记

相关文档:系统框架.vsd和代码结构.doc

流程:索引-->搜索

分词:用Lucene标准分词就可以了,还有KTD分词

负载均衡:索引或搜索服务部署到多台服务器后,
         一般通过linux负载均衡的软件实现,对外一个入口指向多个服务器的地址

发布流程:
1.重新生成win开头的release版
2.把bin下面的release发部署到相应服务器
2.加载服务--InstallIndexService.bat
  @WinIndexService.reg把服务设置导入到这个这注册表文件,下次更新不用再设置服务的参数


Job88.FullTextSearch.WcfService的
SearchData方法
可传三种:
第一种:Dictionary<string,string>
 sis的SalesBusiness/SearchCompanyByEngineer.aspx
 和Recommend/RecommandSetting.aspx
第二种:传字符串:
后台服务ManageService
Job88.SIS.SerivceBLL的AutoRecommendService.cs

if (resumeID.Contains(" OR "))
                                {
                                    resumeID = " NOT (" + resumeID + ")";
                                }
                                else
                                {
                                    resumeID = " NOT " + resumeID;
                                }
第三种:传Lucene的Query对象,少用

获取搜索排序,像sql中的order by

获取搜索排序,像sql中的order by

缓存服务器:
1.把缓存服务器应该程序部署到缓存服务器
2.运行Install.bat
3.通过客户端Job88.FullTextSearch.MemcachedClient调用
转换精确条件:中华人民共和国要全部匹配称之为精确搜索

委托跟泛型的使用:
flagsTemp = Array.ConvertAll(dicConditionRelations.Values.ToArray(), new

Converter<ConditionRelation, BooleanClause.Occur>(ConvertRelationData));
Job88.FullTextSearch.WcfHelper的SearchHelper.cs
中的ConvertRelationData()和
***GetSearchQuery()

搜索引擎原理:
数据源:从正式库通过SQL Server的事务复制功能同步数据到搜索引擎数据库[增删改],发布SQL命令,订阅时要指定发布服务器
一.建索引数据:定期从搜索引擎数据库取数据创建索引文件
过程:
1.Job88.FullTextSearch.ConsoleCollectorService的StartCollectorAndIndex()
2.Job88.FullTextSearch.DBDataSource取索引数据
3.Lucene分词建索引文件
4.通过Lucene标准词库查找已建好的索引数据
二.搜索数据(WCF):
   通过memcached取数据或者通过Lucene取索引数据

客户端搜索时到缓存取数据或到索引数据库取数据
memcached:高性能的分布式内存缓存服务器。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性



启动服务
ConsoleSearchServic这类型的项目
测试
PreviewQueryStringCheck
Default.aspx,输入测试数据:KeyWords:上海 

原文地址:https://www.cnblogs.com/ylemzhang/p/1688428.html