This class represents an extension base class to the Lucene standard Classic.QueryParser. The Classic.QueryParser is generated by the JavaCC parser generator. Changing or adding functionality or syntax in the standard query parser requires changes to the JavaCC source file. To enable extending the standard query parser without changing the JavaCC sources and re-generate the parser the ParserExtension can be customized and plugged into an instance of ExtendableQueryParser, a direct subclass of Classic.QueryParser.
コード例 #1
0
        protected internal override Query GetFieldQuery(string field, string queryText, bool quoted)
        {
            Tuple <string, string> splitExtensionField = this.extensions
                                                         .SplitExtensionField(defaultField, field);
            ParserExtension extension = this.extensions
                                        .GetExtension(splitExtensionField.Item2);

            if (extension != null)
            {
                return(extension.Parse(new ExtensionQuery(this, splitExtensionField.Item1,
                                                          queryText)));
            }
            return(base.GetFieldQuery(field, queryText, quoted));
        }
コード例 #2
0
ファイル: Extensions.cs プロジェクト: wwb/lucenenet
 /// <summary>
 /// Adds a new <see cref="ParserExtension"/> instance associated with the given key.
 /// </summary>
 /// <param name="key">the parser extension key</param>
 /// <param name="extension">the parser extension</param>
 public virtual void Add(string key, ParserExtension extension)
 {
     this.extensions[key] = extension;
 }
コード例 #3
0
 /// <summary>
 /// Adds a new <see cref="ParserExtension"/> instance associated with the given key.
 /// </summary>
 /// <param name="key">the parser extension key</param>
 /// <param name="extension">the parser extension</param>
 public virtual void Add(string key, ParserExtension extension)
 {
     this.extensions[key] = extension;
 }