lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fisheye <des...@gmx.ch>
Subject Re: highlighting - fuzzy search
Date Tue, 04 Apr 2006 13:10:06 GMT

Ok, thanks Erik. So probably my code may explain it:

-------------------------------------------------------------------------------------------------------------------------------

    public void searchQuery(String q, float rel, String indexDir){
    	
    	String excerpt = "";
    	
        try{
        	
          Searcher searcher = new IndexSearcher(indexDir);
          Analyzer analyzer = new StandardAnalyzer();
          
          Term searchTerm = new Term("text", q);
          FuzzyQuery fuzzyQuery = new FuzzyQuery(searchTerm, rel/100);

	    	System.out.println("Searching for: " + q);
	    	
	    	Hits hits = searcher.search(fuzzyQuery);
	    	System.out.println(hits.length() + " total matching documents");
	    	
	    	for (int i = 0; i < hits.length(); i++){
		    		  
			    	    Document doc = hits.doc(i);
			    	    String path = doc.get("path");
			    	    
			    	    SearchTextHighlighter processText = 
			    	    	new SearchTextHighlighter();
			    	    
//			    	    excerpt = 
//			    	    	processText.getExcerpt(doc.get("text"), q, fuzzyQuery);
			    	    
			    	    if (path != null){
			    	    	
			                  System.out.println(i + ".-------");
			                  System.out.println("  Path:    " + path);
			                  System.out.println("  Score:   " + hits.score(i));
			                  System.out.println("  DocID:   " + doc.get("docID"));
			                  System.out.println("  Snippet: " + excerpt);
			                  System.out.println();
			                  
			    	    }else{
			    	    	
			                  String url = doc.get("url");
			                  
			                  if (url != null){
			                	  
						    		System.out.println(i + ". " + url);
						    		System.out.println("   - " + doc.get("title"));
						    		System.out.println("Score: " + hits.score(i));
						    		
			                  }else{
			                	  
			                	  	System.out.println(i + 
			                	  			". " + "No path nor URL for this document");
			                  }
			    	    }
	    	}
          
          searcher.close();

        }catch (Exception e){
        	
        	e.printStackTrace();
        }
      }

-------------------------------------------------------------------------------------------------------------------------------

Method getExcerpt does the following:

-------------------------------------------------------------------------------------------------------------------------------

  public String getExcerpt(String textToCompute, String queryText, Query
query) {

    String excerpt = "";
    String vTemp = "";
    Analyzer analyzer = new StandardAnalyzer();
    Highlighter highlighter = new Highlighter(new QueryScorer(query));

    if(textToCompute != null ){

      TokenStream tokenStream = analyzer.tokenStream("text",
            new StringReader(textToCompute));

      try {

        vTemp = highlighter.getBestFragment(tokenStream, textToCompute);
        excerpt = vTemp.replaceAll("" + queryText + "", queryText);
      }
      catch (IOException ex) {

        
      }
    }

    return excerpt;
  }

-------------------------------------------------------------------------------------------------------------------------------
--
View this message in context: http://www.nabble.com/highlighting---fuzzy-search-t1392775.html#a3743994
Sent from the Lucene - Java Users forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message