日韩性视频-久久久蜜桃-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实现自定义排序的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一级片播放 | 欧美性videos高清精品 | 国产情侣在线播放 | 极品新婚夜少妇真紧 | 黄色三级片毛片 | 男女视频免费看 | 三级黄网 | 中日韩精品视频在线观看 | 激情视频一区 | 欧美18aaaⅹxx | 亚洲精品国产片 | 我想看毛片 | 久久亚洲一区二区三区四区五区 | 午夜精品一区二区三区在线播放 | 欧美片网站yy | 懂色av懂色av粉嫩av分享吧 | 亚洲黄色免费网站 | 国产精品免费一区二区三区在线观看 | 白浆一区| 啪啪免费av| 国产在线观看免费视频软件 | 超碰caopeng| 91久久久久久久久 | 蜜桃网站 | 精品国产一区二区视频 | 好吊妞一区二区三区 | 日本一区三区 | 人人爽人人爽人人爽人人爽 | 长篇高h肉爽文丝袜 | 在线你懂的视频 | 日本黄色一区二区 | 久久久6| 日本少妇做爰全过程毛片 | 亚洲8888 | 中文字幕有码在线观看 | 日韩有码一区二区三区 | 色欧美在线 | 欧美日韩在线综合 | 亚洲成人一区二区 | 青青草自拍视频 | 91精品啪在线观看国产线免费 | 免费观看av网站 | 农村激情伦hxvideos | 日本xxxx高清 | 日本免费三区 | 三级中文字幕 | 自拍偷拍视频网站 | 德国艳星videos极品hd | 五月天激情视频在线观看 | 国产综合激情 | 久久91精品国产91久久小草 | 黄色av网页 | 伊人网大 | 中国毛片视频 | 精品国产久| 中文字幕一区二区三区在线不卡 | 欧美交换国产一区内射 | 午夜av在线免费观看 | 人人人妻人人澡人人爽欧美一区 | 国产免费一区,二区 | 国产精品久久久久久69 | 性一交一乱一精一晶 | 男女日皮视频 | 亚洲wwww| 国产美女视频一区 | 在线视频 中文字幕 | 黄色片一区二区 | 91大神在线看 | 国产老头户外野战xxxxx | 伊人三级 | 国产成人免费电影 | 成人资源站 | javxxx| 久久国产乱子伦免费精品 | 五月婷婷在线播放 | 国产精品福利片 | 女人和拘做爰正片视频 | 天天碰免费视频 | 亚洲双插 | 欧美日韩一区二区三区四区 | 国产丝袜在线 | 欧美性大战久久久久久久 | 日日噜夜夜噜 | 免费的毛片视频 | 超碰在线免费 | 精品人妻无码专区视频 | 国产午夜无码精品免费看奶水 | 美国一级大黄一片免费中文 | 精品婷婷色一区二区三区蜜桃 | 99午夜视频| 97公开视频| 国产欧美激情在线观看 | 日韩精品在线电影 | 欧美日韩国产成人在线 | 国产精品毛片在线 | 天堂av免费观看 | 在线观看 一区 | 久久精品免费网站 | 女人脱下裤子让男人捅 |