我需要在NHibernate中进行全文搜索。
以前,我使用的是Lucene.Net。
我有一个名为candidate的表。
对于全文查询,Lucene会从lucene索引中返回所有候选人Id,并将这些id放入candidate查询中返回结果。
但问题是,有超过10万份候选人简历可用,因此Lucene非常慢,因为从10万行中筛选值并在候选人中放回值再次筛选候选人需要太长时间。
另外,我有一个分页标准,每页返回100个候选人。
现在,我添加了一个名为candidate_full_text的新表,在该表中我配置了sqlserver 2000中的全文索引,现在我想使用NHibernate DetachedCriteria进行查询,如下所示:
1) Select candidate with some filters
2) Execute the function ContainsTable for candidate_full_text table
(which returns candidate tables id as key and rank of occurrence of the search string)
3) join the result from 1 & 2
4) Apply paging criteria (ie return 1st 100,2nd 100,3rd 100.. etc) according to page no
5) return the result by order of rank column (which is return by ContainsTable)
我需要使用DetachedCriteria在单个查询中完成以下任务,候选人全文索引的关键列是候选人表的id列。下面是表模型:
1) 候选人(最少字段)
Id - 整数,
Name - 字符串,
Dob - 日期时间,
2) 候选人全文本
id - 整数,
candidate_resume_full_text - ntext(已配置全文本索引),
candidate_id - 整数