lucene的基本查询及lucene3.0.1API

lucene 3.0.1 api
http://lucene.apache.org/core/old_versioned_docs/versions/3_0_1/api/core/overview-summary.html


package
com.tianditu.searchDemo; import java.io.File; import org.apache.lucene.analysis.KeywordAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; public class SearchDemo { public static void main(String[] args){ try {
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
            Directory directory = FSDirectory.open(new File("D:/indexes/part-00000"));
            IndexSearcher isearcher = new IndexSearcher(directory, true);
            QueryParser parser = new QueryParser(Version.LUCENE_30,
                    "content", analyzer);
            Query query = parser.parse("建管机构");
            
            ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
            for (int i = 0; i < hits.length; i++) {
              Document hitDoc = isearcher.doc(hits[i].doc);
              System.out.println(hitDoc.get("title"));
              System.out.println(hitDoc.get("url"));
            }
            System.out.println(hits.length);
            isearcher.close();
            directory.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
} }
带编辑距离的查询
//
===========建立按字分词的Span为0的顺序Query============ char[] arrChars = strQuery.toCharArray(); int iCount = arrChars.length; char[] arrTerm = new char[1]; ArrayList<SpanQuery> listGroupQuery = new ArrayList<SpanQuery>(); for( int i = 0; i < iCount; i++){ // 去掉空格 if(arrChars[i] == ' ') continue; arrTerm[0] = arrChars[i]; SpanTermQuery termQuery = new SpanTermQuery(new Term(strField, new String(arrTerm))); listGroupQuery.add(termQuery); } SpanNearQuery suggestQuery = new SpanNearQuery(listGroupQuery.toArray(new SpanQuery[0]), 0, true); //==================================================== return suggestQuery;
原文地址:https://www.cnblogs.com/i80386/p/2937194.html