On Tue, May 3, 2011 at 7:03 PM, Paul Taylor <paul_t...@fastmail.fm> wrote:

> We subclassed  PerFieldAnalyzerWrapper as follows:
>
> public class PerFieldEntityAnalyzer extends PerFieldAnalyzerWrapper {
>
>    public PerFieldEntityAnalyzer(Class indexFieldClass) {
>        super(new StandardUnaccentAnalyzer());
>
>        for(Object o : EnumSet.allOf(indexFieldClass)) {
>            IndexField indexField = (IndexField) o;
>            Analyzer analyzer = indexField.getAnalyzer();
>            if (analyzer != null) {
>                this.addAnalyzer(indexField.getName(), analyzer);
>            }
>        }
>    }
> }
>
> but now we cant do this.
>
> How about:

public static Analyzer createPerFieldEntityAnalyzer(Class indexFieldClass) {
    PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new
StandardUnaccentAnalyzer());

    for(Object o : EnumSet.allOf(indexFieldClass)) {
        IndexField indexField = (IndexField) o;
        Analyzer analyzer = indexField.getAnalyzer();
        if (analyzer != null) {
            wrapper.addAnalyzer(indexField.getName(), analyzer);
        }
    }

    return wrapper;
}

I'm pretty sure that's how you're supposed to use it anyway.

Reply via email to