Class DefaultQueryCreator

java.lang.Object
org.apache.maven.index.DefaultQueryCreator
All Implemented Interfaces:
QueryCreator

@Singleton @Named public class DefaultQueryCreator extends Object implements QueryCreator
A default QueryCreator constructs Lucene query for provided query text.

By default wildcards are created such as query text matches beginning of the field value or beginning of the class/package name segment for NAMES field. But it can be controlled by using special markers:

  • * - any character
  • '^' - beginning of the text
  • '$' or '<' or ' ' end of the text
For example:
  • junit - matches junit and junit-foo, but not foo-junit
  • *junit - matches junit, junit-foo and foo-junit
  • ^junit$ - matches junit, but not junit-foo, nor foo-junit
Author:
Eugene Kuleshov
  • Constructor Details

    • DefaultQueryCreator

      public DefaultQueryCreator()
  • Method Details

    • getLogger

      protected org.slf4j.Logger getLogger()
    • selectIndexerField

      public IndexerField selectIndexerField(Field field, SearchType type)
      Description copied from interface: QueryCreator
      Performs a selection of the appropriate IndexerField belonging to proper Field.
      Specified by:
      selectIndexerField in interface QueryCreator
      Returns:
    • constructQuery

      public org.apache.lucene.search.Query constructQuery(Field field, SearchExpression expression) throws org.apache.lucene.queryparser.classic.ParseException
      Description copied from interface: QueryCreator
      Constructs query by parsing the query string, using field as default field. This method should be use to construct queries (single term or phrase queries) against single field.
      Specified by:
      constructQuery in interface QueryCreator
      Returns:
      Throws:
      org.apache.lucene.queryparser.classic.ParseException - if query parsing is unsuccessful.
    • constructQuery

      public org.apache.lucene.search.Query constructQuery(Field field, String query, SearchType type) throws org.apache.lucene.queryparser.classic.ParseException
      Description copied from interface: QueryCreator
      Constructs query by parsing the query string, using field as default field. This method should be use to construct queries (single term or phrase queries) against single field.
      Specified by:
      constructQuery in interface QueryCreator
      Returns:
      Throws:
      org.apache.lucene.queryparser.classic.ParseException - if query parsing is unsuccessful.
    • constructQuery

      @Deprecated public org.apache.lucene.search.Query constructQuery(String field, String query)
      Deprecated.
      Description copied from interface: QueryCreator
      Deprecated. Avoid it's use! Constructs query against single field, using it's "best effort" approach to perform parsing, but letting caller to apply it's (usually wrong) knowledge about how field is indexed.
      Specified by:
      constructQuery in interface QueryCreator
      Returns:
      query if successfully parsed, or null.
    • constructQuery

      public org.apache.lucene.search.Query constructQuery(Field field, IndexerField indexerField, String query, SearchType type) throws org.apache.lucene.queryparser.classic.ParseException
      Throws:
      org.apache.lucene.queryparser.classic.ParseException
    • legacyConstructQuery

      public org.apache.lucene.search.Query legacyConstructQuery(String field, String query)
    • countTerms

      protected int countTerms(IndexerField indexerField, String query)