Lucene.Net.Search.Highlight.FragmentQueue 中的派生方法 LessThan 不能减少访问

今天运用Lucene.net做全文索引查询时,碰到了这个问题。在baidu搜索了一下,也有朋友碰到同样的问题:

我在ASP.NET中使用Lucene.NET组件实现高亮显示..可是出现问题..说什么不能访问(如下图),另外如果在ASP.NET中建立索引后..搜索时有些东西搜索不到,在WinForm中又没事..这又是什么问题呢??请牛人们帮忙
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.TypeLoadException: 程序集 Highlighter, Version=1.3.2.1, Culture=neutral, PublicKeyToken=null 的类型 Lucene.Net.Search.Highlight.FragmentQueue 中的派生方法 LessThan 不能减少访问。
源错误:
行 169: row["title"] = doc.Get("title");
行 170: row["path"] = "http://www.dotlucene.net/documentation/api/1.4/" + path.Replace("\\", "/");
行 171: row["sample"] = highlighter.GetBestFragments(plainText, 80, 2, "...");
行 172:
行 173: this.Results.Rows.Add(row);
以上是在ASP.NET中使用高亮显示时出现的问题


后来自己找到了 解决办法:
原因出于 Lucene.Net.dll 和 Highlighter.Net.dll的版本不一致。你要检查一下, 你的项目中引用的Lucene.Net.dll是2.0的,而 Highlighter.Net.dll不是2.0的,这一点从上面“ row["sample"] = highlighter.GetBestFragments(plainText, 80, 2, "..."); ” 这句可以看出。因为2.0的GetBestFragments方法的参数列表不同,在我的解决方案中是用了
public System.String GetBestFragment ( Lucene.Net.Analysis.TokenStream tokenStream , System.String text )方法

关键代码如下:
   using Lucene.Net.Documents;
   using Lucene.Net.Analysis.Standard;
   using Lucene.Net.Search;
   using Lucene.Net.QueryParsers;
   using Lucene.Net.Index;
   using Lucene.Net.Store;
   using Lucene.Net.Highlight;
   using Lucene.Net.Analysis;
   using System.IO;


       //内容
      string text = doc.GetField("Content").StringValue();
       //某数据记录对象
     Result result = new Result();      
       // 高亮显示设置
      SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<font color=\"red\">", "</font>");
      highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query));     
       //关键内容显示大小设置 
      highlighter.SetTextFragmenter(new SimpleFragmenter(200));      
       //取出高亮显示内容
      TokenStream tokenStream = analyzer.TokenStream("Content", new StringReader(text));
      result.Content = highlighter.GetBestFragment(tokenStream,text);


 参考文章: http://blog.sina.com.cn/u/54c1567b010008st
http://hi.baidu.com/buliu/blog/item/115ee83d542735c59e3d6225.html
http://www.tianyablog.com/blogger/post_show.asp?BlogID=114714&PostID=2852189

转载于:https://www.cnblogs.com/huazai8204/archive/2007/06/22/793114.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值