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 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; }
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 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; }