Lucene查询优化

来源:互联网 发布:json解析代码 编辑:程序博客网 时间:2024/06/16 05:57

Lucene索引优化

/** *  * 索引优化... * @author Administrator * */public class TestOptimise {/** * @param args * @throws IOException  */public static void main(String[] args) throws IOException {Directory directory=FSDirectory.open(new File("e:/news/indexDIR"));IndexWriterConfig indexWriterConfig=new IndexWriterConfig(Version.LUCENE_44, LuceneUtils.getAnalyzer());LogMergePolicy  mergePolicy=new LogDocMergePolicy();/** * 当值越小,运用更少的内存建立索引,搜索的时候越快,创建的时候越慢, * 当值越大,运用更多的内存建立索引,搜索的时候越慢,创建的时候越快.... *  * 大值:大于10 * 小值 :大于2 ,小于10  。。 *  */mergePolicy.setMergeFactor(8);//设置索引文件的合并策略...indexWriterConfig.setMergePolicy(mergePolicy);IndexWriter indexWriter=new IndexWriter(directory, indexWriterConfig);}@Testpublic void testSearcher() throws IOException{//索引在硬盘上面存放的 位置...Directory directory=FSDirectory.open(new File("d:/indexDir"));//通过此对象将directory(存放在硬盘上的索引)读取到rmdDirectory(内存当中来...)IOContext context=new IOContext();///索引在内存中存放Directory  rmdDirectory=new RAMDirectory(directory,context);IndexReader indexReader=DirectoryReader.open(rmdDirectory);IndexSearcher indexSearcher=new IndexSearcher(indexReader);///author 是StringFiled 没有被分词。//新浪,新,浪Query query=new TermQuery(new Term("author","新浪微博"));TopDocs topDocs=indexSearcher.search(query, 50);System.out.println(topDocs.totalHits);}}


0 0
原创粉丝点击