LINQ To Lucene简单介绍
创始人
2024-06-06 15:00:26
0

本文向大家介绍LINQ To Lucene,可能好多人还不了解LINQ To Lucene,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

lucene是在JAVA中比较有名的开源项目,也有.NET移植版lucene.net,不过在apache的官方网站上还是一个孵化器项目,而且好像2007年就不更新了,现在codeplex上推出了LINQ To Lucene,真是一个好消息。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using Lucene.Linq.Mapping;  
  6. using Lucene.Net.Analysis;  
  7. using Lucene.Linq;  
  8.  
  9. namespace LinqToLucene1  
  10. {  
  11. [Document]  
  12. public class Book : IIndexable, IHit  
  13. {  
  14. [Field(FieldIndex.Tokenized,FieldStore.Yes, IsDefault = true)]  
  15. public string Title { get; set; }  
  16.  
  17. [Field(FieldIndex.Tokenized, FieldStore.Yes)]  
  18. public string Author { get; set; }  
  19.  
  20. [Field(FieldIndex.Tokenized, FieldStore.Yes)]  
  21. public string PubTime { get; set; }  
  22.  
  23. [Field(FieldIndex.Tokenized, FieldStore.Yes)]  
  24. public string Publisher { get; set; }  
  25.  
  26. region IHit Members  
  27.  
  28. public int DocumentId { get; set; }  
  29.  
  30. public float Relevance { get; set; }  
  31.  
  32. endregion  
  33. }  

linq to lucene采用attribute的方式,非常简单方便。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using Lucene.Net.Documents;  
  6. using Lucene.Linq.Mapping;  
  7. using Lucene.Linq;  
  8. using Lucene.Net.Analysis;  
  9.  
  10. namespace LinqToLucene1  
  11. {  
  12. public class Program  
  13. {  
  14. static void Main(string[] args)  
  15. {  
  16. IIndex bookIndex = new Index();  
  17. bookIndex.Add(new Book()  
  18. {  
  19. Title = "谁都逃不掉的金融危机",  
  20. Author = "xxx",  
  21. Publisher = "东方出版社",  
  22. PubTime = "2008年12月" 
  23. });  
  24. bookIndex.Add(new Book()  
  25. {  
  26. Title = "许我向你看(“暖伤青春代言人” 辛夷坞《致我们终将逝去的青春》***续作)",  
  27. Author = "辛夷坞",  
  28. Publisher = "河南文艺出版社",  
  29. PubTime = "2008年12月" 
  30. });  
  31. bookIndex.Add(new Book()  
  32. {  
  33. Title = "大猫儿的TT奋斗史(都市小白领的爆雷囧事录)",  
  34. Author = "阿巳",  
  35. Publisher = "国际文化出版公司",  
  36. PubTime = "2008年12月" 
  37. });  
  38. bookIndex.Add(new Book()  
  39. {  
  40. Title = "佳期如梦之海上繁花(匪我思存***作品上市)",  
  41. Author = "匪我思存",  
  42. Publisher = "新世界出版社",  
  43. PubTime = "2008年12月" 
  44. });  
  45.  
  46. var result = from book in bookIndex  
  47. where book.Author == "xxx"  
  48. select book;  
  49.  
  50. foreach (Book book in result)  
  51. {  
  52. System.Console.WriteLine(book.Title);  
  53. }  
  54.  
  55. System.Console.ReadLine();  
  56. }  
  57. }  

不过有个bug,如果写成from Book book in bookIndex 的话,就会报异常。

【编辑推荐】

  1. Linq结果集形状概述
  2. Linq存储过程返回详解
  3. Linq调用LoadProducts方法
  4. Linq使用数据表简单描述
  5. Linq对象引用简单介绍

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...