Lucene FieldCache的使用
来源:互联网 发布:陈强 数据集 编辑:程序博客网 时间:2024/05/10 01:10
版本:Lucene.Net-2.3.2
Lucene文档内容:
Index ID
0 9
1 2
2 4
3 7
C#代码:
Lucene.Net.Search。IndexSearcher searcher = new Lucene.Net.Search。IndexSearcher("E://Lucene//Index");
Lucene.Net.Index.IndexReader reader = searcher.Reader;
var index1 = FieldCache_Fields.DEFAULT.GetStringIndex(reader, "ID");
var index2 = FieldCache_Fields.DEFAULT.GetStrings(reader, "ID");
string[] lookups = index1.Lookup;
int[] orders = index1.Order;
以下是对结果的分析说明:
lookups:
0 null
1 2
2 4
3 7
4 9
orders:
0 4
1 1
2 2
3 3
对比数据,找出它们之间的关系后就能明白Lucene的FieldCache是如何使用的。
Index ID Lookup Order
0 9 4
1 2 1
2 4 2
3 7 3
很明显,它们具有以上的关系,通过上面的关系可以从FieldCache中得到我们想要的内容,下面是简单的使用例子:
index2[hits.Id(i)] 拿出第i个搜索结果在FieldCache中相对应的内容
QueryParser myquery = new QueryParser("", analyzer);
Query query = myquery.Parse("ID:/"4/");
Hits hits = searcher.Search(query);
hits.Id(0) 的值为2
index2[hits.Id(0)] 的值为4
如果要拿出从小到大排序后的ID中的第3位的值,则按下面的方法拿:
lookups[3]
思考:拿出从小到大排序后的ID中的第3位的Index值该如何拿?
方案1:利用HashTable建立Index和Lookup Order的关系,用得到的值去HashTable中搜索。
希望大家能想到更好的方案。
- Lucene FieldCache的使用
- FieldCache在lucene中使用的代码解析
- lucene的FieldCache与内存管理
- FieldCache在lucene中使用的代码解析,使用场景个人分析
- FieldCache在lucene中使用的代码解析,使用场景个人分析
- Lucene系列-FieldCache
- Lucene系列-Fieldcache
- lucene FieldCache 内部细节和使用方式分享
- Lucene的使用(一)
- lucene.net的使用
- lucene的使用
- Lucene的使用
- Lucene的使用
- Lucene的使用
- lucene-queryparser的使用
- Lucene的使用
- Lucene的简单使用
- lucene MMapDirectory的使用
- 一个技术人员,却总想追求商业上的成功
- 求前辈指导
- 设置关键词直接链接到goole的收录中去
- 我很害怕失去
- C++一些关键问题的重新认识
- Lucene FieldCache的使用
- ado方式操作数据库类
- 手动恢复系统启动项
- 【软件测试自动化-QTP系列讲座 35】== 基于类和函数的complete Word ==
- 在IBM工作这么长时间了,才知道老大是YY,老大的老大是 麦特.王
- Windows下安装PEAR
- Android:GridView+AbsoluteLayout作一个四宫格
- iptables语法总结
- 开始AC了