Interface LuceneQueryFactory

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_LIMIT
      Default query result limit is 100
      static int DEFAULT_PAGESIZE
      Default page size of result is 0, which means no pagination
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      <K,​V>
      LuceneQuery<K,​V>
      create​(java.lang.String indexName, java.lang.String regionName, java.lang.String queryString, java.lang.String defaultField)
      Creates a query based on a query string which is parsed by Lucene's StandardQueryParser.
      <K,​V>
      LuceneQuery<K,​V>
      create​(java.lang.String indexName, java.lang.String regionName, java.lang.String queryString, java.lang.String defaultField, java.lang.String numericFields)
      Creates a query based on a query string which is parsed by Lucene's StandardQueryParser.
      <K,​V>
      LuceneQuery<K,​V>
      create​(java.lang.String indexName, java.lang.String regionName, LuceneQueryProvider provider)
      Create a query based on a programmatically constructed Lucene Query.
      LuceneQueryFactory setLimit​(int limit)
      Set maximum number of results for a query.
      LuceneQueryFactory setPageSize​(int pageSize)
      Set page size for a query result.
    • Field Detail

      • DEFAULT_LIMIT

        static final int DEFAULT_LIMIT
        Default query result limit is 100
        See Also:
        Constant Field Values
      • DEFAULT_PAGESIZE

        static final int DEFAULT_PAGESIZE
        Default page size of result is 0, which means no pagination
        See Also:
        Constant Field Values
    • Method Detail

      • setPageSize

        LuceneQueryFactory setPageSize​(int pageSize)
        Set page size for a query result. The default page size is 0 which means no pagination.
        Parameters:
        pageSize - the page size for a query result
        Returns:
        this factory
        Throws:
        java.lang.IllegalArgumentException - if the value is less than 0
      • setLimit

        LuceneQueryFactory setLimit​(int limit)
        Set maximum number of results for a query. By default, the limit is set to DEFAULT_LIMIT which is 100.
        Parameters:
        limit - the maximum number of results for a query
        Returns:
        this factory
        Throws:
        java.lang.IllegalArgumentException - if the value is less than or equal to zero.
      • create

        <K,​V> LuceneQuery<K,​V> create​(java.lang.String indexName,
                                                  java.lang.String regionName,
                                                  java.lang.String queryString,
                                                  java.lang.String defaultField)
        Creates a query based on a query string which is parsed by Lucene's StandardQueryParser. See the javadocs for StandardQueryParser for details on the syntax of the query string. The query string and default field as passed as is to StandardQueryParser.parse(String, String)
        Type Parameters:
        K - the key type in the query results
        V - the value type in the query results
        Parameters:
        regionName - region name
        indexName - index name
        queryString - Query string parsed by Lucene's StandardQueryParser
        defaultField - default field used by the Lucene's StandardQueryParser
        Returns:
        LuceneQuery object
      • create

        <K,​V> LuceneQuery<K,​V> create​(java.lang.String indexName,
                                                  java.lang.String regionName,
                                                  LuceneQueryProvider provider)

        Create a query based on a programmatically constructed Lucene Query. This can be used for queries that are not covered by StandardQueryParser, such as range queries.

        Because Geode may execute the Lucene query on multiple nodes in parallel and Query is not serializable, this method requires a serializable LuceneQueryProvider that can create a Query on the nodes hosting the Lucene index.

        Here's an example of using this method to create a range query on an integer field called "age."

         
           LuceneQuery query = factory.create("index", "region", index -> IntPoint.newRangeQuery("age", 20, 30))
         
         
        Type Parameters:
        K - the key type in the query results
        V - the value type in the query results
        Parameters:
        indexName - index name
        regionName - region name
        provider - constructs and provides a Lucene Query.
        Returns:
        LuceneQuery object
      • create

        <K,​V> LuceneQuery<K,​V> create​(java.lang.String indexName,
                                                  java.lang.String regionName,
                                                  java.lang.String queryString,
                                                  java.lang.String defaultField,
                                                  java.lang.String numericFields)
        Creates a query based on a query string which is parsed by Lucene's StandardQueryParser. See the javadocs for StandardQueryParser for details on the syntax of the query string. The query string and default field as passed as is to StandardQueryParser.parse(String, String)
        Type Parameters:
        K - the key type in the query results
        V - the value type in the query results
        Parameters:
        regionName - region name
        indexName - index name
        queryString - Query string parsed by Lucene's StandardQueryParser
        numericFields - numeric fields and types
        defaultField - default field used by the Lucene's StandardQueryParser
        Returns:
        LuceneQuery object