Esempio n. 1
0
        /// <summary>
        /// Builds a new PrefixQuery instance
        /// </summary>
        /// <param name="prefix">Prefix term</param>
        /// <returns>new PrefixQuery instance</returns>
        protected internal virtual Query NewPrefixQuery(Term prefix)
        {
            PrefixQuery query = new PrefixQuery(prefix);

            query.SetRewriteMethod(MultiTermRewriteMethod);
            return(query);
        }
        public QueryBuilder MatchPrefix(string field, string phrase, MultiTermQuery.RewriteMethod rewriteMethod = null)
        {
            if (string.IsNullOrWhiteSpace(phrase))
            {
                return(this);
            }
            var query = new PrefixQuery(new Term(field, phrase));

            if (rewriteMethod != null)
            {
                query.SetRewriteMethod(rewriteMethod);
            }
            return(AddSubQuery(query));
        }
        public virtual Query Build(IQueryNode queryNode)
        {
            PrefixWildcardQueryNode wildcardNode = (PrefixWildcardQueryNode)queryNode;

            string      text = wildcardNode.Text.SubSequence(0, wildcardNode.Text.Length - 1).ToString();
            PrefixQuery q    = new PrefixQuery(new Term(wildcardNode.GetFieldAsString(), text));

            MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.GetTag(MultiTermRewriteMethodProcessor.TAG_ID);
            if (method != null)
            {
                q.SetRewriteMethod(method);
            }

            return(q);
        }