Plugins: Analyzer Generators
To add a custom analyzer, one must implement the AbstractAnalyzerGenerator
class and provide logic when your custom analyzer should be used.
public abstract class AbstractAnalyzerGenerator
{
public abstract Analyzer GenerateAnalyzerForIndexing(string indexName, Document document, Analyzer previousAnalyzer);
public abstract Analyzer GenerateAnalyzerForQuerying(string indexName, string query, Analyzer previousAnalyzer);
}
where:
* GenerateAnalyzerForIndexing returns an analyzer that will be used while performing indexing operation.
* GenerateAnalyzerForQuerying returns an analyzer that will be used while performing querying.
Example - Using different analyzer for specific index
public class CustomAnalyzerGenerator : AbstractAnalyzerGenerator
{
private const string SpecificIndexName = "Specific/Index";
public override Analyzer GenerateAnalyzerForIndexing(string indexName, Document document, Analyzer previousAnalyzer)
{
if (indexName == SpecificIndexName)
{
return new WhitespaceAnalyzer();
}
return previousAnalyzer;
}
public override Analyzer GenerateAnalyzerForQuerying(string indexName, string query, Analyzer previousAnalyzer)
{
if (indexName == SpecificIndexName)
{
return new WhitespaceAnalyzer();
}
return previousAnalyzer;
}
}