/** * Used to exclude any document that does not have an "is_a" relationship or it is not a root node * (null relationship) or it is cyclic. * @param ontologyDocument * @return */ public boolean accept(OntologyDocument ontologyDocument) { if (ontologyDocument.getRelationshipType() == null) { return true; } final String type = ontologyDocument.getRelationshipType(); // note that the types are ordered by decreasing likelyhood of appearence to improve performance return ( type.equals( "OBO_REL:is_a" ) || type.equals( "part_of" ) || type.equals( "is_a" ) || type.equals( "OBO_REL:part_of" ) ) && ! ontologyDocument.isCyclicRelationship(); } }
/** * Used to exclude any document that does not have an "is_a" relationship or it is not a root node * (null relationship) or it is cyclic. * @param ontologyDocument * @return */ public boolean accept(OntologyDocument ontologyDocument) { if (ontologyDocument.getRelationshipType() == null) { return true; } final String type = ontologyDocument.getRelationshipType(); // note that the types are ordered by decreasing likelyhood of appearence to improve performance return ( type.equals( "OBO_REL:is_a" ) || type.equals( "part_of" ) || type.equals( "is_a" ) || type.equals( "OBO_REL:part_of" ) ) && ! ontologyDocument.isCyclicRelationship(); } }
public void addDocument(OntologyDocument ontologyDoc) throws IOException { Document doc = new Document(); doc.add(new Field(FieldName.ONTOLOGY, ontologyDoc.getOntology(), Field.Store.YES, Field.Index.UN_TOKENIZED)); if (ontologyDoc.getParentId() != null) { doc.add(new Field(FieldName.PARENT_ID, ontologyDoc.getParentId(), Field.Store.YES, Field.Index.UN_TOKENIZED)); doc.add(new Field(FieldName.PARENT_NAME, ontologyDoc.getParentName(), Field.Store.YES, Field.Index.TOKENIZED)); doc.add(new Field(FieldName.PARENT_NAME_SORTABLE, ontologyDoc.getParentName(), Field.Store.YES, Field.Index.UN_TOKENIZED)); } if (ontologyDoc.getChildId() != null) { doc.add(new Field(FieldName.CHILDREN_ID, ontologyDoc.getChildId(), Field.Store.YES, Field.Index.UN_TOKENIZED)); doc.add(new Field(FieldName.CHILDREN_NAME, ontologyDoc.getChildName(), Field.Store.YES, Field.Index.TOKENIZED)); doc.add(new Field(FieldName.CHILDREN_NAME_SORTABLE, ontologyDoc.getChildName(), Field.Store.YES, Field.Index.UN_TOKENIZED)); } if (ontologyDoc.getRelationshipType() != null) { doc.add(new Field(FieldName.RELATIONSHIP_TYPE, ontologyDoc.getRelationshipType(), Field.Store.YES, Field.Index.UN_TOKENIZED)); } doc.add(new Field(FieldName.RELATIONSHIP_CYCLIC, String.valueOf(ontologyDoc.isCyclicRelationship()), Field.Store.YES, Field.Index.UN_TOKENIZED)); doc.add(new Field(FieldName.PARENT_SYNONYMS, StringUtils.join(ontologyDoc.getParentSynonyms(), SYNONYM_SEPARATOR), Field.Store.YES, Field.Index.UN_TOKENIZED)); doc.add(new Field(FieldName.CHILDREN_SYNONYMS, StringUtils.join(ontologyDoc.getChildSynonyms(), SYNONYM_SEPARATOR), Field.Store.YES, Field.Index.UN_TOKENIZED)); this.indexWriter.addDocument(doc); }
private SolrInputDocument createSolrInputDocument(OntologyDocument ontologyDocument) { SolrInputDocument doc = new SolrInputDocument(); String uniqueKey = ontologyDocument.getOntology() + "_" + ontologyDocument.getParentId() + "_" + ontologyDocument.getChildId() + "_" + ontologyDocument.getRelationshipType(); addField(doc, OntologyFieldNames.ID, uniqueKey, false); addField(doc, OntologyFieldNames.ONTOLOGY, ontologyDocument.getOntology(), false); addField(doc, OntologyFieldNames.PARENT_ID, ontologyDocument.getParentId(), false); addField(doc, OntologyFieldNames.PARENT_NAME, ontologyDocument.getParentName(), true); addField(doc, OntologyFieldNames.CHILD_ID, ontologyDocument.getChildId(), false); addField(doc, OntologyFieldNames.CHILD_NAME, ontologyDocument.getChildName(), true); addField(doc, OntologyFieldNames.RELATIONSHIP_TYPE, ontologyDocument.getRelationshipType(), false); addField(doc, OntologyFieldNames.CYCLIC, ontologyDocument.isCyclicRelationship(), false); for (String synonym : ontologyDocument.getParentSynonyms()) { addField(doc, OntologyFieldNames.PARENT_SYNONYMS, synonym, false); } for (String synonym : ontologyDocument.getChildSynonyms()) { addField(doc, OntologyFieldNames.CHILDREN_SYNONYMS, synonym, false); } return doc; }
private SolrInputDocument createSolrInputDocument(OntologyDocument ontologyDocument) { SolrInputDocument doc = new SolrInputDocument(); String uniqueKey = ontologyDocument.getOntology() + "_" + ontologyDocument.getParentId() + "_" + ontologyDocument.getChildId() + "_" + ontologyDocument.getRelationshipType(); addField(doc, OntologyFieldNames.ID, uniqueKey, false); addField(doc, OntologyFieldNames.ONTOLOGY, ontologyDocument.getOntology(), false); addField(doc, OntologyFieldNames.PARENT_ID, ontologyDocument.getParentId(), false); addField(doc, OntologyFieldNames.PARENT_NAME, ontologyDocument.getParentName(), true); addField(doc, OntologyFieldNames.CHILD_ID, ontologyDocument.getChildId(), false); addField(doc, OntologyFieldNames.CHILD_NAME, ontologyDocument.getChildName(), true); //addField(doc, OntologyFieldNames.RELATIONSHIP_TYPE, ontologyDocument.getRelationshipType(), false); //addField(doc, OntologyFieldNames.CYCLIC, ontologyDocument.isCyclicRelationship(), false); for (String synonym : ontologyDocument.getParentSynonyms()) { addField(doc, OntologyFieldNames.PARENT_SYNONYMS, synonym, false); } for (String synonym : ontologyDocument.getChildSynonyms()) { addField(doc, OntologyFieldNames.CHILDREN_SYNONYMS, synonym, false); } return doc; }