永发信息网

求使用lucene 3.5的一个索引实例,网上找了很多代码,都是挺老的了,

答案:1  悬赏:10  手机版
解决时间 2021-01-21 10:07
求使用lucene 3.5的一个索引实例,网上找了很多代码,都是挺老的了,
最佳答案
为什么不去看直接给的example呢,官方源码里自带的test写得很全,这边给你贴一个吧
package org.apache.lucene;



import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;


public class TestDemo extends LuceneTestCase {

public void testDemo() throws IOException, ParseException {
Analyzer analyzer = new MockAnalyzer(random);

// Store the index in memory:
Directory directory = newDirectory();
// To store an index on disk, use this instead:
//Directory directory = FSDirectory.open("/tmp/testindex");
RandomIndexWriter iwriter = new RandomIndexWriter(random, directory, analyzer);
iwriter.w.setInfoStream(VERBOSE ? System.out : null);
Document doc = new Document();
String text = "This is the text to be indexed.";
doc.add(newField("fieldname", text, Field.Store.YES,
Field.Index.ANALYZED));
iwriter.addDocument(doc);
iwriter.close();

// Now search the index:
IndexReader ireader = IndexReader.open(directory); // read-only=true
IndexSearcher isearcher = new IndexSearcher(ireader);
// Parse a simple query that searches for "text":
QueryParser parser = new QueryParser(TEST_VERSION_CURRENT, "fieldname", analyzer);
Query query = parser.parse("text");
TopDocs hits = isearcher.search(query, null, 1);
assertEquals(1, hits.totalHits);
// Iterate through the results:
for (int i = 0; i < hits.scoreDocs.length; i++) {
Document hitDoc = isearcher.doc(hits.scoreDocs[i].doc);
assertEquals("This is the text to be indexed.", hitDoc.get("fieldname"));
}

// Test simple phrase query
query = parser.parse("\"to be\"");
assertEquals(1, isearcher.search(query, null, 1).totalHits);

isearcher.close();
ireader.close();
directory.close();
}
}追问谢谢,还有个问题
FileInputStream fis=new FileInputStream(afile);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
String text = bufferedReader.readLine();
System.out.println(text);
//1.自己写的txt,这边输出乱码,是文件编码问题吗,我下了转换器,转成UTF-8也不行 
那个,可以加QQ吗?962889483,谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
做了挂名企业法人代表想撤销要具体怎么做?合
ahc水乳好还是后的水
请问长虹CHD29168二次不开机
成化甜白釉暗刻龙凤杯多少钱
上海嘉定话 “我们”怎么说,还有嘉定只有一
床头朝西南可以吗?
一个瓶子容量是480毫升,它的1/4是另一个
小闫掏鸟窝作文是哪张试卷的
下列说法正确的是A.NaCl溶液能导电,它是电解
网球 二发上旋怎么练
为什么二战法国死的人数这么少?才区区57万,
淼歌热雾洗碗机的 专利是什么专利?
刘亦菲这穿的是什么鬼
胡适的儿子是谁
分子胶体粒子胶体的 区别
推荐资讯
服务器 (lmgrd) 尚未启动,或者 UGS_LICENSE_
电镀硬铬为什么不亮
计算:|-3|++(1-)0.
信任感极度缺失(之前发生过很不愉快的事,导
8月1日00:15分的航班是否是2号起飞
显卡GTX650 4g内存 9万跑分 能吃鸡吗 ?
东芝2505打印机扫描功能怎么用?在电脑安装后
雨落在水里和落在地面有什么区别,落在水里会
z232次列车1 5车38号靠窗户吗
灌浆料多少钱一吨?一立方多少用量
船舶的船旗国与登记国有什么区别
如图是电工常用的胶把钢丝钳,下列说法中错误
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?