[ 
https://issues.apache.org/jira/browse/BLUR-112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13695764#comment-13695764
 ] 

Aaron McCurry commented on BLUR-112:
------------------------------------

As far as the class layout and usage, I would think something like this.

class BlurAnalyzer extends AnalyzerWrapper {
  BlurAnalyzer(boolean indexing, FieldManager) {...}

  // Where the call to get the analyzer falls back to the FieldManager

  protected Analyzer getWrappedAnalyzer(String fieldName) {
    if (indexing) {
      return fieldManager.getAnalyzerForIndex(fieldName);
    } else {
      return fieldManager.getAnalyzerForQuery(fieldName);
    }
  }

}

class TableContext {
    BlurAnalzyer blurAnalyzerForIndex;
    BlurAnalzyer blurAnalyzerForQuery;
    FieldManager fieldManager

    BlurAnalyzer getAnalyzerForIndex() {
        return blurAnalyzerForIndex;
    }

    BlurAnalyzer getAnalyzerForQuery() {
        return blurAnalyzerForQuery;
    }

    FieldManager getFieldManager() {
        return fieldManager;
    }
}

And in the Transaction recorder all we have to do is:

FieldManager fieldManager = tableContext.getFieldManager();
indexWriter.addDocuments(fieldManager.getFields(BlurRecord));


Also I'm going to create a branch for this tonight.  I will send out a note 
with the name.

Aaron
                
> Allow for types to be set on blur tables
> ----------------------------------------
>
>                 Key: BLUR-112
>                 URL: https://issues.apache.org/jira/browse/BLUR-112
>             Project: Apache Blur
>          Issue Type: Improvement
>    Affects Versions: 0.2.0, 0.3.0
>            Reporter: Aaron McCurry
>             Fix For: 0.3.0
>
>
> Create the ability for Blur to handle the default Lucene field types.  This 
> should not be tied to the table descriptor because types should be allowed to 
> be added at runtime.  Also 2 new fields should be added to the 
> TableDescriptor:
> 1. A strict types attribute.  If set to true, if a new column is added to the 
> table and there is no type mapping for it.  Throw an exception.  Set to false 
> by default.
> 2. Default type is strict is set to false.  The default type should be text.
> Also, dynamic columns could be allowed if their name included the type.  Such 
> as:
> The column name could be "col1" with a type of "int", in the Column struct in 
> thrift the name would be "col1/int" and if the type did not exist before the 
> call it would be added.
> Thoughts?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to