Changeset 12256 for trunk/indexers/lucene-gs
- Timestamp:
- 2006-07-20T09:02:47+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/indexers/lucene-gs/src/org/greenstone/LuceneWrapper/GS2LuceneQuery.java
r12254 r12256 1 /*2 * search.java3 *4 * Created on 25 February 2003, 02:255 */6 7 8 1 /** 9 2 * … … 13 6 */ 14 7 15 import java.io.IOException;16 8 import java.io.BufferedReader; 17 9 import java.io.InputStreamReader; 10 import java.util.HashSet; 11 import java.util.Iterator; 18 12 19 13 import org.apache.lucene.analysis.Analyzer; 20 14 import org.apache.lucene.analysis.standard.StandardAnalyzer; 21 15 import org.apache.lucene.document.Document; 22 import org.apache.lucene.search.Searcher; 16 import org.apache.lucene.index.IndexReader; 17 import org.apache.lucene.index.Term; 18 import org.apache.lucene.queryParser.QueryParser; 19 import org.apache.lucene.search.Hits; 23 20 import org.apache.lucene.search.IndexSearcher; 24 21 import org.apache.lucene.search.Query; 25 import org.apache.lucene.search.Hits; 26 import org.apache.lucene.queryParser.QueryParser; 27 import org.apache.lucene.search.TermQuery; 28 import org.apache.lucene.index.Term; 22 import org.apache.lucene.search.Searcher; 29 23 30 public class GS2LuceneQuery {31 24 32 public static void main (String args[]) { 33 25 public class GS2LuceneQuery 26 { 27 public static void main (String args[]) 28 { 34 29 if (args.length == 0) { 35 30 System.out.println("Usage: GS2LuceneQuery <index directory>"); 36 31 return; 37 32 } 33 38 34 try { 39 35 Searcher searcher = new IndexSearcher(args[0]); 40 36 Analyzer analyzer = new StandardAnalyzer(); 37 IndexReader reader = ((IndexSearcher) searcher).getIndexReader(); 41 38 42 39 BufferedReader in = new BufferedReader(new InputStreamReader(System.in, "UTF-8")); 43 40 while (true) { 44 String line = in.readLine();45 46 if ( line == null) {41 // Read the query from STDIN 42 String query_string = in.readLine(); 43 if (query_string == null || query_string.length() == -1) { 47 44 break; 48 45 } 46 System.err.println("**** query = " + query_string); 49 47 50 if (line.length() == -1) 51 break; 52 48 // Parse the query and rewrite it into individual terms (eg. for wildcard searches) 49 QueryParser query_parser = new QueryParser("TX", analyzer); 50 Query query = query_parser.parse(query_string); 51 query = query.rewrite(reader); 53 52 54 // Term term = new Term("TX",line); 55 // Query query = new TermQuery(term); 56 57 System.err.println("**** query = " + line); 58 59 QueryParser query_parser = new QueryParser("TX", analyzer); 60 Query query = query_parser.parse(line); 61 53 // Perform the query 62 54 Hits hits = searcher.search(query); 63 55 System.out.println("<ResultSet>"); 64 56 System.out.println(" <QueryString>" + query.toString("TX")+"</QueryString>"); 65 System.out.println(" <MatchingDocsInfo num=\""+hits.length()+"\"/>"); 66 67 for (int i=0; i< hits.length(); i++) { 57 58 // Return the list of expanded query terms and their frequencies 59 HashSet terms = new HashSet(); 60 query.extractTerms(terms); 61 Iterator iter = terms.iterator(); 62 while (iter.hasNext()) { 63 Term term = (Term) iter.next(); 64 System.out.println(" <Term freq=\"" + reader.docFreq(term) + "\">" + term.text() + "</Term>"); 65 } 66 67 // Return the matching documents 68 System.out.println(" <MatchingDocsInfo num=\"" + hits.length() + "\"/>"); 69 for (int i = 0; i < hits.length(); i++) { 68 70 Document doc = hits.doc(i); 69 String node_id = doc.get("nodeID");70 System.out.println(" <Match id=\"" +node_id+"\"/>");71 String node_id = doc.get("nodeID"); 72 System.out.println(" <Match id=\"" + node_id + "\"/>"); 71 73 } 74 72 75 System.out.println("</ResultSet>"); 73 74 76 } 75 77 76 78 searcher.close(); 77 79 } 78 catch (Exception e) { 79 System.out.println(" caught a " + e.getClass() + 80 "\n with message: " + e.getMessage()); 80 catch (Exception exception) { 81 exception.printStackTrace(); 81 82 } 82 83 }
Note:
See TracChangeset
for help on using the changeset viewer.