C# Class PredictiveAutocomplete.Processor

Mostra file Open project: kbastani/predictive-autocomplete

Public Methods

Method Description
GetNeo4jAuthenticatedClient ( ) : HttpClientWrapper

Get HTTP client wrapper for access to authenticated Neo4j graph database using the Neo4jClient library.

GetNeo4jGraphClient ( ) : GraphClient

Retrieve the GraphClient object for the Neo4j graph database configured in application settings.

GetRankedNodesForQuery ( string index, string luceneQuery, string relationshipLabel, string labelPropertyName, int skip, int limit ) : List

Get ranked nodes from Neo4j graph database using a templated cypher query that queries an index using a supplied valid lucene query. Each node in the index has a weight rating by specifying a relationship name which is used to determine the distinct number of incoming links to each node in your query with that relationship name. You must specify the valid property name that is to be used as the label for the autocomplete search. For example, if you are querying a database of books and wanted to list the names of books in the autocomplete search, then the label property would be "Title" where each book node b has b.Title as the book name.

IndexAutoCompleteKey ( List queryKey, Microsoft.WindowsAzure.Storage.CloudStorageAccount storage, string cacheId, int resultsPerFile, int maxLength ) : void

Index an autocomplete query to blob storage container that is accessible over public HTTP.

Private Methods

Method Description
AutoCompleteProcessor ( IGraphNode queryKey, Microsoft.WindowsAzure.Storage.CloudStorageAccount storage, string cacheId, int maxLength ) : void

This method handles the core workflow for adding a query key to blob storage JSON file autocomplete repository.

CreateAutocompleteBlob ( IGraphNode queryKey, Microsoft.WindowsAzure.Storage.CloudStorageAccount storage, string containerId, string key ) : Stream

Create a new autocomplete JSON file for this key value.

GetOrderedJsonBlock ( int maxLength, GraphNode acKey, GraphNode acBlock ) : PredictiveAutocomplete.GraphNode[]

Gets an ordered list of graph nodes of a specific length.

UpdateBlobStreamForKey ( IGraphNode queryKey, int maxLength, Stream blobStream, System.Web.Script.Serialization.JavaScriptSerializer jsSerializer ) : PredictiveAutocomplete.GraphNode[]

Update the JSON file and its stream on blob storage.

UpdateJsonBlockBlob ( Microsoft.WindowsAzure.Storage.CloudStorageAccount storage, string containerId, string key, System.Web.Script.Serialization.JavaScriptSerializer jsSerializer, GraphNode acBlock ) : Stream

Update the JSON block blob using the blob service class. Manages concurrent access conditions for parallel transactions.

UpdateOrderedJsonBlock ( int maxLength, GraphNode acKey, GraphNode acBlock ) : PredictiveAutocomplete.GraphNode[]

Gets an updated and ordered list of graph nodes of a specific length.

Method Details

GetNeo4jAuthenticatedClient() public static method

Get HTTP client wrapper for access to authenticated Neo4j graph database using the Neo4jClient library.
public static GetNeo4jAuthenticatedClient ( ) : HttpClientWrapper
return Neo4jClient.HttpClientWrapper

GetNeo4jGraphClient() public static method

Retrieve the GraphClient object for the Neo4j graph database configured in application settings.
public static GetNeo4jGraphClient ( ) : GraphClient
return Neo4jClient.GraphClient

GetRankedNodesForQuery() public static method

Get ranked nodes from Neo4j graph database using a templated cypher query that queries an index using a supplied valid lucene query. Each node in the index has a weight rating by specifying a relationship name which is used to determine the distinct number of incoming links to each node in your query with that relationship name. You must specify the valid property name that is to be used as the label for the autocomplete search. For example, if you are querying a database of books and wanted to list the names of books in the autocomplete search, then the label property would be "Title" where each book node b has b.Title as the book name.
public static GetRankedNodesForQuery ( string index, string luceneQuery, string relationshipLabel, string labelPropertyName, int skip, int limit ) : List
index string The case sensitive Neo4j node index name that you want to query.
luceneQuery string The valid lucene query that you want to use to query the supplied index.
relationshipLabel string /// The relationship name that will be used to determine the number of incoming links to each node you are querying for. /// Leave blank if you want to query all incoming links regardless of relationship type.
labelPropertyName string The label property name for each of your Neo4j nodes. See method summary for details.
skip int Skip a number of a nodes, ordered by the Neo4j assigned node id of each node you are querying for. Use this for processing batches on large graph queries.
limit int Limit the number of results you would like returned. Use this in combination with the skip property to process batches on large graph queries.
return List

IndexAutoCompleteKey() public static method

Index an autocomplete query to blob storage container that is accessible over public HTTP.
public static IndexAutoCompleteKey ( List queryKey, Microsoft.WindowsAzure.Storage.CloudStorageAccount storage, string cacheId, int resultsPerFile, int maxLength ) : void
queryKey List A list of queries to be added to the index. Queries are ranked on A.size.
storage Microsoft.WindowsAzure.Storage.CloudStorageAccount The Windows Azure cloud storage account that will be used for blob storage.
cacheId string The container name that will be used. This container must have public accessibility.
resultsPerFile int /// The number of results maximum that should be indexed per file. /// If you only want 5 results maximum to display in your search box then set this value to 5.
maxLength int /// The max length property is the number of symbols to index per supplied query key. /// If you do not expect queries to be ambiguous beyond a certain length, it is advisible to set this value to correspond with the volume of query keys in your index. /// For example if 40 character queries only have 1 result over the entire index then set this property to 40. ///
return void