使用Score对文档进行排序
来源:互联网 发布:安卓听书软件 编辑:程序博客网 时间:2024/04/28 19:41
//使用Score对文档进行排序
//根据相应的相关度进行排序
package sort;
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.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
public class Score {
IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
writer.setUseCompoundFile(false);
//构建8个文档, 并且添加Field
Document doc1 = new Document();
Document doc2 = new Document();
Document doc3 = new Document();
Document doc4 = new Document();
Document doc5 = new Document();
Document doc6 = new Document();
Document doc7 = new Document();
Document doc8 = new Document();
Field f1 = new Field("bookname", "ab", Field.Store.YES, Field.Index.ANALYZED);
Field f2 = new Field("bookname", "ab bc cd", Field.Store.YES, Field.Index.ANALYZED);
Field f3 = new Field("bookname", "ab bc cd de", Field.Store.YES, Field.Index.ANALYZED);
Field f4 = new Field("bookname", "ab bc cd de ef ", Field.Store.YES, Field.Index.ANALYZED);
Field f5 = new Field("bookname", "ab bc cd de ef fg ", Field.Store.YES, Field.Index.ANALYZED);
Field f6 = new Field("bookname", "ab bc de", Field.Store.YES, Field.Index.ANALYZED);
Field f7 = new Field("bookname", "ab bc de ef fg gh hi", Field.Store.YES, Field.Index.ANALYZED);
Field f8 = new Field("bookname", "ab cd", Field.Store.YES, Field.Index.ANALYZED);
doc1.add(f1);
doc2.add(f2);
doc3.add(f3);
doc4.add(f4);
doc5.add(f5);
doc6.add(f6);
doc7.add(f7);
doc8.add(f8);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.addDocument(doc4);
writer.addDocument(doc5);
writer.addDocument(doc6);
writer.addDocument(doc7);
writer.addDocument(doc8);
writer.close();
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
TermQuery q = new TermQuery(new Term("bookname", "bc"));
//自然排序
Hits hits = searcher.search(q);
for(int i = 0; i < hits.length(); ++i){
Document doc = hits.doc(i);
System.out.println(doc.get("bookname") + "\t\t");
System.out.println(hits.score(i));
}
}
//根据相应的相关度进行排序
package sort;
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.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
public class Score {
IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
writer.setUseCompoundFile(false);
//构建8个文档, 并且添加Field
Document doc1 = new Document();
Document doc2 = new Document();
Document doc3 = new Document();
Document doc4 = new Document();
Document doc5 = new Document();
Document doc6 = new Document();
Document doc7 = new Document();
Document doc8 = new Document();
Field f1 = new Field("bookname", "ab", Field.Store.YES, Field.Index.ANALYZED);
Field f2 = new Field("bookname", "ab bc cd", Field.Store.YES, Field.Index.ANALYZED);
Field f3 = new Field("bookname", "ab bc cd de", Field.Store.YES, Field.Index.ANALYZED);
Field f4 = new Field("bookname", "ab bc cd de ef ", Field.Store.YES, Field.Index.ANALYZED);
Field f5 = new Field("bookname", "ab bc cd de ef fg ", Field.Store.YES, Field.Index.ANALYZED);
Field f6 = new Field("bookname", "ab bc de", Field.Store.YES, Field.Index.ANALYZED);
Field f7 = new Field("bookname", "ab bc de ef fg gh hi", Field.Store.YES, Field.Index.ANALYZED);
Field f8 = new Field("bookname", "ab cd", Field.Store.YES, Field.Index.ANALYZED);
doc1.add(f1);
doc2.add(f2);
doc3.add(f3);
doc4.add(f4);
doc5.add(f5);
doc6.add(f6);
doc7.add(f7);
doc8.add(f8);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.addDocument(doc4);
writer.addDocument(doc5);
writer.addDocument(doc6);
writer.addDocument(doc7);
writer.addDocument(doc8);
writer.close();
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
TermQuery q = new TermQuery(new Term("bookname", "bc"));
//自然排序
Hits hits = searcher.search(q);
for(int i = 0; i < hits.length(); ++i){
Document doc = hits.doc(i);
System.out.println(doc.get("bookname") + "\t\t");
System.out.println(hits.score(i));
}
}
0 0
- 使用Score对文档进行排序
- Lucene中使用Score进行自然排序
- Lucene使用Sort方法对文档进行排序
- 对搜索的文档进行排序
- Linq:对XML文档进行排序操作
- 使用jsoup对html文档进行解析
- 使用dom对html文档进行解析
- 使用XPathExpression类对XML进行排序
- 使用XPathExpression类对XML进行排序
- 使用Comparator对ArrayList进行排序
- 使用XPathExpression类对XML进行排序
- 使用XPathExpression类对XML进行排序
- 使用Collections对list进行排序
- 使用sort方法对数组进行排序
- 使用vim对数据进行排序
- 使用Collections.sort对集合进行排序。
- 使用PLSQL对字符串进行排序
- 使用Comparator接口对List进行排序
- 我们之间的关系有多脆弱呢,我只要关掉电脑关掉手机,可能你这辈子就再也不会联系到我了。
- *** Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:], /Source
- LeetCode Solutions : Sort List
- 定义的按钮类继承CBUTTON类修改光标显示时不能够正常的修改
- IOS开发之自定义键盘
- 使用Score对文档进行排序
- 济南得了失眠如何治
- 杭电——4391
- x$ kernel service & cache table tips
- VBA中Dictionary对象使用小结
- 每天的不同
- 心理学专家曾说过男孩摸女孩的头发百分之八十是喜欢这个女孩,女孩抓男孩的衣袖百分之八十是喜欢这个男孩。你们觉得呢?「转」
- 通过一个可执行文件被执行的过程理解进程的深刻性
- Linux软件安装