IndexImplementation (Neo4j Community 2.1.0-M01 API)
Date: 2014-02-20

org.neo4j.graphdb.index

## Interface IndexImplementation

-     public interface IndexImplementation

  A provider which can create and instantiate `Index`s. An `IndexImplementation` is typically tied to one implementation, f.ex. lucene, http://lucene.apache.org/java.
  Author:
    Mattias Persson

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `configMatches(Map<String,String> storedConfig, Map<String,String> config)`
    `Map<String,String>` | `fillInDefaults(Map<String,String> config)` Fills in default configuration parameters for indexes provided from this index provider.
    `String` | `getDataSourceName()` Returns the name of the XA data source coupled with this index provider.
    `Index<Node>` | `nodeIndex(String indexName, Map<String,String> config)` Returns an `Index` for `Node`s for the name `indexName` with the given `config`.
    `RelationshipIndex` | `relationshipIndex(String indexName, Map<String,String> config)` Returns an `Index` for `Relationship`s for the name `indexName` with the given `config`.

- - ### Method Detail

    - #### getDataSourceName

          String getDataSourceName()

      Returns the name of the XA data source coupled with this index provider.
      Returns:
        the name of the XA data source coupled with this index provider.

    - #### nodeIndex

          Index<Node> nodeIndex(String indexName,
                              Map<String,String> config)

      Returns an `Index` for `Node`s for the name `indexName` with the given `config`. The `config` `Map` can contain any provider-implementation-specific data that can control how an index behaves.
      Parameters:
        `indexName` - the name of the index.
        `config` - a `Map` of configuration parameters to use with the index. Parameters can be anything and are implementation-specific. This map represents how the configuration looks right now, they might be modified later using `IndexManager.setConfiguration(Index, String, String)` or `IndexManager.removeConfiguration(Index, String)`.
      Returns:
        the `Index` corresponding to the `indexName` and `config`.

    - #### relationshipIndex

          RelationshipIndex relationshipIndex(String indexName,
                                            Map<String,String> config)

      Returns an `Index` for `Relationship`s for the name `indexName` with the given `config`. The `config` `Map` can contain any provider-implementation-specific data that can control how an index behaves.
      Parameters:
        `indexName` - the name of the index.
        `config` - a `Map` of configuration parameters to use with the index. Parameters can be anything and are implementation-specific. This map represents how the configuration looks right now, they might be modified later using `IndexManager.setConfiguration(Index, String, String)` or `IndexManager.removeConfiguration(Index, String)`.
      Returns:
        the `Index` corresponding to the `indexName` and `config`. The return index is a `RelationshipIndex` with additional query methods for efficiently filtering hits with respect to start/end node of the relationships.

    - #### fillInDefaults

          Map<String,String> fillInDefaults(Map<String,String> config)

      Fills in default configuration parameters for indexes provided from this index provider.
      Parameters:
        `config` - the configuration map to complete with defaults.
      Returns:
        a `Map` filled with decent defaults for an index from this index provider.

    - #### configMatches

          boolean configMatches(Map<String,String> storedConfig,
                              Map<String,String> config)

Copyright © 2002–2014 The Neo4j Graph Database Project. All rights reserved.