public OntologyHits searchByParentName(String parentName, Sort sort) throws IOException { return new OntologyHits(search(new TermQuery(new Term(FieldName.PARENT_NAME, parentName)), sort)); } }
public LazyLoadedOntologyTerm(OntologyIndexSearcher searcher, String id) { this.searcher = searcher; this.id = id; try { final OntologyHits ontologyHits = searcher.searchByParentId(id); if (ontologyHits.length() > 0) { final OntologyDocument document = ontologyHits.doc(0); this.name = document.getParentName(); this.parentSynonyms = document.getParentSynonyms(); } } catch (IOException e) { throw new IllegalArgumentException("Problem loading name for term: "+id, e); } }
private List<OntologyTerm> processParentsHits(OntologyHits ontologyHits, String id) throws IOException { List<OntologyTerm> terms = new ArrayList<OntologyTerm>(); List<String> processedIds = new ArrayList<String>(); processedIds.add(id); for (int i=0; i<ontologyHits.length(); i++) { final OntologyDocument document = ontologyHits.doc(i); if (document.getParentId() != null && !processedIds.contains(document.getParentId())) { terms.add(newInternalOntologyTerm(searcher, document.getParentId(), document.getParentName(), document.getParentSynonyms())); processedIds.add(document.getParentId()); } } return terms; }
private List<OntologyTerm> processChildrenHits(OntologyHits ontologyHits, String id) throws IOException { List<OntologyTerm> terms = new ArrayList<OntologyTerm>(); List<String> processedIds = new ArrayList<String>(); processedIds.add(id); for (int i=0; i<ontologyHits.length(); i++) { final OntologyDocument document = ontologyHits.doc(i); if (document.getChildId() != null && !processedIds.contains(document.getChildId())) { terms.add(newInternalOntologyTerm(searcher, document.getChildId(), document.getChildName(), document.getChildSynonyms())); processedIds.add(document.getParentId()); } } return terms; }
public OntologyHits searchByChildName(String childName, Sort sort) throws IOException { return new OntologyHits(search(new TermQuery(new Term(FieldName.CHILDREN_NAME, childName)), sort)); }
public OntologyHits searchByParentId(String parentId, Sort sort) throws IOException { return new OntologyHits(search(new TermQuery(new Term(FieldName.PARENT_ID, parentId)), sort)); }
public OntologyHits searchByChildId(String childId, Sort sort) throws IOException { return new OntologyHits(search(new TermQuery(new Term(FieldName.CHILDREN_ID, childId)), sort)); }
private OntologyHits searchQuery(String idFieldName, boolean includeCyclic) throws IOException { BooleanQuery query = new BooleanQuery(); query.add(new TermQuery(new Term(idFieldName, id)), BooleanClause.Occur.MUST); query.add(new TermQuery(new Term(FieldName.RELATIONSHIP_CYCLIC, String.valueOf(includeCyclic))), BooleanClause.Occur.MUST); query.add(new TermQuery(new Term(FieldName.RELATIONSHIP_TYPE, "OBO_REL:is_a")), BooleanClause.Occur.MUST); if (!includeCyclic) { query.add(new TermQuery(new Term(FieldName.RELATIONSHIP_TYPE, "disjoint_from")), BooleanClause.Occur.MUST_NOT); } final Hits hits = searcher.search(query, new Sort(FieldName.CHILDREN_NAME_SORTABLE)); final OntologyHits ontologyHits = new OntologyHits(hits); return ontologyHits; }