您的位置:首页 > 其它

Lucene.net搜索结果排序(单条件和多条件)

2009-06-08 16:16 549 查看
Lucene支持对搜索条件的排序,一个条件或者多个条件,以及是升序还是降序,部分代码如下:

string
INDEX_STORE_PATH
=
Server.MapPath(
"
index
"
);
//
INDEX_STORE_PATH 为索引存储目录

string
keyword
=
TextBox2.Text;
//
搜索内容

Hits myhit
=

null
;

IndexSearcher mysea
=

new
IndexSearcher(INDEX_STORE_PATH);

QueryParser q
=

new
QueryParser(
"
indexcontent
"
,
new
StandardAnalyzer());

Query query
=
q.Parse(keyword);

Sort sort
=

new
Sort();

SortField f
=

new
SortField(
"
createdate
"
, SortField.STRING,
true
);
//
按照createdate字段排序,true表示降序

sort.SetSort(f);

//
多个条件排序

//
Sort sort = new Sort();

//
SortField f1 = new SortField("createdate", SortField.DOC, true);

//
SortField f2 = new SortField("bookname", SortFiedl.INT, false);

//
sort.setSort(new SortField[] { f1, f2 });

myhit
=
mysea.Search(query, sort);

Response.Write(
"
关于:
"

+
keyword
+

"
搜索到
"

+
myhit.Length()
+

"
个结果<br>
"
);

对于数据量大(索引文件大于50M)的索引,尽量不要用索引中的字段排序,要用索引ID排序(INDEXORDER);两者效率相差近10倍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: