Page History
...
Our current search for coding schemes within a monolithic index requires use of a Lucene Filter dependent on an XML file called metadata.xml. This file has a handmade concurrency protecting class providing access and relies on the processing of DOM objects in order to provide both filtering of more granular entities in the system, and listings of the code systems in general. As such it is something of a bottleneck for access.
A Proposed, Revised Metadata Implementation
With the advent of an index per code system design. The metadata structure can go away. In it's place a contextual file read of the names of the indexes with additional metadata persistence where necessary will replace the concurrent xml parsing.
The many dependencies on the metadata.xml file and it's accompanying MetaData class will have to be refactored to a new implementation. All classes in the Indexer will be dropped or pulled into the dao project
Changing MetaData Dependency Class Call Outs
Code Block | ||||
---|---|---|---|---|
| ||||
//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 |
...
//Index file |
...
creation factory. Should be adapted for multiple indexes org.lexevs.dao.index.lucenesupport.LuceneIndexMetadataFactory |
...
//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 |
Changing the Relational Representation in Lucene
...