永发信息网

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

答案:1  悬赏:10  手机版
解决时间 2021-01-21 10:07
  • 提问者网友:末路
  • 2021-01-20 09:58
求使用lucene 3.5的一个索引实例,网上找了很多代码,都是挺老的了,
最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-01-20 10:58
为什么不去看直接给的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,谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯