# FullTextLucene

This class implements the full text search based on Apache Lucene. Most methods can be called using SQL statements as well.

Methods
static SQLException | convertException(Exception e) Convert an exception to a fulltext exception.
static SQLException | convertException(Exception e) Convert an exception to a fulltext exception. Parameters: e - the original exception Returns: the converted SQL exception
static void | createIndex(Connection conn, String schema, String table, String columnList) Create a new full text index for a table and column list.
static void | createIndex(Connection conn, String schema, String table, String columnList) throws SQLException Create a new full text index for a table and column list. Each table may only have one index at any time. Parameters: conn - the connection schema - the schema name of the table (case sensitive) table - the table name (case sensitive) columnList - the column list (null for all columns)
static void | createTrigger(Connection conn, String schema, String table) Create the trigger.
static void | createTrigger(Connection conn, String schema, String table) throws SQLException Create the trigger. Parameters: conn - the database connection schema - the schema name table - the table name
static void | dropAll(Connection conn) Drops all full text indexes from the database.
static void | dropAll(Connection conn) throws SQLException Drops all full text indexes from the database. Parameters: conn - the connection
static void | dropIndex(Connection conn, String schema, String table) Drop an existing full text index for a table.
static void | dropIndex(Connection conn, String schema, String table) throws SQLException Drop an existing full text index for a table. This method returns silently if no index for this table exists. Parameters: conn - the connection schema - the schema name of the table (case sensitive) table - the table name (case sensitive)
static FullTextLucene.IndexAccess | getIndexAccess(Connection conn) Get the index writer/searcher wrapper for the given connection.
static FullTextLucene.IndexAccess | getIndexAccess(Connection conn) throws SQLException Get the index writer/searcher wrapper for the given connection. Parameters: conn - the connection Returns: the index access wrapper
static String | getIndexPath(Connection conn) Get the path of the Lucene index for this database.
static String | getIndexPath(Connection conn) throws SQLException Get the path of the Lucene index for this database. Parameters: conn - the database connection Returns: the path
static void | indexExistingRows(Connection conn, String schema, String table) Add the existing data to the index.
static void | indexExistingRows(Connection conn, String schema, String table) throws SQLException Add the existing data to the index. Parameters: conn - the database connection schema - the schema name table - the table name
static void | init(Connection conn) Initializes full text search functionality for this database.

static void

init(Connection conn) throws SQLException
Initializes full text search functionality for this database. This adds the following Java functions to the database:

- FTL_CREATE_INDEX(schemaNameString, tableNameString, columnListString)
- FTL_SEARCH(queryString, limitInt, offsetInt): result set
- FTL_REINDEX()
- FTL_DROP_ALL()

It also adds a schema FTL to the database where bookkeeping information is stored. This function may be called from a Java application, or by using the SQL statements:

     CREATE ALIAS IF NOT EXISTS FTL_INIT FOR
          "org.h2.fulltext.FullTextLucene.init";
     CALL FTL_INIT();

Parameters:
conn - the connection

static void | reindex(Connection conn) Re-creates the full text index for this database.
static void | reindex(Connection conn) throws SQLException Re-creates the full text index for this database. Calling this method is usually not needed, as the index is kept up-to-date automatically. Parameters: conn - the connection
static void | removeIndexAccess(FullTextLucene.IndexAccess access, String indexPath) Close the index writer and searcher and remove them from the index access set.
static void | removeIndexAccess(FullTextLucene.IndexAccess access, String indexPath) throws SQLException Close the index writer and searcher and remove them from the index access set. Parameters: access - the index writer/searcher wrapper indexPath - the index path
static ResultSet | search(Connection conn, String text, int limit, int offset) Searches from the full text index for this database.

static ResultSet

search(Connection conn, String text, int limit, int offset) throws SQLException
Searches from the full text index for this database. The returned result set has the following column:

- QUERY (varchar): the query to use to get the data. The query does not include 'SELECT * FROM '. Example: PUBLIC.TEST WHERE ID = 1
- SCORE (float) the relevance score as returned by Lucene.

Parameters:
conn - the connection
text - the search query
limit - the maximum number of rows or 0 for no limit
offset - the offset or 0 for no offset
Returns:
the result set

static ResultSet | search(Connection conn, String text, int limit, int offset, boolean data) Do the search.
static ResultSet | search(Connection conn, String text, int limit, int offset, boolean data) throws SQLException Do the search. Parameters: conn - the database connection text - the query limit - the limit offset - the offset data - whether the raw data should be returned Returns: the result set
static ResultSet | searchData(Connection conn, String text, int limit, int offset) Searches from the full text index for this database.

static ResultSet

searchData(Connection conn, String text, int limit, int offset) throws SQLException
Searches from the full text index for this database. The result contains the primary key data as an array. The returned result set has the following columns:

- SCHEMA (varchar): the schema name. Example: PUBLIC
- TABLE (varchar): the table name. Example: TEST
- COLUMNS (array of varchar): comma separated list of quoted column names. The column names are quoted if necessary. Example: (ID)
- KEYS (array of values): comma separated list of values. Example: (1)
- SCORE (float) the relevance score as returned by Lucene.

Parameters:
conn - the connection
text - the search query
limit - the maximum number of rows or 0 for no limit
offset - the offset or 0 for no offset
Returns:
the result set

Fields
static boolean | STORE_DOCUMENT_TEXT_IN_INDEX

#### STORE_DOCUMENT_TEXT_IN_INDEX

Whether the text content should be stored in the Lucene index.