Exemplo n.º 1
0
        private static IQuery Transform(QueryStringQuery query, IDictionary <string, string[]> aliases, IQueryExpander qe)
        {
            bool qsq  = false;
            bool sqsq = false;

            var qs = query.Query.ToQueryString().Transform(aliases, ref qsq, ref sqsq);

            if (qsq)
            {
                return(new QueryStringQuery(qs.ToString(), query.Fields, query.IsAnd));
            }
            else
            {
                if (sqsq)
                {
                    return(new SimpleQueryStringQuery(qs.ToString(), query.Fields, query.IsAnd));
                }
                else
                {
                    var terms = qs.GetTerms();
                    if (terms.Length == 0)
                    {
                        return(new MatchAllQuery());
                    }
                    else
                    {
                        var match = new MultiMatchQuery(string.Join(" ", terms), query.Fields, MultiMatchType.BestFields, query.IsAnd);
                        return(qe == null ? match : qe.Expand(match));
                    }
                }
            }
        }
Exemplo n.º 2
0
        private static IQuery Transform(MultiMatchQuery query, IDictionary <string, string[]> aliases, IQueryExpander qe)
        {
            bool qsq  = false;
            bool sqsq = false;

            var qs = query.Query.ToQueryString().Transform(aliases, ref qsq, ref sqsq);

            if (qsq)
            {
                return(new QueryStringQuery(qs.ToString(), query.Fields, query.IsAnd));
            }

            if (sqsq)
            {
                return(new SimpleQueryStringQuery(qs.ToString(), query.Fields, query.IsAnd));
            }

            return(qe == null ? query : qe.Expand(query));
        }