From 7d544d6b11dc6494170c293e6897ed6d72612d06 Mon Sep 17 00:00:00 2001 From: adrianocrestani Date: Sun, 5 Jul 2009 07:04:56 +0000 Subject: applying patch tuscany_2552_phillipe_ramalho_07_04_2009.patch.txt from TUSCANY-2552 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@791203 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/domain/search/impl/DomainSearchImpl.java | 209 +++++++++++++-------- 1 file changed, 132 insertions(+), 77 deletions(-) (limited to 'branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java') diff --git a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java index 56b375685b..332bd249e1 100644 --- a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java +++ b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java @@ -1,8 +1,6 @@ package org.apache.tuscany.sca.domain.search.impl; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.util.List; import org.apache.lucene.analysis.Analyzer; @@ -21,91 +19,65 @@ import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.service.ContributionRepository; import org.apache.tuscany.sca.domain.search.DocumentMap; import org.apache.tuscany.sca.domain.search.DomainSearch; +import org.apache.tuscany.sca.domain.search.Result; import org.osoa.sca.annotations.AllowsPassByReference; +import org.osoa.sca.annotations.Scope; +@Scope("COMPOSITE") public class DomainSearchImpl implements DomainSearch { + private Directory dir = new RAMDirectory(); + + private Analyzer analyzer = new DomainSearchAnalyzer(); + + public DomainSearchImpl() { + // empty constructor + } + @AllowsPassByReference public void contributionAdded(ContributionRepository repository, Contribution contribution) { System.out.println("contributionAdded:"); System.out.println(repository); System.out.println(contribution); - + try { - Directory dir = new RAMDirectory(); - Analyzer analyzer = new DomainSearchAnalyzer(); - IndexWriter indexWriter = new IndexWriter(dir, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); - DomainSearchDocumentProcessorsMap docProcessors = new DomainSearchDocumentProcessorsMap(); - DocumentMap docs = new DocumentMap(); - - docProcessors.process(docProcessors, docs, contribution, null, ""); - - for (Document doc : docs.values()) { - indexWriter.addDocument(doc.createLuceneDocument()); - } - - indexWriter.close(); - - final IndexSearcher searcher = new IndexSearcher(dir); - BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); - QueryParser qp = new QueryParser("", analyzer); - - qp.setAllowLeadingWildcard(true); - - while (true) { - System.out.print("query: "); - String queryString = consoleReader.readLine(); - - if (queryString.equals("exit")) { - break; - } - + IndexWriter indexWriter = new IndexWriter(dir, analyzer, + IndexWriter.MaxFieldLength.UNLIMITED); + + try { + DomainSearchDocumentProcessorsMap docProcessors = new DomainSearchDocumentProcessorsMap(); + DocumentMap docs = new DocumentMap(); + try { - Query query = qp.parse(queryString); - - searcher.search(query, new HitCollector() { - - @Override - public void collect(int doc, float score) { - try { - org.apache.lucene.document.Document document = searcher.doc(doc); - List fields = document.getFields(); - System.out.println("---------"); - System.out.println("doc = " + doc); - - for (Object obj : fields) { - Field field = (Field) obj; - String[] values = document.getValues(field.name()); - System.out.println(field); - - for (String value : values) { - System.out.println("\t" + value); - } - - } - - } catch (CorruptIndexException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - }); - - } catch (ParseException e) { - System.out.println(e.getMessage()); + docProcessors.process(docProcessors, docs, contribution, null, ""); + } catch (Exception e) { + e.printStackTrace(); } - - System.out.println(); - + + for (Document doc : docs.values()) { + indexWriter.addDocument(doc.createLuceneDocument()); + } + + } finally { + indexWriter.close(); } - - - + + // BufferedReader consoleReader = new BufferedReader( + // new InputStreamReader(System.in)); + // + // while (true) { + // System.out.print("query: "); + // String queryString = consoleReader.readLine(); + // + // if (queryString.equals("exit")) { + // break; + // } + // + // parseAndSearch(queryString, false); + // + // } + } catch (CorruptIndexException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -116,7 +88,7 @@ public class DomainSearchImpl implements DomainSearch { // TODO Auto-generated catch block e.printStackTrace(); } - + } public void contributionRemoved(ContributionRepository repository, @@ -124,17 +96,100 @@ public class DomainSearchImpl implements DomainSearch { System.out.println("contributionRemoved:"); System.out.println(repository); System.out.println(contribution); - + } public void contributionUpdated(ContributionRepository repository, Contribution oldContribution, Contribution contribution) { - + System.out.println("contributionUpdated:"); System.out.println(repository); System.out.println(oldContribution); System.out.println(contribution); - + + } + + @SuppressWarnings("deprecation") + public Result[] parseAndSearch(String searchQuery, boolean highlight) { + + try { + final IndexSearcher searcher = new IndexSearcher(dir); + final DomainSearchResultProcessor resultProcessor = new DomainSearchResultProcessor( + new DomainSearchResultFactory()); + + QueryParser qp = new QueryParser("", analyzer); + + qp.setAllowLeadingWildcard(true); + + try { + final Query query = qp.parse(searchQuery); + + searcher.search(query, new HitCollector() { + + @Override + public void collect(int doc, float score) { + try { + org.apache.lucene.document.Document document = searcher + .doc(doc); + + resultProcessor.process(document, query, null); + + List fields = document.getFields(); + System.out.println("---------"); + System.out.println("doc = " + doc); + + for (Object obj : fields) { + Field field = (Field) obj; + String[] values = document.getValues(field + .name()); + System.out.println(field); + + for (String value : values) { + System.out.println("\t" + value); + } + + } + + } catch (CorruptIndexException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + }); + + } catch (ParseException e) { + System.out.println(e.getMessage()); + } + + Result[] results = resultProcessor.getResultRoots(); + + // for (Result result : results) { + // System.out.println(result); + // } + + System.out.println(); + + return results; + + } catch (CorruptIndexException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + return null; + + } + + public Result[] search(Query searchQuery, boolean hightlight) { + // TODO Auto-generated method stub + return null; } } -- cgit v1.2.3