Versions Compared

Key

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

...

org.eaglei.ui.gwt.search.server.SearchServlet

SearchServlet handles the core set of search operations requested by the the client. In the SearchServlet init() method, references to its singleton dependencies are obtained, and harvesting of eagle-i repository data is initiated.

...

  • DB logging of search request, counts, performance

org.eaglei.services.InstitutionRegistry

  • Static list of institution information (should be dynamically initialized, for example, determine which institutions are currently accessible)
  • Provides name, id, and RepositoryHttpConfig for each institution (migrate from legacy URIs.)
  • Used to lookup institution EIEntity (label) from id
  • /common/services/src/main/resources/services-config.xml is the primary configuration file for InstitutionRegistry. It is packaged in JAR (Should be loaded from classpath location). It has a dependency on finding an institution-registry.properties file in the classpath which contain properties
    • org.eaglei.tier
      • used to compute URIs
      • (need to confirm that things work if prop is omitted, prod implicit)
    • org.eaglei.subdomain
      • defines what node app is running as:  "search" for central, or institution subdomain/id
      • used to compute URIs
      • (TODO: bad prop name, fairly hacky overloading...)
    • org.eaglei.repository.username
    • org.eaglei.repository.password  (TODO: central: can't assume same for every institution)

...

org.eaglei.search.harvest.PollingDataHarvester extends DataHarvester

  • addChangeListener(ResourceChangeListener)
  • (EIEntity institution)
  • onChangeEvent(ResourceChangeEvent event)
  • onChangeStreamEnd(EIEntity institution, Date lastModifiedDate)
    • (no rollback support. Needed?)
  • optimize()
  • harvest()
  • hasInitalData(); (move to SearchProvider?)
  • startPolling()

org.eaglei.search.harvest.RepositoryStreamHarvester implements PollingDataHarvester

...

org.eaglei.search.harvest.MultiDataSourceStreamHarvester implements PollingDataHarvester

...

  • Exclude all "Generic Lab" provided resources
  • Exclude all non-resource provider Organization instances
  • handle resource data received in any order
  • unresolved object property values
  • compute and store inferred supertypes
  • store resource provider info
  • assumption: embedded class data always received after containing class
  • rolls up properties of "flatten" annotated instances (embedded & search_flatten) into containing instance
  • exclude all flatten instances from search results (add support for some flatten instances that can be search results)
  • (Index-time boosting of doc types and fields)

org.eaglei.solr.suggest.SolrDataSuggestIndexer implements ResourceChangeListener

...

org.eaglei.search.provider.MultiDataSetSearchProvider implements SearchProvider

  • Maps a dataset id (eagle-i, PubMed, Entrez Gene, NIF, etc.) in SearchRequest to a SearchProvider implementation for that source of data.

org.eaglei.solr.search.SolrSearchProvider implements SearchProvider

SolrSearchProvider is class that executes a search query on the eagle-i data stored in a Solr indices.The data available to be searched may be single- or multi-institution based on application configuration. The SolrSearchProvider ensures that UI dependencies such as the match highlighting snippit are set in the search response.

...

Another feature of the DataSuggest-core is that it keeps track of the resource categories in which any given term (resource label or class label) is used. This supports the "in Instruments" and "in Reagents" feature of the search autosuggest.

org.eaglei.solr.EagleISolrConfig

This class is provides api for reading in solr configuration files, and determining the location that solr data files will be written.

...