Hits详解
来源:互联网 发布:上班族如何赚外快知乎 编辑:程序博客网 时间:2024/05/21 18:44
//====Hits详解====//
//这是Hits的几个公有的接口
//取得当前结果集的数量
//public final int length()
//取得当前结果集中第N个Document
//public fianal Document doc(int n) throws IOException
//取得当前结果集中第N个Document的得分
//public final float score(int n) throws IOException
//取得当前结果集中第N个Document的索引内部ID值
//public final int id(int n) throws IOException
//取得对Hits集合中的遍历对象
//public ITerator iterator()
package hits;
import javax.management.Query;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
import indexSearcher.IndexSearcher;
//演示一下这些方法的使用
class Fangfa{
//初始化一个IndexSearcher
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
//构建一个Term对象
Term t = new Term("bookname", "女");
//构建一个Query对象
Query q = new TermQuery(t);
//检索
Hits hit = searcher.searcher(q);
//显示
for(int i = 0; i < hits.length(); i++){
System.out.println(hits.doc(i));
System.out.println(hits.score(i));
System.out.println(hits.id(i));
System.out.println("=====================");
}
}
public class Hits {
//先建立索引
public void Index(){
IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
Document doc = null;
Field field = new Field("bookname", "美女与野兽", Field.Store.YES, Field.Index.TOKENIZED);
for(int i = 0; i <= 100000; i++){
doc = new Document();
doc.add(field);
writer.addDocument(doc);
}
writer.close();
}
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t = new Term("bookname", "女");
Query q = new TermQuery(t);
//搜索(bookname: 女)
Hits hits = searcher.search(q);
//计算取出第10个搜索结果所花费的时间
Date start = new Date();
Document d1 = hits.doc(10);
System.out.println(d1);
System.out.println(hits.id(10));
System.out.println(d1.get("bookname"));
Date end = new Date();
System.out.println("cost time :" + (end.getTime() - start.getTime())+ "ms");
//随着对10万个检索结果不用位置的文档进行访问,发现其访问时间并不一样,
//有着很大的差别。越靠后访问时间越长。因此一次性取回所有的结果做法是不可取的,
//这就涉及了Hits的内部缓存(请看下一篇博客)
}
//这是Hits的几个公有的接口
//取得当前结果集的数量
//public final int length()
//取得当前结果集中第N个Document
//public fianal Document doc(int n) throws IOException
//取得当前结果集中第N个Document的得分
//public final float score(int n) throws IOException
//取得当前结果集中第N个Document的索引内部ID值
//public final int id(int n) throws IOException
//取得对Hits集合中的遍历对象
//public ITerator iterator()
package hits;
import javax.management.Query;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
import indexSearcher.IndexSearcher;
//演示一下这些方法的使用
class Fangfa{
//初始化一个IndexSearcher
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
//构建一个Term对象
Term t = new Term("bookname", "女");
//构建一个Query对象
Query q = new TermQuery(t);
//检索
Hits hit = searcher.searcher(q);
//显示
for(int i = 0; i < hits.length(); i++){
System.out.println(hits.doc(i));
System.out.println(hits.score(i));
System.out.println(hits.id(i));
System.out.println("=====================");
}
}
public class Hits {
//先建立索引
public void Index(){
IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
Document doc = null;
Field field = new Field("bookname", "美女与野兽", Field.Store.YES, Field.Index.TOKENIZED);
for(int i = 0; i <= 100000; i++){
doc = new Document();
doc.add(field);
writer.addDocument(doc);
}
writer.close();
}
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t = new Term("bookname", "女");
Query q = new TermQuery(t);
//搜索(bookname: 女)
Hits hits = searcher.search(q);
//计算取出第10个搜索结果所花费的时间
Date start = new Date();
Document d1 = hits.doc(10);
System.out.println(d1);
System.out.println(hits.id(10));
System.out.println(d1.get("bookname"));
Date end = new Date();
System.out.println("cost time :" + (end.getTime() - start.getTime())+ "ms");
//随着对10万个检索结果不用位置的文档进行访问,发现其访问时间并不一样,
//有着很大的差别。越靠后访问时间越长。因此一次性取回所有的结果做法是不可取的,
//这就涉及了Hits的内部缓存(请看下一篇博客)
}
0 0
- Hits详解
- HITS算法详解及代码实现
- hits算法
- hits 算法
- HITS算法
- HITS算法
- lucene-hits和评分
- Thanks for 20000 hits!
- HITS算法及原理
- JSP - Hits Counter
- HITS算法思想
- HITS算法的测试
- HITS算法类PageRank
- HITS算法分析
- HITS(HITS(Hyperlink - Induced Topic Search) ) 算法
- PageRank算法和HITS算法
- HITS算法的Java实现
- HITS算法的Java实现
- java接口
- SqlHelper
- open close write 跟read
- Java 类加载与初始化
- BZOJ 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
- Hits详解
- wikioi1004 四子连棋 解题报告
- 动态规划
- BCM 11AC脱机下载内存耗用过大的分析定位与处理
- 解决安装MySQL-python出现的:Python version 2.7 required, which was not found in the registry
- 高手速成android开源项目【View篇】
- web开发性能优化---SEO优化篇
- opengl利用SOIL加载图片dds纹理
- POS DES MAC 算法