NIH | National Cancer Institute | NCI Wiki  

Error rendering macro 'rw-search'

null

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Table of Contents

Relational Indexing Implementation in Current LexEVS

All Documents have a unique document Id that identifies them as "the same" entity, but the boundary docs provide additional evidence that they are the start and finish of a set of documents all related to the same concept by providing a "CodeBoundary" identifier indicating this is the start or end of the document set for this entity representation.  This effectively flattens the entity to properties relationship by adding all entity information to each property document which includes up to 34 indexed fields and about 9 stored fields.

Proposed Relational Indexing Implementation under Lucene 5.0.0

Lucene provides support for limited relational expression starting with Lucene 3.4.  A single level parent/child relationship can be maintained as a one to many relationship between one document and several others.  This support provides LexEVS with an opportunity to improve index search times and reduce index size.

Relational Querying in Current LexEVS Implementation

 

Relational Querying Using Lucene 5.0.0 BlockJoinQuery

Boundary Docs Related Classes

 

Boundary Docs Related Classes
//This appears to be where a good part of the filtering on boundary docs takes place.  A rethinking and reimplementing of all of these will be necessary.
org.lexevs.dao.index.lucene.v2010.entity.SingleTemplateDisposableLuceneCommonEntityDao
org.lexevs.dao.index.lucene.AbstractBaseLuceneIndexTemplateDao
org.lexevs.dao.index.access.entity.CommonEntityDao

//Deeply integrated with boundary doc position and scoring.  Will need to be rethought and reimplemented against the new Collector class
//in Lucene.  This will also be moved from the Indexer into the DAO project.
edu.mayo.informatics.indexer.lucene.hitcollector.AbstractBestScoreOfEntityHitCollector<T>
//This companion to it doesn’t seem to have a code path that calls it and may be able to be disposed of
edu.mayo.informatics.indexer.lucene.hitcollector.BitSetFilteringBestScoreOfEntityHitCollector

//These classes will all need to be revised or replaced to implement
//the BlockJoinQuery indexing support
edu.mayo.informatics.indexer.api.generators.DocumentFromStringsGenerator
org.lexevs.dao.index.indexer.LuceneLoaderCodeIndexer
org.lexevs.dao.index.indexer.LuceneLoaderCode

//While most code paths for indexing flow through this class accessed through a BaseLoader class
//a number of alternative paths include two special case loaders and the revision/authoring API
org.lexevs.dao.index.indexer.EntityBatchingIndexCreator

  • No labels