zoukankan      html  css  js  c++  java
  • lucene:索引 -不分词

    package com.capinfotech.faq.classifier;
    import java.util.*;
    import java.io.File;
    import java.io.IOException;
    
    import org.apache.lucene.document.Field;
    import org.apache.lucene.document.Field.Index;
    import org.apache.lucene.document.Document;
    import org.apache.lucene.index.CorruptIndexException;
    import org.apache.lucene.index.IndexReader;
    import org.apache.lucene.index.IndexWriter;
    import org.apache.lucene.index.IndexWriterConfig;
    import org.apache.lucene.index.Term;
    import org.apache.lucene.queryParser.QueryParser;
    import org.apache.lucene.search.IndexSearcher;
    import org.apache.lucene.search.ScoreDoc;
    import org.apache.lucene.search.TermQuery;
    import org.apache.lucene.store.FSDirectory;
    import org.apache.lucene.store.LockObtainFailedException;
    import org.apache.lucene.util.Version;
    import org.apache.lucene.analysis.Analyzer;
    import org.apache.lucene.analysis.standard.StandardAnalyzer;
    
    import com.capinfotech.faq.data.Query;
    import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
    public class luceneindex {
        
    	 private static String dest_path="E:/gongzuo/FAQdata/kb/kuaiindex";
         static protected String[] keywords={"4001"};
         static protected String[] contents={"在吗","在不在","有人吗","在线","在没","在线吗","有不有人"," 有人没"," 有人不 在?"};
    
    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    //		File file=new File(dest_path);
    //	    FSDirectory directory=FSDirectory.open(file);
    //		Analyzer textanalyzer=new StandardAnalyzer(Version.LUCENE_36);
    //		IndexWriterConfig cfg = new IndexWriterConfig(Version.LUCENE_36, textanalyzer);	
    //		IndexWriter indexa=new IndexWriter(directory,cfg);
    //	for(int i=0;i<9;i++){
    //			Document doc=new Document();
    //			Field fieldnum=new Field("id",keywords[0],Field.Store.YES,Field.Index.NOT_ANALYZED);
    //			doc.add(fieldnum);
    //			Field fieldcontent=new Field("content",contents[i],Field.Store.YES,Field.Index.NOT_ANALYZED);
    //			doc.add(fieldcontent);
    //			indexa.addDocument(doc);
    //	}
    //		//indexa.optimize();
    //		indexa.close();
    	
    	
    	
    		luceneindex querytest=new luceneindex();
    		querytest.TemqueryTest();
    	}
      public  void TemqueryTest() throws IOException{
    	//    File file=new File("E:/gongzuo/FAQdata/kb/kuaiindex");
    	  File file=new File(dest_path);
    	    FSDirectory directory=FSDirectory.open(file);
    		  IndexReader reader=IndexReader.open(directory);
    		  IndexSearcher search=new IndexSearcher(reader);
    //		  Analyzer textanalyzer=new StandardAnalyzer(Version.LUCENE_36);
    //		 QueryParser parser=new QueryParser(Version.LUCENE_36,"content",textanalyzer);
    //	     Query query=parser.parse("在");
    		  Term t =new Term("content","有人");
    		  TermQuery query=new TermQuery(t);
    		//  ScoreDoc[] docs=search.search(query,10).scoreDocs;
    		  ScoreDoc[] docs=search.search(query,12).scoreDocs;
    		for(int i=0;i<docs.length;i++){   	
    	
    			  String querycontent=search.doc(docs[i].doc).get("content");
    			  String queryid=search.doc(docs[i].doc).get("id");
    			  System.out.println("查询id: "+queryid+"	查询内容: "+querycontent);
    			  System.out.println(docs[i].score);
    			  
    		}
    		  search.close();
      }
    
    }
    


    以上是建立索引以及查询索引的简单例子,当不分词时,检索关键字根据完全匹配搜索

    栋栋
  • 相关阅读:
    夺命雷公狗-----React---12--添加类和样式
    夺命雷公狗-----React---11--添加css样式的方法
    夺命雷公狗-----React---10--组建嵌套进行数据遍历
    夺命雷公狗-----React---9--map数据的遍历
    夺命雷公狗-----React---8--react官方提供的组建实现双向绑定
    夺命雷公狗-----React---7--组建的状态props和state
    夺命雷公狗-----React---6--props多属性的传递
    夺命雷公狗-----React---5--props对象的传递
    夺命雷公狗-----React---4--props变量的传递
    夺命雷公狗-----React---3--标签的规则
  • 原文地址:https://www.cnblogs.com/zhangdongdong/p/3482497.html
Copyright © 2011-2022 走看看