NIH | National Cancer Institute | NCI Wiki  

Error rendering macro 'rw-search'

null

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Code decoupling from the current Lucene to allow for easier updates to the underlying search implementation.  
  • Multi-index searches to replace single index searches.  This will allow easier maintenance than the large, monolithic index we currently use.
  • Using the built in relational index structures of the latest Lucene release to replace the hand built version of this in the current LexEVS implementation.
  • Code refactoring to the latest Lucene code base.  This requires extensive changes to the code base including replacement of objects with similar behavior for the current code base  and adjusting to changes in the Lucene API.  This also includes reimplementing a number of customized Lucene analysers analyzers and HitCollectors to insure compatibility with current code unit tests and user expectations.

...

Code Block
languagejava
titleMetaData and Dependencies
//Not really an interface, as a class it will need to be rethought, reimplemented to accommodate multi-index initialization.
org.lexevs.dao.index.connection.IndexInterface

//This class attempts to manage index events concurrently and is highly dependent on the parsing of an XML file
edu.mayo.informatics.indexer.utility.MetaData

//Along with the above a multi -index implementation of this interface will have to be done. 
//The pertinent implementation of this provides an in memory collection of objects consistent with the metadata elements
//Registration consists of updating this collection in conjunction with the metadata file.
org.lexevs.dao.index.indexregistry.IndexRegistry

//A good portion of the metadata file is created in this extension of the IndexCreator. 
//Since the metadata.xml  is going away — we’ll want to reimplement
org.lexevs.dao.index.indexer.EntityBatchingIndexCreator

//Creates and deletes indexes.  Managers readers and writers.  Adds and deletes at the document  level.   
//Gets searchers.  This lives in the Indexer, if it’s on the code path it needs to be updated, 
//otherwise it should be tossed out.  
edu.mayo.informatics.indexer.api.IndexerService

// This and its interface EntityIndexService may or should replace the IndexerService.  Needs closer examination.
org.lexevs.dao.index.service.entity.LuceneEntityIndexService

//Central manager for Search, Metadata, and Common indexes as well as the metadata.xml managing class
//Since this class uses some of the properties recorded for the index we will need to see what depends on these values
//and how they can be otherwise provided.  
org.lexevs.dao.index.access.IndexDaoManager

//Index CRUD service.  Cleanup methods serve to do some updates. 
//Depends on Dao, MetaData and Registry classes and contains some Lucene objects
org.lexevs.dao.index.operation.DefaultLexEvsIndexOperations

// Spring wired factory class that implements Spring FactoryBean to create singleton MetaData class
org.lexevs.dao.index.lucenesupport.LuceneIndexMetadataFactory

//Works largely at the entity level of creation and deletion but also can drop full indexes,
//as well as create them and query indexes it has created.
org.lexevs.dao.index.service.search.LuceneSearchIndexService

...

Code Block
languagejava
titleMultiple Code Paths
//This Index “template” interface directly calls Lucene reader/write elements.  It’s base and multi -base implementations will need to be adjusted 
//to some extent, but it’s clear that some support still exists for multiple index reading /writing.   Some of both will have to be maintained for the 
//remaining MetaData index search (different from the metadata.xml) and possibly the simple search.
org.lexevs.dao.index.lucenesupport.LuceneIndexTemplate

//The Dao layer will need a new start.  Lucene 5.0 creates a clean break with previous Lucene formats.  A format aware Dao for going forward
//may provide some future proofing so we’ll continue to build on it, but at the same time break with the previous format support
org.lexevs.dao.index.access.LexEvsIndexFormatVersionAwareDao
org.lexevs.dao.index.access.AbstractBaseIndexDao
org.lexevs.dao.index.lucene.AbstractFilteringLuceneIndexTemplateDao
org.lexevs.dao.index.lucene.AbstractBaseLuceneIndexTemplateDao
org.lexevs.dao.index.lucene.v2010.entity.LuceneEntityDao
org.lexevs.dao.index.lucene.v2010.entity.SingleTemplateDisposableLuceneCommonEntityDao

...