zoukankan      html  css  js  c++  java
  • 代码片段,lucene基本操作(基于lucene4.10.2)

    1.最基本的创建索引:

    @Test
        public void testIndex(){ 
            try { 
                Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY)); 
                IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer())); 
                Document document = new Document(); 
                TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES); 
                document.add(titleFiled); 
                indexWriter.addDocument(document); 
                indexWriter.commit(); 
                indexWriter.close(); 
            } catch (Exception e) { 
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates. 
            } 
        }

     

     

    2.使用FieldType创建索引

     

    //使用FieldType创建Field(4.X之后才有) 
        @Test
        public  void testCreateIndexUseFieldType(){ 
            try { 
                Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY)); 
                IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer())); 
                Document document = new Document(); 
                FieldType titleType = new FieldType(); 
                titleType.setIndexed(true);//索引选项 
                titleType.setStored(true); //存储选项 
                Field field = new Field("title","下班",titleType); 
                TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES); 
                document.add(titleFiled); 
                document.add(field); 
                indexWriter.addDocument(document); 
                indexWriter.commit(); 
                indexWriter.close(); 
            } catch (Exception e) { 
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates. 
            } 
        }

      

    搜索示例:

    /** 
        * 搜索示例 
        */
       @Test
       public void  testQuery(){ 
           try { 
               IndexReader indexReader = DirectoryReader.open(FSDirectory.open(new File(LUCENE_DIRECTORY))); 
               IndexSearcher searcher = new IndexSearcher(indexReader); 
               QueryParser queryParser = new QueryParser("title",new StandardAnalyzer()); 
               Query query = queryParser.parse("下班"); 
               ScoreDoc[] docs = searcher.search(query,20).scoreDocs; //命中的数组 
               for(ScoreDoc sd:docs){ 
                   int docNumber = sd.doc; 
                   System.out.println("文档号: "+docNumber); 
                   Document doc = searcher.doc(docNumber);//根据文档号来查询文档 
                   System.out.println(doc.get("name")); 
               } 
      
           } catch (Exception e) { 
               e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates. 
           } 
       }

     

  • 相关阅读:
    word转HTML并使用于浏览器界面
    配置wampserver出现服务器错误问题
    SVN使用及配置pycharm、本地Linux虚拟机教程
    加载本地json文件,调试出现 Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.解决方法
    转载:有关Html中<a>、<link>和<script>标签中相对路径与绝对路径的问题总结
    asp.net 登出设置
    Maven依赖中的scope详解
    什么情况下用resultType和 resultMap
    修改tomcat默认端口号8080
    SpringMVC
  • 原文地址:https://www.cnblogs.com/jiaoyiping/p/4152164.html
Copyright © 2011-2022 走看看