8. 5 楼 每天看看 2009-04-29 引用
//Field.Index.NOT_ANALYZED 文件名称 建立索引,但不分词
doc.add(new Field("filename",
file.getCanonicalPath(),Field.Store.YES, Field.Index.NOT_ANALYZED));
这样建立索引,是不是我在搜索时可以
String field = "filename";
QueryParser parser = new QueryParser(field, analyzer);
query = parser.parse(filePath);
这样搜索,结果应该有一条记录。
4 楼 zhyt710 2009-02-07 引用
当然不是,你完全可以逐个遍历 int numTotalHits =
collector.getTotalHits(); 个符合条件的结果。但是对于大数据量的系统,一
般出现的结果数量非常的巨大,所以采取分页显示的方式。 就是说把打印结果放
在一个 while 循环里,每次循环都让 start 加一页数量的大小,只要 start 的
值小于 numTotalHits。 从而实现分页显示。 我在这里是为了尽可能的简化程序,
使读者更容易入门
xuganggogo 写道
Deprecated. Hits will be removed in Lucene 3.0.Instead e. g.
TopDocCollector and TopDocs can be used: TopDocCollector
collector = new TopDocCollector(hitsPerPage);
searcher.search(query, collector); ScoreDoc[] hits =
collector.topDocs().scoreDocs; for (int i = 0; i <
hits.length; i++) { int docId =
hits[i].doc; Document d =
searcher.doc(docId); // do something with
current hit 这里代替 hits 的方法,只能对 hitsPerPage 个结果进行操作。 难道
hitsPerPage 是写死的吗?如果要遍历所有结果集,该如何做?
3 楼 xuganggogo 2009-02-05 引用
Deprecated. Hits will be removed in Lucene 3.0.
Instead e. g. TopDocCollector and TopDocs can be used:
TopDocCollector collector = new TopDocCollector(hitsPerPage);
searcher.search(query, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
for (int i = 0; i < hits.length; i++) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
9. // do something with current hit
这里代替 hits 的方法,只能对 hitsPerPage 个结果进行操作。
难道 hitsPerPage 是写死的吗?
如果要遍历所有结果集,该如何做?
2 楼 zhyt710 2009-02-04 引用
并为了适应版
xuganggogo 写道
这个能用作索引 HTML 吗?
当然可以,只要是文本文件都可以。 对于不是纯文本文件的如 pdf,excel 等,只
要进行相应的解析成文本后,便可建立索引
1 楼 xuganggogo 2009-02-04 引用
这个能用作索引 HTML 吗?