通过对 Lucene.Net 的进一步封装,然后结合盘古分词类库来简化项目中索引的创建与索引查询功能,需要注意的是,因 Lucene.Net 版本不同,UpdateDocument 功能可能会失效,所以可以先删除索引,再添加索引。
项目地址:
https://gitee.com/snipen/Helper.Core.Library/blob/master/LuceneHelper.cs
索引数据实体模型如下:
public class ViewIndexModel
{
[LuceneIndexT(LuceneIndexStoreEnum.YES, LuceneIndexIndexEnum.ANALYZED)]
public int IdentityID { get; set; }
[LuceneIndexT(LuceneIndexStoreEnum.YES, LuceneIndexIndexEnum.ANALYZED)]
public string IndexTitle { get; set; }
[LuceneIndexT(LuceneIndexStoreEnum.YES, LuceneIndexIndexEnum.NOT_ANALYZED)]
public string IndexSummary { get; set; }
[LuceneIndexT(LuceneIndexStoreEnum.YES, LuceneIndexIndexEnum.NOT_ANALYZED)]
public DateTime IndexDateTime { get; set; }
}
初始化 Lucene 相关配置信息
LuceneHelper.Init(Server.MapPath("~/Dict/"), Server.MapPath("~/PanGu/PanGu.xml"));
设置索引数据,再次注意,因版本不同,UpdateDocument 可能会失效
LuceneHelper.Set<ViewIndexModel>(new List<ViewIndexModel>(){ }, "IdentityID");
索引查询,带分页功能
int totalCount = 0;
List<ViewIndexModel> dataList = LuceneHelper.Query<ViewIndexModel>(new string[] { "IndexTitle" }, "123", "IndexDateTime desc", 1, 10, ref totalCount);