summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java
diff options
context:
space:
mode:
authoradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
committeradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
commit7d544d6b11dc6494170c293e6897ed6d72612d06 (patch)
tree18f24b6d896fcf0c8cfa5a6a041df082dd7672f3 /branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java
parentb4f758f88e8c97be870ba86080d7f0adb6dafb65 (diff)
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
Diffstat (limited to 'branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java')
-rw-r--r--branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java209
1 files changed, 132 insertions, 77 deletions
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;
}
}