Return-Path: X-Original-To: apmail-lucene-java-user-archive@www.apache.org Delivered-To: apmail-lucene-java-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 96FD7956B for ; Mon, 19 Mar 2012 10:28:22 +0000 (UTC) Received: (qmail 25423 invoked by uid 500); 19 Mar 2012 10:28:20 -0000 Delivered-To: apmail-lucene-java-user-archive@lucene.apache.org Received: (qmail 25375 invoked by uid 500); 19 Mar 2012 10:28:20 -0000 Mailing-List: contact java-user-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-user@lucene.apache.org Delivered-To: mailing list java-user@lucene.apache.org Received: (qmail 25363 invoked by uid 99); 19 Mar 2012 10:28:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 10:28:20 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,SPF_NEUTRAL,URI_HEX,WEIRD_QUOTING X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: 216.139.236.26 is neither permitted nor denied by domain of neerajshah84@gmail.com) Received: from [216.139.236.26] (HELO sam.nabble.com) (216.139.236.26) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 10:28:13 +0000 Received: from ben.nabble.com ([192.168.236.152]) by sam.nabble.com with esmtp (Exim 4.72) (envelope-from ) id 1S9Zof-0007Ir-2O for java-user@lucene.apache.org; Mon, 19 Mar 2012 03:27:53 -0700 Date: Mon, 19 Mar 2012 03:27:53 -0700 (PDT) From: neerajshah84 To: java-user@lucene.apache.org Message-ID: <1332152873064-3838657.post@n3.nabble.com> Subject: How to display result like google like display text with search result? MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org im using lucene2.9 and i need display search result like filename,filepath,textContent.. this text content highlight the matched string. When click on the search result ,it will go to the exact file and and the exact line. i tried to do it but my index size is very huge around 250MB, i think im doing something wrong in indexing. can you guide me. here is my code :- ----------------------- InputStream is = new BufferedInputStream(new FileInputStream(file)); BufferedReader bufr = new BufferedReader(new InputStreamReader(is)); String inputLine="",newLine=""; while((inputLine=bufr.readLine())!=null ){ newLine = newLine+"\n"+inputLine; } Document doc = new Document(); doc.add(new Field("contents",s,Field.Store.COMPRESS,Field.Index.ANALYZED)); doc.add(new Field("filepath",file.getCanonicalPath(),Field.Store.YES,Field.Index.NOT_ANALYZED)); doc.add(new Field("title",file.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED)); writer.addDocument(doc); -------------------------------------------------- IndexReader reader = IndexReader.open(FSDirectory.open(new File("file location")), true); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); Searcher searcher = new IndexSearcher(reader); QueryParser parser = new QueryParser("contents", analyzer); Query query = parser.parse(searchString); Hits hits = searcher.search(query, new Sort("filepath")); QueryScorer scorer = new QueryScorer(query, "contents"); Highlighter highlighter = new Highlighter(scorer); Fragmenter fragmenter = new SimpleSpanFragmenter(scorer); for (int i = 0; i < hits.length(); i++) { Document doc = hits.doc(i); String storedField = doc.get("contents"); TokenStream stream = TokenSources.getTokenStream("contents",storedField, analyzer); highlighter.setTextFragmenter(fragmenter); String[] fragments = highlighter.getBestFragments(stream, storedField,20); for(int j=0;j