package com.lucene.field;
import java.io.IOException;
import org.apache.lucene.document.BinaryDocValuesField;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FloatDocValuesField;
import org.apache.lucene.document.FloatField;
import org.apache.lucene.document.IntField;
import org.apache.lucene.document.LongField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TopFieldDocs;
import org.apache.lucene.util.BytesRef;
import org.junit.Test;
import com.lucene.index.IndexUtil;
import com.lucene.search.SearchUtil;
public class TextFieldTest {
/**
* 保存一个TextField
*/
@Test
public void testIndexLongFieldStored() {
Document document = new Document();
document.add(new TextField("textValue","12345", Field.Store.YES));
document.add(new SortedDocValuesField("textValue", new BytesRef("12345".getBytes())));
Document document1 = new Document();
document1.add(new TextField("textValue","23456", Field.Store.YES));
document1.add(new SortedDocValuesField("textValue", new BytesRef("23456".getBytes())));
IndexWriter writer = null;
try {
writer = IndexUtil.getIndexWriter("textFieldPath", false);
writer.addDocument(document);
writer.addDocument(document1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
writer.commit();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 测试TextField排序
*/
@Test
public void testTextFieldSort(){
try {
IndexSearcher searcher = SearchUtil.getIndexSearcher("textFieldPath", null);
//构建排序字段
SortField[] sortField = new SortField[1];
sortField[0] = new SortField("textValue",SortField.Type.STRING,true);
Sort sort = new Sort(sortField);
//查询所有结果
Query query = new MatchAllDocsQuery();
TopFieldDocs docs = searcher.search(query, 2, sort);
ScoreDoc[] scores = docs.scoreDocs;
//遍历结果
for (ScoreDoc scoreDoc : scores) {
//System.out.println(searcher.doc(scoreDoc.doc));;
Document doc = searcher.doc(scoreDoc.doc);
System.out.println(doc);
//System.out.println(doc.getField("binaryValue").numericValue());
}
//searcher.search(query, results);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
一步一步跟我学习Lucene源码之lucene的各种Field
需积分: 23 139 浏览量
2015-05-06
22:33:23
上传
评论
收藏 3.98MB RAR 举报
javageekcoder
- 粉丝: 225
- 资源: 29
最新资源
- 基于JAVA-JSP的现代数字化电子政务网管理系统论文-20240403更新
- 西部钻探工程有限公司安全环保问责管理办法.doc
- Using Model-Based Design to Develop SOA Applications
- PHP Decrypt跨平台解密PHP源码的扩展
- SimHei MAC字体资源
- 2024全国行政区域编码
- 数据源-数据可视化(七):Pandas香港酒店数据高级分析,涉及相关系数,协方差,数据离散化,透视表等精美可视化展示
- linux常用命令大全.doc
- 格拉斯哥大学空缺职位申请详细介绍Applicant Guide.pdf
- mmexport1702953347189.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈