日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Lucene.net实现自定义排序

發布時間:2024/10/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Lucene.net实现自定义排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Lucene.net實現自定義排序,需要實現兩個Lucene.Net.Search的兩個接口:


public interface SortComparatorSource
{
?? ScoreDocComparator NewComparator(IndexReader reader , System.String fieldname) ;
}

public interface ScoreDocComparator
{
?? int Compare(ScoreDoc i , ScoreDoc j) ;
?? System.IComparable SortValue(ScoreDoc i) ;
?? int SortType() ;
}



涉及到的一個類:


public class ScoreDoc
{
?? public float score ;
?? public int doc ;
?? public ScoreDoc(int doc , float score)
?? {
??????this.doc = doc ;
??????this.score = score ;
?? }
}


Lucene.net 2.0包含的SortType有:
在Lucene.Net.Search.SortField里定義的:



public class SortField
{
?? public const int SCORE = 0 ;??//相關度
?? public const int DOC = 1 ;????//文擋號
?? public const int AUTO = 2 ;?? //自動識別
?? public const int STRING = 3 ; //字符型
?? public const int INT = 4 ;????//int
?? public const int FLOAT = 5 ;??//float
?? public const int CUSTOM = 9 ; //自定義
?? ..
}


少了DateTime,那就實現DateTime類型的自定義排序來測試下:



Lucene.Net.Search.ScoreDocComparator接口的實現類:
????public class DateDocComparator : Lucene.Net.Search.ScoreDocComparator
????{
????????private string fieldname = null;
????????private System.IComparable[] cachedValues ;

????????public DateDocComparator(System.IComparable[] cachedValues, string fieldname)
????????{
????????????this.cachedValues = cachedValues;
????????????this.fieldname = string.Intern(fieldname) ;
????????}

????????public int Compare(ScoreDoc i, ScoreDoc j)
????????{
????????????return this.cachedValues[i.doc].CompareTo(this.cachedValues[j.doc]) ;
????????}

????????public System.IComparable SortValue(ScoreDoc i)
????????{
????????????return this.cachedValues[i.doc] ;
????????}

????????public int SortType()
????????{
????????????return Lucene.Net.Search.SortField.CUSTOM ;
????????}
????}



Lucene.Net.Search.SortComparatorSource接口的實現類:


public class DateSortComparatorSource : Lucene.Net.Search.SortComparatorSource
????{
????????public ScoreDocComparator NewComparator(Lucene.Net.Index.IndexReader reader, System.String field)
????????{
????????????return new DateDocComparator(GetCustom(reader, field), field);
????????}

????????protected virtual System.IComparable[] GetCustom(Lucene.Net.Index.IndexReader reader, System.String field)
????????{
????????????????System.IComparable[] retArray = new System.IComparable[reader.MaxDoc()];
????????????????Lucene.Net.Index.TermDocs termDocs = reader.TermDocs();
????????????????Lucene.Net.Index.TermEnum termEnum = reader.Terms(new Lucene.Net.Index.Term(field, ""));
????????????????try
????????????????{
????????????????????do
????????????????????{
????????????????????????Lucene.Net.Index.Term term = termEnum.Term();
????????????????????????if (term == null || term.Field() != field)
????????????????????????????break;
????????????????????????System.IComparable termval = Lucene.Net.Documents.DateTools.StringToDate(term.Text()) ;
????????????????????????termDocs.Seek(termEnum);
????????????????????????while (termDocs.Next())
????????????????????????{
????????????????????????????retArray[termDocs.Doc()] = termval;
????????????????????????}
????????????????????}
????????????????????while (termEnum.Next());
????????????????}
????????????????finally
????????????????{
????????????????????termDocs.Close();
????????????????????termEnum.Close();
????????????????}
????????????????return retArray;
????????}
????}
使用:
Sort sort = new Sort(new SortField("datecreated",new DateSortComparatorSource(),true)) ;

轉載于:https://www.cnblogs.com/peida/archive/2008/11/27/1341920.html

總結

以上是生活随笔為你收集整理的在Lucene.net实现自定义排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠干婷婷 | 欧洲-级毛片内射 | 性高潮影院 | 国产91国语对白在线 | 天堂av手机版 | 欧美一区二区在线免费观看 | 久久精品99国产 | 自由成熟xxxx色视频 | 先锋影音一区二区三区 | 天天看天天操 | 国产视频在线观看一区二区 | 国产精品麻豆一区二区三区 | 校园伸入裙底揉捏1v1h | 91精品国产综合久久久蜜臀图片 | 特级西西人体wwwww | 日韩精品一区二区三区无码专区 | 欧美午夜久久久 | 天天操夜夜操夜夜操 | 国产欧美日韩视频在线观看 | 亚洲午夜久久久久久久久久久 | 成人涩涩网站 | 他揉捏她两乳不停呻吟动态图 | 亚洲最大福利 | 国产又粗又黄又爽视频 | 中文字幕精品视频在线 | av不卡一区二区 | 婷婷第四色 | 亚洲精品高潮久久久久久久 | 国产区免费| 中国一区二区视频 | 在线视频一区二区三区四区 | 国产精品久久999 | 日韩激情毛片 | 午夜影院性 | 亚洲日本欧美精品 | 日本一本在线 | 国产精品久久久久久妇女 | 男男成人高潮片免费网站 | avtt国产| 致命弯道8在线观看免费高清完整 | 福利社区一区二区 | www.色在线 | 在线播放的av | 操操操综合网 | 黄色xxxxx | 国产亚洲一区二区不卡 | 国产欧美日韩 | 欧美女优在线 | 黑人精品欧美一区二区蜜桃 | 亚洲欧美精品一区二区三区 | 天天操天天爽天天射 | 婷婷亚洲天堂 | 精品无码一区二区三区 | 激情深爱五月 | 成人xx视频 | 日韩中文在线一区 | 天天干干天天 | 91九色在线 | 男人的天堂av网站 | 国产成人精品网 | 色小说在线观看 | 少妇扒开粉嫩小泬视频 | 国产剧情av在线 | 国产一区二区三区播放 | 欧美一级免费看 | 黄av网站| 中文字幕影片免费在线观看 | 久久伊人99| 国产一区二区三区四区 | 综合图区亚洲 | 久久久九九九热 | 亚洲精品福利在线观看 | 成人av地址 | 国产欧美第一页 | 亚洲欧美综合一区 | 免费黄色小视频在线观看 | 久久精品动漫 | 欧美一区二区三区婷婷 | 狠狠干综合网 | 99re8在线精品视频免费播放 | ktv做爰视频一区二区 | 粉嫩小箩莉奶水四溅在线观看 | 日韩黄色精品视频 | 99xav| 国产精品久久久一区二区三区 | 婷婷色小说 | 超碰一区二区三区 | 一区二区乱子伦在线播放 | 亚洲xxxx18| 国产午夜免费视频 | 国产性在线 | 欧美精品久久久久性色 | 亚洲一区免费观看 | 狠狠操五月天 | 色视频免费在线观看 | 中文字幕无码精品亚洲35 | 国产激情视频一区二区 | 片多多在线观看 | 午夜免费精品 |