public static Query Or(Query left, LucenePrefixOperator leftPrefix, Query right, LucenePrefixOperator rightPrefix) { return(new BooleanQuery { { left, PrefixToOccurrence(leftPrefix, Occur.SHOULD) }, { right, PrefixToOccurrence(rightPrefix, Occur.SHOULD) } }); }
private static Occur PrefixToOccurrence(LucenePrefixOperator prefix, Occur defaultOccurrence) { switch (prefix) { case LucenePrefixOperator.None: return(defaultOccurrence); case LucenePrefixOperator.Plus: return(Occur.MUST); case LucenePrefixOperator.Minus: return(Occur.MUST_NOT); default: throw new ArgumentOutOfRangeException("Unknown query prefix " + prefix); } }